feat: version infra skills (1.0.0) + project-bootstrap manifest step

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>
This commit is contained in:
2026-04-28 13:19:38 +03:00
parent f0b1db6456
commit e1e5bd1309
17 changed files with 317 additions and 0 deletions

View File

@@ -1,5 +1,6 @@
---
name: project-bootstrap
version: 1.0.0
description: >
Initializes or upgrades a project in the current folder: git, .gitignore, README.md,
.wiki/ using Karpathy's method, .tasks/ for task tracking, CLAUDE.md with skill triggers.
@@ -256,6 +257,35 @@ host? Substitute `we're on Linux` or `we're on macOS` instead.
---
## Step 5.5 — Bootstrap manifest
Write `.wiki/concepts/bootstrap-manifest.md`. The manifest records which skills (and at which versions) initialized this project's `.wiki/` and `.tasks/` layout, so layout drift between projects bootstrapped at different times is debuggable.
Read each delegated skill's `SKILL.md` frontmatter to pick up the live `version:` value (don't hardcode):
```markdown
---
title: Bootstrap Manifest
type: concept
updated: <today's date>
generator: project-bootstrap@<version>
---
# Bootstrap Manifest
Skills used to initialize this project's `.wiki/` and `.tasks/` layout, with their versions at install time.
| Skill | Version | Role |
|---|---|---|
| `project-bootstrap` | <version> | orchestrator |
| `setup-wiki` | <version> | wiki canonical layout |
| `setup-tasks` | <version> | tasks canonical layout |
This file is overwritten if `project-bootstrap` is re-run on the same project. For history, use `git log .wiki/concepts/bootstrap-manifest.md`.
```
If a delegated setup-skill is unavailable on this machine (e.g. user installed only a subset), record the missing skill as `unknown` in the version column so the gap is visible.
## Step 6 — Commit
```bash