refactor(tasks): migrate this repo's .tasks/ to canonical layout
Apply setup-tasks pattern to this repo's own .tasks/. Old flat layout (## Done / ## Backlog sections, no emoji, no per-task files) replaced with the canonical board: - 7 ⚪ Ready blocks for live backlog items, each with the canonical fields (slug, status, where-stopped, next-action, branch) - Historical Done entries dropped — git log is the history of what we've done (looking at .tasks/STATUS.md frombd8c378backwards shows the same content, just less compactly) - No per-task files at this point — none of the items are active or paused; using-tasks creates them on demand when a task starts Backup written to .tasks/STATUS.md.bak-20260428-132845 (local only — .gitignore now ignores **/*.bak-* since they're redundant with git history). Two backlog items that were marked done in the old format are gone: both refer to commits already in this branch's history (4382fd3,bd8c378). The cleanup-stale-skill-installs item is preserved as a ⚪ block for the user. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -66,3 +66,6 @@ coverage/
|
||||
# Misc
|
||||
*.tmp
|
||||
.tmp/
|
||||
|
||||
# Migration backups (created by setup-* skills; redundant with git history)
|
||||
**/*.bak-*
|
||||
|
||||
137
.tasks/STATUS.md
137
.tasks/STATUS.md
@@ -1,101 +1,70 @@
|
||||
# Task Board
|
||||
_Updated: 2026-04-28_
|
||||
|
||||
## Done
|
||||
<!--
|
||||
Canonical layout. One block per task. Per-task deep context lives in
|
||||
.tasks/<task-slug>.md (created by using-tasks when a task becomes active
|
||||
or paused). Historical Done entries dropped — git log is the history.
|
||||
|
||||
### Versioning + setup/using split for wiki & tasks (3 commits)
|
||||
Status legend:
|
||||
🔴 Active — only one at a time
|
||||
🟡 Paused — in progress, resumable
|
||||
⚪ Ready — defined, not started
|
||||
🟢 Done — kept until merged
|
||||
🔵 Blocked — waiting on external input
|
||||
-->
|
||||
|
||||
#### (a) Versioning + manifest — `e1e5bd1`
|
||||
- [x] `version: 1.0.0` added to all 6 infra skills' frontmatter
|
||||
- [x] `project-bootstrap` Step 5.5 writes `.wiki/concepts/bootstrap-manifest.md`
|
||||
- [x] `concepts/skill-versioning.md` documents the convention
|
||||
## ⚪ [cleanup-stale-skill-installs] — remove old wiki-maintainer and task-status-wiki installs
|
||||
**Status:** ready
|
||||
**Where I stopped:** (not started)
|
||||
**Next action:** `rm -rf ~/.claude/skills/wiki-maintainer ~/.claude/skills/task-status-wiki` then verify only `using-wiki` and `using-tasks` remain
|
||||
**Branch:** (no branch — local cleanup)
|
||||
|
||||
#### (b) Split wiki — `36fe39e`
|
||||
- [x] `wiki-maintainer` → `using-wiki` (rename via `git mv`)
|
||||
- [x] New `setup-wiki` skill — 6 phases, two modes (greenfield / migrate), full canon templates
|
||||
- [x] `using-wiki` Prerequisites delegates to `setup-wiki`
|
||||
- [x] `project-bootstrap` Step 3 delegates
|
||||
---
|
||||
|
||||
#### (c) Split tasks — _this commit_
|
||||
- [x] `task-status-wiki` → `using-tasks` (rename via `git mv`)
|
||||
- [x] New `setup-tasks` skill — 6 phases, two modes (greenfield / migrate); migration is interactive, never auto-parses old flat STATUS.md
|
||||
- [x] `using-tasks` Prerequisites delegates to `setup-tasks`
|
||||
- [x] `project-bootstrap` Step 4 delegates
|
||||
- [x] Stale `dist/task-status-wiki.skill` removed
|
||||
## ⚪ [compress-dedup] — resolve compress vs caveman-compress duplication
|
||||
**Status:** ready
|
||||
**Where I stopped:** (not started) — noticed during initial migration that both skills ship identical `scripts/` subtrees (`compress.py`, `cli.py`, `detect.py`, `validate.py`, `benchmark.py`)
|
||||
**Next action:** `diff -r skills/compress skills/caveman-compress`; decide if one is canonical and the other should be removed (or aliased)
|
||||
**Branch:** (not started)
|
||||
|
||||
### Manual follow-up for the user (one-time)
|
||||
- [ ] `rm -rf ~/.claude/skills/{wiki-maintainer,task-status-wiki}/` — the old folders linger on disk after rename. The new `using-wiki` / `using-tasks` are already installed alongside; once you remove the old ones, `available_skills` will list only the new names.
|
||||
---
|
||||
|
||||
### Create `setup-context7` skill
|
||||
- [x] Drafted `skills/setup-context7/SKILL.md` — 8 phases (discovery → plan → backup → install → inject → clean → smoke-test → restart) + rollback + cross-platform notes
|
||||
- [x] API-key discovery in priority order: `settings.json` → `.claude.json` (top-level + project-scoped) → `settings.local.json` → env → ask
|
||||
- [x] Phase 2 confirmation gate (no mutations without explicit "ok"); Phase 6 validates JSON after each edit
|
||||
- [x] Documented `/plugin update` gotcha
|
||||
- [x] Added Prerequisites section in `using-context7` pointing at `setup-context7`
|
||||
- [x] Built + installed both skills (`setup-context7` already in `available_skills`)
|
||||
- [x] Updated `.wiki/concepts/context7-setup.md` with "Now captured as a skill" section explaining the policy/setup split rationale
|
||||
- [x] **Bonus fix:** `scripts/build.sh` PS multi-arg bug — comma-joined `-Names` wasn't splitting into `[string[]]` when called via `-File`. Now loops in bash, one PS invocation per skill.
|
||||
## ⚪ [install-ps1] — PowerShell-native install.ps1
|
||||
**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)
|
||||
**Branch:** (not started)
|
||||
|
||||
### Switch context7 from manual MCP config to official plugin
|
||||
- [x] Backup `~/.claude.json` and `~/.claude/settings.json` (suffix `.bak-20260428-114532`)
|
||||
- [x] User installed `context7@claude-plugins-official`
|
||||
- [x] Located installed plugin: `~/.claude/plugins/cache/claude-plugins-official/context7/unknown/`
|
||||
- [x] Injected `--api-key` flag into the plugin's `.mcp.json` (key sourced from `settings.json`, not echoed in chat)
|
||||
- [x] Smoke-tested `mcp__context7__resolve-library-id` (returned 5 Nuxt entries — works in current session via legacy HTTP config; plugin takes over after Claude Code restart)
|
||||
- [x] Removed three manual context7 entries (settings.json + 2 in `.claude.json`); JSON validity confirmed
|
||||
- [x] Documented setup + plugin-update gotcha in `.wiki/concepts/context7-setup.md`
|
||||
- [x] Wiki index + log + summary updated
|
||||
---
|
||||
|
||||
### Migrate this repo's `.wiki/` to canonical Karpathy layout
|
||||
- [x] `git mv` `.wiki/source/*.md` → `.wiki/concepts/` (rename detection preserves history)
|
||||
- [x] Add `type: concept` frontmatter to each migrated page
|
||||
- [x] Create `.wiki/CLAUDE.md` (schema, with Karpathy gist URL pinned at top)
|
||||
- [x] Create `.wiki/index.md` (replaces `SUMMARY.md`)
|
||||
- [x] Create `.wiki/log.md` with backfilled entries for prior decisions
|
||||
- [x] Create `.wiki/overview.md` (project intro page)
|
||||
- [x] Create `.wiki/raw/README.md` (replaces `.gitkeep` placeholder)
|
||||
- [x] Empty `.gitkeep` in `.wiki/entities/`, `packages/`, `sources/`
|
||||
- [x] Delete `.wiki/SUMMARY.md`, `.wiki/source/`, `.wiki/raw/.gitkeep`
|
||||
## ⚪ [archive-roundtrip-test] — smoke-test for .skill archive shape
|
||||
**Status:** ready
|
||||
**Where I stopped:** (not started) — caught the PowerShell-Compress-Archive backslash bug manually; a smoke-test would catch the next regression automatically
|
||||
**Next action:** add a script that builds `dist/<name>.skill`, unzips into a temp dir, and `diff -r` against `skills/<name>/`. Fail on any difference. Run from CI or pre-commit if we add one
|
||||
**Branch:** (not started)
|
||||
|
||||
### project-bootstrap: align wiki init with Karpathy canon
|
||||
- [x] Read Karpathy gist + `wiki-maintainer` SKILL.md — gap confirmed
|
||||
- [x] Rewrite Step 3: create `index.md`, `log.md`, `overview.md`, `.wiki/CLAUDE.md` schema, `raw/README.md`, empty `entities/ concepts/ packages/ sources/` with `.gitkeep`
|
||||
- [x] Drop the bogus `SUMMARY.md` + `WORKFLOW.md` + `source/` from the template
|
||||
- [x] Pin Karpathy gist URL inside the schema file
|
||||
- [x] Rebuild + reinstall `project-bootstrap.skill`
|
||||
- [x] Document the realignment in `.wiki/source/wiki-realignment.md`
|
||||
---
|
||||
|
||||
### project-bootstrap: include `active-platform` trigger in CLAUDE.md template
|
||||
- [x] Add `we're on Windows` line to `assets/CLAUDE.md.template`
|
||||
- [x] Update embedded preview in `SKILL.md` Step 5 (with note about Linux/macOS substitution)
|
||||
- [x] Backfill the line in this repo's own `CLAUDE.md`
|
||||
- [x] Rebuild + reinstall `project-bootstrap.skill`
|
||||
## ⚪ [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 skill
|
||||
- [x] Draft `skills/active-platform/SKILL.md` (RU+EN triggers, default=Windows/PowerShell, palette=Win/Linux/mac)
|
||||
- [x] Fixed `build.sh` PS arg-passing bug (single-quotes were leaking into `-Names` value)
|
||||
- [x] Build `dist/active-platform.skill` and install into `~/.claude/skills/`
|
||||
- [x] Document decision in `.wiki/source/active-platform-decision.md`
|
||||
- [x] Update `.wiki/SUMMARY.md`
|
||||
---
|
||||
|
||||
### bootstrap-skills-migration
|
||||
- [x] Bootstrap repo (git, .wiki, .tasks, CLAUDE.md)
|
||||
- [x] Brainstorm and document repo layout (`.wiki/source/repo-layout.md`)
|
||||
- [x] Copy all 12 personal skills from `~/.claude/skills/` to `skills/`
|
||||
- [x] Write `scripts/build.sh`, `scripts/build.ps1`, `scripts/install.sh`
|
||||
- [x] Document ZIP/PowerShell gotcha (`.wiki/source/build-notes.md`)
|
||||
- [x] Build initial `dist/*.skill` archives (forward-slash entry paths verified)
|
||||
- [x] Update root README with usage
|
||||
- [x] Smoke-test `install.sh` to a temp dir
|
||||
- [x] Remove legacy `project-bootstrap.skill` from repo root (replaced by `dist/`)
|
||||
## ⚪ [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
|
||||
|
||||
## Backlog
|
||||
---
|
||||
|
||||
- Resolve `compress` vs `caveman-compress` duplication (look at both, decide if one should go).
|
||||
- Consider a PowerShell-native `install.ps1` (current `install.sh` already works in git-bash, so low priority).
|
||||
- Revisit grouping/manifest if skill count grows past ~30.
|
||||
- Decide whether to write a smoke-test that round-trips `skills/<name>/` → `dist/<name>.skill` → unpack → diff (would catch archive-shape regressions).
|
||||
- Tune `active-platform` triggers based on real-world usage; add WSL handling if it comes up.
|
||||
- Consider running formal `skill-creator` eval loop on `active-platform` once we have ~5 real interactions to learn from.
|
||||
- **Migrate this repo's `.wiki/` to the canonical Karpathy layout** (it was bootstrapped with the old buggy template). Directory rename + file moves; needs a conscious commit, not a silent piggyback. _(done — `4382fd3`)_
|
||||
- **Fix `project-bootstrap` Step 4 to match `task-status-wiki` canon.** Same class of bug as the wiki fix: bootstrap creates a single flat `STATUS.md`, but `task-status-wiki` SKILL.md expects per-task files (`.tasks/<task-slug>.md`) plus `STATUS.md` as a board pointing at them with emoji-status convention (🔴 active / 🟡 paused / ⚪ ready / 🟢 done / 🔵 blocked). Two pieces of work: (a) update bootstrap Step 4 + asset, (b) migrate this repo's existing `.tasks/STATUS.md` to per-task files.
|
||||
## ⚪ [skills-grouping-revisit] — revisit flat vs grouped skills/ layout if count grows past ~30
|
||||
**Status:** ready
|
||||
**Where I stopped:** (not started) — current 14 skills fit fine in flat `skills/`; threshold for revisiting is ~30
|
||||
**Next action:** when triggered (skill count crosses threshold), evaluate variant B (grouped by family) vs variant C (flat + manifest) from the original brainstorm in `.wiki/concepts/repo-layout.md`
|
||||
**Branch:** (not started)
|
||||
|
||||
@@ -25,3 +25,4 @@ Parseable: `grep "^## \[" .wiki/log.md | tail -20`.
|
||||
## [2026-04-28] decision | skill-versioning — added `version: 1.0.0` to 6 infra skills' frontmatter; project-bootstrap now writes .wiki/concepts/bootstrap-manifest.md per project
|
||||
## [2026-04-28] refactor | wiki split — `wiki-maintainer` renamed to `using-wiki` (policy); new `setup-wiki` skill owns greenfield creation and canon migration; `project-bootstrap` Step 3 delegates
|
||||
## [2026-04-28] refactor | tasks split — `task-status-wiki` renamed to `using-tasks` (policy); new `setup-tasks` skill owns greenfield + interactive migration (no auto-parsing of old flat STATUS.md); `project-bootstrap` Step 4 delegates
|
||||
## [2026-04-28] refactor | this repo's `.tasks/` migrated to canonical layout — flat `## Done`/`## Backlog` replaced by emoji-status board (7 ⚪ Ready blocks); historical Done entries dropped (preserved in git log); `.bak` ignored via .gitignore
|
||||
|
||||
Reference in New Issue
Block a user