Collapse Step 5.6 from a single-skill detector (only the
superpowers@claude-plugins-official plugin) into a generic
`trigger -> fulfiller` table walker that scales to every canonical
CLAUDE.md trigger.
Inline 9-row map in SKILL.md covers: caveman, superpowers (kind: plugin),
using-wiki, using-tasks, using-projects-meta, pulling-before-work,
project-discipline, using-interns, active-platform. The `kind` flag
(skill | plugin) drives which install command is emitted in the chat-only
recommendation block. Detection paths: ~/.claude/skills/<name>/SKILL.md
for skills, plugins.<id> in ~/.claude/plugins/installed_plugins.json
for plugins.
Algorithm: read project's CLAUDE.md -> match each non-comment line vs
map (substring + tolower, mirrors Step 5 idempotent merge) -> for each
canonical match check disk -> print one chat block listing every missing
fulfiller with copy-pasteable install commands, OR a single
"all dependencies satisfied" line. User-custom lines and removed
canonical lines are silently skipped. Hard rule "never auto-install"
preserved verbatim.
version: 1.6.0 -> 1.7.0 (MINOR per project-discipline Rule 3 -- adds
capability, absorbs prior superpowers-only detector cleanly).
Closes [bootstrap-skill-deps-check] (.tasks/STATUS.md done).
Closes [bootstrap-recommend-projects-meta] by absorption -- the deferred
mirror task was the seed of this generalization; the generic walker now
handles using-projects-meta along with everything else, no per-skill
mirror needed.
Design rationale at .wiki/concepts/bootstrap-skill-deps-check.md:
- why generic over per-skill mirrors (5x mirror explosion)
- skill vs plugin kind distinction
- MCP-server-backed skills (only check using-X policy skill;
setup-X self-fires via Prerequisites pointer)
- source-of-truth invariant: SKILL map + assets/CLAUDE.md.template
must stay in sync (a future CI lint could enforce)
New ⚪ ready task to refactor project-bootstrap Step 5.6 from a per-skill
mirror shape (superpowers detector + deferred projects-meta detector) into
a single generic "skill dependencies check" that walks the canonical
CLAUDE.md template, maps each trigger line to its fulfiller (skill or
plugin), and prints one chat-only recommendation block with install
commands. Hard rule "never auto-install" carries over verbatim.
Decision driven by the [interns-skills-mvp] commit (0eb7dd1): adding
`delegate to interns when allowed` made it visible that every new
canonical trigger would otherwise need its own Step 5.X mirror — doesn't
scale.
[bootstrap-recommend-projects-meta] marked superseded — that task was the
seed of this generalization; it stays in STATUS.md for archaeology and
will be closed once [bootstrap-skill-deps-check] ships.
.tasks/bootstrap-skill-deps-check.md carries the full spec: scope,
key files, decisions log (5 entries), open questions, initial
trigger→fulfiller seed table.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>