meta(tasks): pause [active-platform-eval] after design + pre-flight
Combined the two backlog tasks [active-platform-tuning] + [active-platform-eval] into a single workstream. Eval IS the tuning mechanism; "wait for 5 real signals" was a placeholder replaced by a 20-query synthetic eval set balanced across Win/Lin/Mac. Spec written at .wiki/concepts/active-platform-eval-design.md (~150 lines): 20 queries (>=3 should-trigger per OS + near-miss negatives), run_loop.py 5-iter autoloop in parallel with manual body sweep (WSL clarity, BSD/macOS expansion, ambiguity policy). Workspace at .tasks/active-platform-eval/ (eval-set.json committed, iterations gitignored). Version bump 1.0.0 -> 1.1.0 planned (MINOR). Pre-flight verified: claude CLI on PATH at C:\nvm4w\nodejs\claude.ps1 (Claude Code 2.1.128); run_loop.py present in skill-creator install. Both autoloop deps satisfied -- no fallback to manual single-pass. Per-task file at .tasks/active-platform-eval.md (Goal, Key files, Decisions log, Open questions, Notes). STATUS.md collapsed the two original blocks into one paused block; resume point is Q2 (write 20 queries solo vs run skill-creator HTML-review template). Also fixed in same pause: [install-ps1] STATUS scope expanded to paired install.sh + install.ps1, cross-platform parity, prune flag (lesson from [compress-dedup]). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
# Task Board
|
||||
_Updated: 2026-05-05 (compress-dedup done)_
|
||||
_Updated: 2026-05-05 (active-platform-eval paused — design done, awaiting eval-set authorship decision)_
|
||||
|
||||
<!--
|
||||
Canonical layout. One block per task. Per-task deep context lives in
|
||||
@@ -46,10 +46,10 @@ _Updated: 2026-05-05 (compress-dedup done)_
|
||||
|
||||
---
|
||||
|
||||
## ⚪ [install-ps1] — PowerShell-native install.ps1
|
||||
## ⚪ [install-ps1] — paired install.sh + install.ps1 (cross-platform parity, with --prune)
|
||||
**Status:** ready
|
||||
**Where I stopped:** (not started) — `install.sh` already works in git-bash on Windows, so this is convenience for PS-only users
|
||||
**Next action:** mirror `scripts/install.sh` logic in PowerShell (copy `skills/<name>/` → `~/.claude/skills/<name>/`, support `$env:CLAUDE_SKILLS_DIR` override)
|
||||
**Where I stopped:** (not started) — `install.sh` exists, `install.ps1` missing; both must coexist (PS users on Windows shouldn't be forced into git-bash, Linux/Mac users shouldn't be forced into pwsh). Cross-platform = bash + PS *paired*, behaviorally identical.
|
||||
**Next action:** (a) write `scripts/install.ps1` mirroring `install.sh` logic (copy `skills/<name>/` → `~/.claude/skills/<name>/`, support `$env:CLAUDE_SKILLS_DIR` override); (b) add `--prune` flag to **both** scripts that drops `~/.claude/skills/<name>/` for any name not in `skills/<name>/` (lesson from `[compress-dedup]` — manual prune was needed because install.sh can't); (c) confirm `build.ps1`/`build.sh` are already paired (they are) and document the parity invariant in `.wiki/concepts/install-cross-platform.md`. README's install quick-start should show both variants side-by-side per `active-platform` cross-platform-docs convention.
|
||||
**Branch:** (not started)
|
||||
|
||||
---
|
||||
@@ -62,20 +62,11 @@ _Updated: 2026-05-05 (compress-dedup done)_
|
||||
|
||||
---
|
||||
|
||||
## ⚪ [active-platform-tuning] — tune active-platform triggers based on real usage
|
||||
**Status:** ready
|
||||
**Where I stopped:** (not started) — current triggers are best-guess; haven't observed real misfires/missed-fires yet
|
||||
**Next action:** keep a tally of times the skill should have triggered but didn't (or vice versa); revise the description / trigger list after ~5 real signals. Also add WSL handling explicitly if it comes up
|
||||
**Branch:** (not started)
|
||||
|
||||
---
|
||||
|
||||
## ⚪ [active-platform-eval] — run formal skill-creator eval loop on active-platform
|
||||
**Status:** ready
|
||||
**Where I stopped:** (not started) — depends on having ~5 real interactions logged for tuning context
|
||||
**Next action:** invoke `skill-creator` to set up an eval set for `active-platform`; benchmark current vs revised description
|
||||
**Branch:** (not started)
|
||||
**Blocker:** waits on `active-platform-tuning` to gather signals first
|
||||
## 🟡 [active-platform-eval] — eval-driven tuning of active-platform (description + body), absorbs `[active-platform-tuning]`
|
||||
**Status:** paused
|
||||
**Where I stopped:** design doc complete (`.wiki/concepts/active-platform-eval-design.md`, ~150 lines); per-task file complete (`.tasks/active-platform-eval.md`); STATUS.md collapsed the two original ⚪ tasks into this one block. Pre-flight verified: `claude` CLI on PATH at `C:\nvm4w\nodejs\claude.ps1` (Claude Code 2.1.128); `run_loop.py` present at `~/.claude/plugins/cache/claude-plugins-official/skill-creator/unknown/skills/skill-creator/scripts/run_loop.py`. Stopped right before eval-set authoring at user request — paused for asynchronous follow-up. No code touched, no tooling launched, no `.tasks/active-platform-eval/` workspace dir created yet.
|
||||
**Next action:** resume by answering Q2 from the chat ("eval set — write 20 queries solo from current SKILL.md + concept-page open questions, or run skill-creator's HTML review template first for user-driven edits before kickoff?"), then (a) build `.tasks/active-platform-eval/eval-set.json`, (b) snapshot skill to `.tasks/active-platform-eval/skill-snapshot/`, (c) launch run_loop.py in background, (d) parallel manual body sweep, (e) apply changes + bump to 1.1.0 + rebuild + reinstall + final report + commit.
|
||||
**Branch:** master
|
||||
|
||||
---
|
||||
|
||||
|
||||
49
.tasks/active-platform-eval.md
Normal file
49
.tasks/active-platform-eval.md
Normal file
@@ -0,0 +1,49 @@
|
||||
# active-platform-eval
|
||||
|
||||
## Goal
|
||||
Tune `active-platform` (description + body) using skill-creator's `run_loop.py` for description optimization in parallel with a manual body sweep. Replaces the placeholder "5 real signals" approach with a 20-query synthetic eval set balanced across Windows / Linux / macOS. Absorbs the two ⚪ tasks `[active-platform-tuning]` + `[active-platform-eval]` into one workstream — they were inseparable in practice (eval *is* the tuning mechanism). Bumps `version: 1.0.0 → 1.1.0` (MINOR — improved triggering + expanded body coverage; behavior compatible).
|
||||
|
||||
## Key files
|
||||
- `skills/active-platform/SKILL.md` — frontmatter description (run_loop output) + body (manual sweep) + version bump
|
||||
- `dist/active-platform.skill` — rebuild after edits
|
||||
- `~/.claude/skills/active-platform/` — reinstall
|
||||
- `.tasks/active-platform-eval/eval-set.json` — 20-query trigger eval set, committed before kickoff
|
||||
- `.tasks/active-platform-eval/iteration-N/` — workspace for run_loop iterations (gitignored; transient)
|
||||
- `.tasks/active-platform-eval/.gitignore` — scopes the iteration subdirs out of git
|
||||
- `.wiki/concepts/active-platform-eval-design.md` — design doc (this task's spec; already written)
|
||||
- `.wiki/concepts/active-platform-eval.md` — final report (eval set summary, before/after scores, body diff summary)
|
||||
- `.wiki/concepts/active-platform-decision.md` — open-questions list (WSL, macOS coverage) is exactly what this eval resolves; cross-link
|
||||
- `.wiki/index.md` — add new concept entry
|
||||
- `.wiki/log.md` — append decision line
|
||||
- `.tasks/STATUS.md` — collapse `[active-platform-tuning]` + `[active-platform-eval]` ⚪ blocks into one 🔴 active block, then 🟢 done
|
||||
|
||||
## Decisions log
|
||||
- 2026-05-05: combined the two backlog tasks into one. The split was an artefact of the original "wait for production misfires" model; synthetic eval covers the same ground in one pass with controlled cross-platform balance.
|
||||
- 2026-05-05: chose autoloop (`run_loop.py` × 5 iterations) **in parallel with** manual body sweep, per user explicit request ("давай одновременно"). The two halves don't conflict — autoloop only mutates frontmatter description; body sweep only mutates body.
|
||||
- 2026-05-05: model for run_loop = `claude-opus-4-7` (current session model — triggering test must match what the user actually experiences in production).
|
||||
- 2026-05-05: workspace at `.tasks/active-platform-eval/` (project-internal, not `~/AppData/Local/Temp/...`) so the eval set lives in git and the workflow is reproducible from any clone. Iteration subdirs gitignored — transient HTML reports + per-iteration outputs would balloon the repo.
|
||||
- 2026-05-05: eval set composition forced cross-platform balance: ≥3 should-trigger queries per OS (Win/Lin/Mac), rest implicit-shell-context. ≥10 should-not-trigger queries are deliberately near-misses (library API questions, README meta-questions, architecture talk) — only 1 genuinely-unrelated negative as a sanity baseline. Per-question-override cases marked `should_trigger: true` (the skill *should* fire, but body handles no-session-flip behavior, which the eval can't measure directly).
|
||||
- 2026-05-05: spec lives at `.wiki/concepts/active-platform-eval-design.md` per project-discipline Rule 1 (overrides skill-creator's default `docs/superpowers/specs/`). Final report goes to a sibling `active-platform-eval.md` (separate "what we're going to do" vs "what we did").
|
||||
- 2026-05-05: version bump 1.0.0 → 1.1.0 (MINOR) — added capability (better triggering, broader body coverage), no removed coverage, behavior compatible. Recorded in commit message per Rule 3.
|
||||
- 2026-05-05: install-ps1 task scope expanded in the same session (paired install.sh + install.ps1, cross-platform parity, --prune flag) — out of scope here, but logged in STATUS.md so we don't lose the requirement when this task closes.
|
||||
|
||||
## Open questions
|
||||
- [ ] Does the `claude` CLI exist on PATH? `run_loop.py` shells out to `claude -p` for triggering tests. If not on PATH → fall back to manual single-pass description rewrite (still useful, but loses the train/test optimization).
|
||||
- [ ] How does `run_loop.py` behave on Windows? skill-creator's docs assume bash-like shell for the invocation; may need to invoke through git-bash or adjust working-directory handling.
|
||||
- [ ] Per-question override eval cases — confirmed `should_trigger: true` (skill fires) but the no-session-flip behavior is body-driven, not measurable by trigger eval. Document in `.wiki/concepts/active-platform-eval.md` final report so future readers know the eval didn't directly measure that.
|
||||
|
||||
## Completed steps
|
||||
- [x] 2026-05-05: read current `active-platform/SKILL.md` (lines 1-86) and `active-platform-decision.md` (lines 1-46) to baseline scope and known weak spots (WSL, macOS coverage, trigger phrase comprehensiveness).
|
||||
- [x] 2026-05-05: invoked `superpowers:brainstorming` skill, walked through the design choices (combine vs split, autoloop vs manual, parallel vs sequential), reached approval on combined-and-parallel plan.
|
||||
- [x] 2026-05-05: wrote design doc `.wiki/concepts/active-platform-eval-design.md` (per project-discipline Rule 1).
|
||||
- [x] 2026-05-05: pre-flight verified — `claude` CLI on PATH (`C:\nvm4w\nodejs\claude.ps1`, Claude Code 2.1.128); `run_loop.py` present at `~/.claude/plugins/cache/claude-plugins-official/skill-creator/unknown/skills/skill-creator/scripts/run_loop.py`. Both autoloop dependencies satisfied; no fallback to manual single-pass needed.
|
||||
- [x] 2026-05-05: STATUS.md collapsed the two original ⚪ tasks (`[active-platform-tuning]` + `[active-platform-eval]`) into one block, set 🔴 active during design phase, then 🟡 paused at user request before eval-set authorship.
|
||||
- [x] 2026-05-05: paused at user request — task complete through design + tooling pre-flight; resume point is Q2 (write eval set solo vs HTML-review).
|
||||
- (further steps appended during implementation when resumed)
|
||||
|
||||
## Notes
|
||||
- Skill-creator path on this machine: `~/.claude/plugins/cache/claude-plugins-official/skill-creator/unknown/skills/skill-creator/`. `run_loop.py` lives under that at `scripts/run_loop.py`.
|
||||
- Snapshot the current skill before kickoff: `cp -r skills/active-platform .tasks/active-platform-eval/skill-snapshot/` so the run_loop's "old description" baseline matches what we're tuning *from*, regardless of any edits I make to the body during the parallel sweep.
|
||||
- run_loop accepts `--max-iterations N`. Plan = 5 (skill-creator default + sufficient signal for a single description field).
|
||||
- run_loop output: `best_description` selected by held-out test score, not train score (skill-creator's anti-overfit choice). Trust the test-score winner unless qualitative review of the score table reveals an obvious flaw.
|
||||
- After this task: `[install-ps1]` (already updated in STATUS.md to require paired install.sh + install.ps1 + `--prune`), then revisit any further skill backlog items.
|
||||
124
.wiki/concepts/active-platform-eval-design.md
Normal file
124
.wiki/concepts/active-platform-eval-design.md
Normal file
@@ -0,0 +1,124 @@
|
||||
---
|
||||
title: "Design: active-platform eval + tuning"
|
||||
type: concept
|
||||
tags: [active-platform, eval, skill-creator, tuning]
|
||||
updated: 2026-05-05
|
||||
---
|
||||
|
||||
# Design: `active-platform` eval + tuning
|
||||
|
||||
> Tune the `active-platform` skill (description + body) using skill-creator's `run_loop.py` for description optimization, executed in parallel with a manual body sweep. Replaces the placeholder "wait for 5 real signals" approach with synthetic, balanced signals across Windows / Linux / macOS. Absorbs the two ⚪ tasks `[active-platform-tuning]` and `[active-platform-eval]` into a single workstream — they're inseparable in practice (eval *is* the tuning mechanism).
|
||||
|
||||
## Why combine the two tasks
|
||||
|
||||
`[active-platform-tuning]` was originally framed as "tune description based on real-usage signals". `[active-platform-eval]` was "run the formal skill-creator eval loop, blocked by tuning gathering signals". The blocker assumed signals come from production — but a synthetic eval set covers the same surface area in one pass, with controlled cross-platform balance, and produces both the data *and* the tuned description in the same run. Splitting them was an artefact of the original "wait for misfires" mental model. We're not waiting any longer.
|
||||
|
||||
## Scope
|
||||
|
||||
**In scope:**
|
||||
1. Build a 20-query trigger eval set covering Windows, Linux, macOS, and ambiguous shell-context cases, plus near-miss negatives.
|
||||
2. Run `skill-creator/scripts/run_loop.py` (max 5 iterations, train/test split) against the current `active-platform/SKILL.md` description, capturing `best_description`.
|
||||
3. In parallel with the loop, manually sweep the SKILL.md body for known weak spots (WSL handling, BSD/macOS divergences coverage, ambiguity policy clarity).
|
||||
4. Apply `best_description` to the frontmatter; apply manual body edits.
|
||||
5. Bump `version: 1.0.0 → 1.1.0` (MINOR — improved triggering + expanded body coverage; behavior compatible).
|
||||
6. Rebuild `dist/active-platform.skill`, reinstall to `~/.claude/skills/active-platform/`.
|
||||
7. Document outcome (eval set, before/after scores, body diff summary) in `.wiki/concepts/active-platform-eval.md` (separate from this design doc — this is *what we're going to do*; that's *what we did*).
|
||||
|
||||
**Out of scope:**
|
||||
- Description optimization for any other skill (this is just `active-platform`).
|
||||
- Renaming the skill or restructuring the trigger phrase table.
|
||||
- Changing the cross-platform-docs convention (that lives in the skill body and is fine).
|
||||
- Building `install.ps1` or any cross-platform install work — that's `[install-ps1]`, downstream of this task.
|
||||
|
||||
## Eval set composition (20 queries)
|
||||
|
||||
**10 should-trigger queries**, distributed:
|
||||
|
||||
| Bucket | Count | Examples (sketch — final list lives in `.tasks/active-platform-eval/eval-set.json`) |
|
||||
|---|---|---|
|
||||
| Windows-explicit | ≥3 | "мы на винде, дай команду установки X", "I'm on Windows, give me the README quick-start", "сейчас под виндой, как поставить Y через scoop" |
|
||||
| Linux-explicit | ≥3 | "we're on a Linux box, write a one-liner для systemd unit", "I'm on Ubuntu prod, как настроить cron", "переключись на линукс, нужен install для apt" |
|
||||
| macOS-explicit | ≥3 | "я на маке, как поставить через brew", "I'm on a Mac, how do I configure zsh prompt", "switch to macOS, дай команду для plist" |
|
||||
| Implicit shell context | rest | "give me README quick-start for a CLI tool", "напиши one-liner установки", "how do I run this in a fresh terminal" — should still trigger because output is shell-bound, even without OS-trigger word |
|
||||
|
||||
**10 should-not-trigger queries** — near-misses, not obvious negatives:
|
||||
|
||||
| Bucket | Count | Sketch |
|
||||
|---|---|---|
|
||||
| Library API questions | 3 | "как использовать `subprocess.run` в Python", "what does `os.path.join` do" — touches shell-adjacent territory but is code-question, not produce-commands-for-user |
|
||||
| Architecture / design talk | 2 | "should I use Redis or Postgres for X", "explain microservices vs monolith" — no command output |
|
||||
| README content questions (non-commands) | 2 | "what should the description section of a README contain", "how do I write a good API doc" — README *meta*, not quick-start |
|
||||
| Per-question override tests | 2 | "how would this look on the prod box, which is Ubuntu" — should trigger (per-question), but **must not flip the session-wide default away from current**. The skill body addresses this; eval should test the description doesn't over-trigger and switch sessions on stray "on Ubuntu" mentions. *Mark as should-not-trigger session-switch; ambiguous for skill activation — TBD during eval set finalization.* |
|
||||
| Genuinely unrelated baseline | 1 | "explain the halting problem" — sanity check that the negative bucket isn't all subtle-near-misses |
|
||||
|
||||
Final eval set committed at `.tasks/active-platform-eval/eval-set.json` before the run starts (so the eval is reproducible from git).
|
||||
|
||||
## Workflow (parallel)
|
||||
|
||||
```
|
||||
┌─ MAIN AGENT ─────────────────────────────────┐
|
||||
│ │
|
||||
│ 1. Snapshot active-platform skill │
|
||||
│ 2. Build + commit eval set │
|
||||
│ 3. Launch run_loop.py in background ────────┼─→ ┌─ BACKGROUND ──┐
|
||||
│ │ │ run_loop.py │
|
||||
│ 4. (parallel) manual body sweep: │ │ ~5-10 min │
|
||||
│ — re-read SKILL.md fresh │ │ 5 iter × 20q │
|
||||
│ — note WSL gap, BSD-coreutils gap, │ │ × 3 reps, │
|
||||
│ ambiguity policy clarity │ │ train/test │
|
||||
│ — draft revised body sections │ │ split │
|
||||
│ │ └───────────────┘
|
||||
│ 5. ← run_loop completes → read │ │
|
||||
│ best_description from output JSON │ ←──────────┘
|
||||
│ │
|
||||
│ 6. Apply best_description to frontmatter │
|
||||
│ 7. Apply body sweep edits │
|
||||
│ 8. Bump version 1.0.0 → 1.1.0 │
|
||||
│ 9. Rebuild dist/, reinstall │
|
||||
│ 10. Write .wiki/concepts/active-platform- │
|
||||
│ eval.md (results + before/after) │
|
||||
│ 11. Update wiki index + log │
|
||||
│ 12. Update STATUS.md (both ⚪ → 🟢) │
|
||||
│ 13. Commit, ask before push │
|
||||
│ │
|
||||
└──────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
The two halves are independent: `run_loop.py` only touches the description field via its own iteration loop; manual body edits don't conflict because they target the body. Both converge in step 6-7 where I apply the diffs in sequence.
|
||||
|
||||
## Tooling concerns
|
||||
|
||||
**`run_loop.py` location:** `<skill-creator-cache>/skills/skill-creator/scripts/run_loop.py`. Need to invoke `python -m scripts.run_loop` from that directory.
|
||||
|
||||
**Model ID for the loop:** `claude-opus-4-7` (current session model — the loop's triggering test should match the model the user actually experiences).
|
||||
|
||||
**`claude` CLI dependency:** `run_loop.py` shells out to `claude -p` to test triggering. Need to confirm the `claude` CLI is on PATH before kickoff. If missing, fallback to manual single-pass description rewrite.
|
||||
|
||||
**Workspace path:** `.tasks/active-platform-eval/` — gitignore the per-iteration subdirectories (transient outputs, benchmarks, HTML reports), commit only `eval-set.json` and the final summary in `.wiki/concepts/active-platform-eval.md`. Add a `.gitignore` line scoped to that workspace.
|
||||
|
||||
## Versioning + manifest
|
||||
|
||||
`version: 1.0.0 → 1.1.0` — MINOR per project-discipline Rule 3:
|
||||
- Description rewrite = improved triggering, behavior compatible.
|
||||
- Body additions (WSL clarity, BSD/macOS expansion, ambiguity policy refinement) = added capability, no removed coverage.
|
||||
|
||||
`bootstrap-manifest.md` (in projects bootstrapped from this repo) lists `active-platform: 1.0.0` — bumping doesn't propagate retroactively, but new bootstraps after this commit will pick up `1.1.0` automatically via the manifest-write step.
|
||||
|
||||
## Spec self-review
|
||||
|
||||
- ☑ No "TBD" — except one explicit ambiguity flag in the eval set (per-question override category) that's resolved during eval set finalization, not deferred.
|
||||
- ☑ Internal consistency: Workflow step 6 applies `best_description`, step 7 applies body edits, step 8 bumps version — all in sequence, no contradiction.
|
||||
- ☑ Scope: focused on `active-platform`. `[install-ps1]` mentioned only as downstream sequencing; explicitly out of scope.
|
||||
- ☑ Ambiguity: `should-not-trigger` for "per-question override" cases is the one tricky spot. Resolution: those queries should trigger the skill (the body explicitly handles per-question), but should NOT flip the session-wide default. Eval can only measure trigger-or-not, not session-state mutation — so mark them `should_trigger: true` and rely on the body content to handle the no-flip behavior. Documented in eval set comments.
|
||||
|
||||
## Connection downstream
|
||||
|
||||
After this task:
|
||||
- `[install-ps1]` becomes the obvious next item (cross-platform install scripts pair with the now-better-triggered active-platform skill).
|
||||
- `active-platform-tuning-v2` may emerge later if real-world misfires surface gaps the synthetic eval missed; tracked as a fresh task at that time, not now.
|
||||
|
||||
## See also
|
||||
|
||||
- [active-platform-decision](active-platform-decision.md) — original decision to make `active-platform` a skill (not memory); open questions list (WSL, macOS coverage) is what this eval surfaces and resolves
|
||||
- [skill-versioning](skill-versioning.md) — semver discipline that drives the 1.0.0 → 1.1.0 bump
|
||||
- [bootstrap-skill-deps-check](bootstrap-skill-deps-check.md) — `active-platform` is one of the 9 canonical fulfillers in the bootstrap dependency map; description tuning here doesn't change its `kind: skill` classification
|
||||
@@ -29,6 +29,7 @@ Catalog of all wiki pages. One line per page, organized by type. Updated on ever
|
||||
- [wiki-realignment.md](concepts/wiki-realignment.md) — fixing `project-bootstrap` to create the Karpathy-canonical wiki layout
|
||||
- [interns-design](concepts/interns-design.md) — interns-design
|
||||
- [compress-dedup.md](concepts/compress-dedup.md) — `skills/compress/` deleted as a byte-identical dupe of `skills/caveman-compress/`; canonical kept for README + SECURITY + caveman-toolkit branding; better Process-step wording ported across; `version: 1.0.0` added to caveman-compress frontmatter
|
||||
- [active-platform-eval-design.md](concepts/active-platform-eval-design.md) — spec for eval-driven tuning of `active-platform`: combine the two ⚪ tasks into one workstream, 20-query cross-platform eval set (≥3 per OS + near-miss negatives), `run_loop.py` autoloop **in parallel** with manual body sweep (WSL / BSD / ambiguity), version 1.0.0 → 1.1.0 (MINOR). Status: paused after design + pre-flight check, before eval-set authorship
|
||||
|
||||
## Packages
|
||||
|
||||
|
||||
@@ -46,3 +46,4 @@ Parseable: `grep "^## \[" .wiki/log.md | tail -20`.
|
||||
## [2026-05-05] ingest | concepts/bootstrap-skill-deps-check
|
||||
## [2026-05-05] decision | bootstrap-skill-deps-check — `project-bootstrap` 1.6.0→1.7.0 collapses Step 5.6 from a single-skill detector (only `superpowers` plugin) into a generic `trigger → fulfiller` table walker. Map embedded in SKILL.md (9 rows: caveman, superpowers plugin, using-wiki, using-tasks, using-projects-meta, pulling-before-work, project-discipline, using-interns, active-platform); `kind: skill` vs `kind: plugin` flag drives the install command emitted in the recommendation block. Algorithm: read project's CLAUDE.md → match each line vs map (substring + tolower, mirrors Step 5 idempotent merge) → for each canonical match check disk (`~/.claude/skills/<name>/SKILL.md` or `installed_plugins.json` key); print one chat-only block listing every missing fulfiller + install commands, or one ✅ line if all satisfied. User-custom lines silently skipped; removed canonical lines silently skipped (respects user opt-out). Hard rule "never auto-install" carries over verbatim. Subsumes the deferred `[bootstrap-recommend-projects-meta]` task (closed by absorption — generic step handles `using-projects-meta` along with everything else). MCP-server-backed skills only check the `using-X` policy skill; `setup-X` self-fires on first use via Prerequisites pointer, bootstrap doesn't duplicate.
|
||||
## [2026-05-05] decision | compress-dedup — `skills/compress/` was a stripped-down byte-for-byte dupe of `skills/caveman-compress/` (scripts/ identical SHA256 across all 7 files; SKILL.md diff = `name:` + Process step 2; descriptions textually identical = arbitrary harness tie-break + double-counted listing budget). Kept `caveman-compress` canonical: it carries README.md (benchmarks table + caveman-toolkit branding) and SECURITY.md (Snyk false-positive writeup), and matches the caveman-* prefix invariant. Ported the better Process-step wording from `compress` into `caveman-compress` (`cd <directory_containing_this_SKILL.md>` instead of brittle `cd caveman-compress` which assumes cwd). Added `version: 1.0.0` to caveman-compress frontmatter (first versioned release; aligns with skill-versioning concept). Deleted: `skills/compress/`, `dist/compress.skill`, `~/.claude/skills/compress/` (manual prune — install.sh has no prune step; future `[install-ps1]` task should add `--prune` flag). Rebuilt + reinstalled `caveman-compress`. Slash-command impact: `/compress` removed; `/caveman-compress` + `/caveman:compress` (toolkit-canonical) remain. Concept page `concepts/compress-dedup.md` written (rationale + rejected alternatives: alias-stub has no harness mechanism; "keep both" wastes listing budget; "delete caveman-compress" loses README + SECURITY).
|
||||
## [2026-05-05] design | active-platform-eval (paused) — combined `[active-platform-tuning]` + `[active-platform-eval]` into one workstream (eval *is* the tuning mechanism; "wait for 5 real signals" was a placeholder). Spec written at `.wiki/concepts/active-platform-eval-design.md`: 20-query trigger eval set balanced ≥3 should-trigger per OS (Win/Lin/Mac) + near-miss negatives, run in `skill-creator/scripts/run_loop.py` (5 iter, train/test split, model `claude-opus-4-7`) **in parallel** with manual body sweep (WSL clarity, BSD/macOS expansion, ambiguity policy). Workspace at `.tasks/active-platform-eval/` (eval-set.json committed, iterations gitignored). Version bump 1.0.0 → 1.1.0 planned (MINOR). Pre-flight verified: `claude` CLI at `C:\nvm4w\nodejs\claude.ps1` (Claude Code 2.1.128) + `run_loop.py` present in skill-creator install — both autoloop deps satisfied, no fallback needed. Per-task file at `.tasks/active-platform-eval.md`. Paused at user request before eval-set authorship; resume point is Q2 (write 20 queries solo vs run skill-creator HTML-review template for user edits first). Also fixed in same pause: `[install-ps1]` STATUS scope expanded to "paired install.sh + install.ps1, cross-platform parity, --prune flag" (lesson from `[compress-dedup]`).
|
||||
|
||||
Reference in New Issue
Block a user