Six infra skills carry `version: 1.0.0` in frontmatter: project-bootstrap, setup-context7, task-status-wiki, using-context7, using-markitdown, wiki-maintainer. Bumped manually on SKILL.md edits; semver — MAJOR breaks contract, MINOR adds, PATCH wording. project-bootstrap gets a new Step 5.5 that writes .wiki/concepts/bootstrap-manifest.md per project — skill + version + role table read live from each delegated skill's frontmatter, not hardcoded. The file is overwritten on re-bootstrap; for history, git log. Why: when canonical layout for .wiki/ or .tasks/ changes, projects bootstrapped under the old version drift silently. The per-project manifest makes that drift debuggable instead of guesswork. Communication and discovery skills (caveman family, find-skills, active-platform) aren't versioned — their content is "good copy-paste" and snapshot mismatch isn't a layout problem. Wiki: .wiki/concepts/skill-versioning.md documents the convention; index.md and log.md updated. .tasks/STATUS.md tracks (a/b/c) progress. Setup/using split for wiki and tasks (commits b and c) follows. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
7.4 KiB
7.4 KiB
Task Board
Updated: 2026-04-28
In Progress
Versioning + setup/using split for wiki & tasks
Goal: version 6 infra skills (1.0.0), record them in a per-project bootstrap manifest, then split wiki-maintainer/task-status-wiki into setup-X/using-X pairs (mirroring context7) so bootstrap delegates to setup-skills and using-skills self-bootstrap on missing infra.
Three commits:
(a) Versioning + manifest
- Add
version: 1.0.0to frontmatter of all 6 infra skills project-bootstrapStep 5.5 writes.wiki/concepts/bootstrap-manifest.md(table read live from each delegated skill's frontmatter)concepts/skill-versioning.mddocuments the convention; index + log updated- Build + install affected skills (loop in build.sh handles 6-arg invocation cleanly)
(b) Split wiki
- Rename
skills/wiki-maintainer/→skills/using-wiki/; updatename:in frontmatter - New
skills/setup-wiki/(canonical layout creation, gated, derived from current "Bootstrap empty wiki" section + Karpathy gist) - Prerequisites section in
using-wiki→ invokessetup-wikiif.wiki/is missing/non-canon project-bootstrapStep 3 delegates tosetup-wiki
(c) Split tasks
- Rename
skills/task-status-wiki/→skills/using-tasks/; updatename: - New
skills/setup-tasks/derived from.wiki/raw/setup-task-status-wiki.md+ existing SKILL.md - Prerequisites in
using-tasks→ invokessetup-tasks project-bootstrapStep 4 delegates tosetup-tasks
One-time, after all three:
- Manual
rm -rf ~/.claude/skills/{wiki-maintainer,task-status-wiki}/(the old names) once the renamed installs are in place
Done
Create setup-context7 skill
- Drafted
skills/setup-context7/SKILL.md— 8 phases (discovery → plan → backup → install → inject → clean → smoke-test → restart) + rollback + cross-platform notes - API-key discovery in priority order:
settings.json→.claude.json(top-level + project-scoped) →settings.local.json→ env → ask - Phase 2 confirmation gate (no mutations without explicit "ok"); Phase 6 validates JSON after each edit
- Documented
/plugin updategotcha - Added Prerequisites section in
using-context7pointing atsetup-context7 - Built + installed both skills (
setup-context7already inavailable_skills) - Updated
.wiki/concepts/context7-setup.mdwith "Now captured as a skill" section explaining the policy/setup split rationale - Bonus fix:
scripts/build.shPS multi-arg bug — comma-joined-Nameswasn't splitting into[string[]]when called via-File. Now loops in bash, one PS invocation per skill.
Switch context7 from manual MCP config to official plugin
- Backup
~/.claude.jsonand~/.claude/settings.json(suffix.bak-20260428-114532) - User installed
context7@claude-plugins-official - Located installed plugin:
~/.claude/plugins/cache/claude-plugins-official/context7/unknown/ - Injected
--api-keyflag into the plugin's.mcp.json(key sourced fromsettings.json, not echoed in chat) - 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) - Removed three manual context7 entries (settings.json + 2 in
.claude.json); JSON validity confirmed - Documented setup + plugin-update gotcha in
.wiki/concepts/context7-setup.md - Wiki index + log + summary updated
Migrate this repo's .wiki/ to canonical Karpathy layout
git mv.wiki/source/*.md→.wiki/concepts/(rename detection preserves history)- Add
type: conceptfrontmatter to each migrated page - Create
.wiki/CLAUDE.md(schema, with Karpathy gist URL pinned at top) - Create
.wiki/index.md(replacesSUMMARY.md) - Create
.wiki/log.mdwith backfilled entries for prior decisions - Create
.wiki/overview.md(project intro page) - Create
.wiki/raw/README.md(replaces.gitkeepplaceholder) - Empty
.gitkeepin.wiki/entities/,packages/,sources/ - Delete
.wiki/SUMMARY.md,.wiki/source/,.wiki/raw/.gitkeep
project-bootstrap: align wiki init with Karpathy canon
- Read Karpathy gist +
wiki-maintainerSKILL.md — gap confirmed - Rewrite Step 3: create
index.md,log.md,overview.md,.wiki/CLAUDE.mdschema,raw/README.md, emptyentities/ concepts/ packages/ sources/with.gitkeep - Drop the bogus
SUMMARY.md+WORKFLOW.md+source/from the template - Pin Karpathy gist URL inside the schema file
- Rebuild + reinstall
project-bootstrap.skill - Document the realignment in
.wiki/source/wiki-realignment.md
project-bootstrap: include active-platform trigger in CLAUDE.md template
- Add
we're on Windowsline toassets/CLAUDE.md.template - Update embedded preview in
SKILL.mdStep 5 (with note about Linux/macOS substitution) - Backfill the line in this repo's own
CLAUDE.md - Rebuild + reinstall
project-bootstrap.skill
active-platform skill
- Draft
skills/active-platform/SKILL.md(RU+EN triggers, default=Windows/PowerShell, palette=Win/Linux/mac) - Fixed
build.shPS arg-passing bug (single-quotes were leaking into-Namesvalue) - Build
dist/active-platform.skilland install into~/.claude/skills/ - Document decision in
.wiki/source/active-platform-decision.md - Update
.wiki/SUMMARY.md
bootstrap-skills-migration
- Bootstrap repo (git, .wiki, .tasks, CLAUDE.md)
- Brainstorm and document repo layout (
.wiki/source/repo-layout.md) - Copy all 12 personal skills from
~/.claude/skills/toskills/ - Write
scripts/build.sh,scripts/build.ps1,scripts/install.sh - Document ZIP/PowerShell gotcha (
.wiki/source/build-notes.md) - Build initial
dist/*.skillarchives (forward-slash entry paths verified) - Update root README with usage
- Smoke-test
install.shto a temp dir - Remove legacy
project-bootstrap.skillfrom repo root (replaced bydist/)
Backlog
- Resolve
compressvscaveman-compressduplication (look at both, decide if one should go). - Consider a PowerShell-native
install.ps1(currentinstall.shalready 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-platformtriggers based on real-world usage; add WSL handling if it comes up. - Consider running formal
skill-creatoreval loop onactive-platformonce 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-bootstrapStep 4 to matchtask-status-wikicanon. Same class of bug as the wiki fix: bootstrap creates a single flatSTATUS.md, buttask-status-wikiSKILL.md expects per-task files (.tasks/<task-slug>.md) plusSTATUS.mdas 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.mdto per-task files.