meta(tasks): create [bootstrap-skill-deps-check]; supersede [bootstrap-recommend-projects-meta]
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>
This commit is contained in:
@@ -128,12 +128,21 @@ _Updated: 2026-05-05_
|
||||
---
|
||||
|
||||
## ⚪ [bootstrap-recommend-projects-meta] — Step 5.7 in project-bootstrap: recommend `setup-projects-meta` if MCP tools missing
|
||||
**Status:** ready
|
||||
**Status:** superseded
|
||||
**Where I stopped:** (not started) — opened as follow-up to `[bootstrap-projects-meta-trigger]` (commit b120397). The `check across all projects` trigger is now in every CLAUDE.md template, but on a fresh machine without `projects-meta-mcp` registered the trigger is silently no-op until the user verbally asks for cross-project work
|
||||
**Next action:** mirror Step 5.6 (superpowers plugin check). Detect missing `mcp__projects-meta__*` tools — possible signals: parse `~/.claude.json` for `mcpServers.projects-meta` key, or check for `~/.local/projects-meta-mcp/dist/server.js`. If absent, print one-shot recommendation block in chat with `setup-projects-meta` invocation hint. Hard rule: never auto-install. Bump project-bootstrap 1.2.0 → 1.3.0
|
||||
**Next action:** **superseded by `[bootstrap-skill-deps-check]`** (2026-05-05) — that task absorbs this one into a generic `Step 5.6` that walks the whole canonical trigger list, not just projects-meta. Kept here for git-log archaeology; close once `[bootstrap-skill-deps-check]` ships
|
||||
**Branch:** (not started)
|
||||
**Blocker:** waits on observing a real fresh-machine bootstrap that silently misses the dependency — defer until we see the failure mode in practice
|
||||
|
||||
---
|
||||
|
||||
## ⚪ [bootstrap-skill-deps-check] — refactor project-bootstrap Step 5.6 into a generic skill-dependencies check (replaces per-skill `Step 5.X` mirror shape)
|
||||
|
||||
**Status:** ready
|
||||
**Where I stopped:** (not started) — design agreed in chat 2026-05-05 after `[interns-skills-mvp]` shipped: adding `delegate to interns when allowed` to the canonical CLAUDE.md template made it visible that every new trigger would need its own `Step 5.X` detector mirror, which doesn't scale. Decision: collapse Step 5.6 (superpowers plugin) and the deferred `[bootstrap-recommend-projects-meta]` into a single generic `Step 5.6` that reads the canonical trigger list and maps each line to a fulfiller (skill or plugin) for missing-deps detection. Hard rule "never auto-install" carries over verbatim — chat-only recommendation block with copy-pasteable install commands
|
||||
**Next action:** Read `.tasks/bootstrap-skill-deps-check.md` for the full spec — initial trigger→fulfiller seed table is in the Notes section. Write `.wiki/concepts/bootstrap-skill-deps-check.md` design page first (rationale: why generic over per-skill mirrors, kind: skill vs plugin distinction, MCP server caveat). Then edit `skills/project-bootstrap/SKILL.md` Step 5.6 in place, bump `version:` 1.6.0 → 1.7.0. Update `skills/project-bootstrap/README.md` Workflow Step 5.6 description. Rebuild + install. Close `[bootstrap-recommend-projects-meta]` with a note in commit message
|
||||
**Branch:** (not started)
|
||||
|
||||
## 🟢 [using-projects-meta-freshness-gate] — добавить Step 0 freshness check в using-projects-meta
|
||||
|
||||
**Status:** done
|
||||
|
||||
46
.tasks/bootstrap-skill-deps-check.md
Normal file
46
.tasks/bootstrap-skill-deps-check.md
Normal file
@@ -0,0 +1,46 @@
|
||||
# bootstrap-skill-deps-check
|
||||
|
||||
## Goal
|
||||
Refactor `project-bootstrap` Step 5.6 (single-skill `superpowers` plugin detector) into a single, generic **Step 5.6 "Skill dependencies check"** that walks the canonical CLAUDE.md template, looks up each trigger line against a `trigger → fulfiller` map, detects what's missing on the host, and prints one chat-only block with prioritized install commands. Replaces the per-skill `Step 5.X` shape (which doesn't scale: every new canonical trigger would need its own mirror section). Subsumes the deferred `[bootstrap-recommend-projects-meta]` task — that task was the seed of this generalization. Bumps `project-bootstrap` 1.6.0 → 1.7.0 (MINOR — adds capability without breaking existing flow).
|
||||
|
||||
## Key files
|
||||
- `skills/project-bootstrap/SKILL.md` — replace Step 5.6 contents, bump `version:` 1.6.0 → 1.7.0
|
||||
- `skills/project-bootstrap/README.md` — Workflow Step 5.6 description + (optional) See also
|
||||
- `skills/project-bootstrap/assets/CLAUDE.md.template` — source of truth for the trigger list (no change here, but the new step reads from it)
|
||||
- `skills/project-bootstrap/assets/skill-deps-map.md` (or `.json` / inline in SKILL.md) — the `trigger → fulfiller` table; new file or inline section, decide during impl
|
||||
- `.wiki/concepts/bootstrap-skill-deps-check.md` — design rationale (why generic over per-skill mirrors, kind: skill vs plugin, MCP server caveat)
|
||||
- `.tasks/STATUS.md` — supersede `[bootstrap-recommend-projects-meta]`; mark this task active when started
|
||||
- `dist/project-bootstrap.skill` — rebuild after changes
|
||||
|
||||
## Decisions log
|
||||
- 2026-05-05: chose generic Step 5.6 over `Step 5.7 mirror per missing-skill` shape. Rationale: `bootstrap-recommend-projects-meta` (deferred task) + the analogous gap for `setup-interns` / `using-interns` / `pulling-before-work` / `project-discipline` would all need their own mirror sections — that's a 5×Step-5.X explosion. Single generic step reads the template (already canonical), maps each trigger to its fulfiller, prints one block.
|
||||
- 2026-05-05: scope of detection is the canonical CLAUDE.md template's trigger lines. Don't try to detect arbitrary user-added lines — the project-bootstrap contract is "we own canonical triggers; non-canonical lines are user's responsibility".
|
||||
- 2026-05-05: differentiate `kind: skill` (install via `bash scripts/install.sh <name>`) from `kind: plugin` (install via `/plugin install <name>@<marketplace>`). The install-command line in the chat block differs between the two; one mapping table that flags `kind` keeps the recommendation block honest.
|
||||
- 2026-05-05: MCP-server-backed skills (`using-context7`, `using-projects-meta`, `using-interns`) — only check the `using-X` policy skill. If MCP isn't registered, the `using-X` Prerequisites pointer fires `setup-X` at first use; bootstrap doesn't need to duplicate that detection. Keeps the Step simple.
|
||||
- 2026-05-05: hard rule from current Step 5.6 (`never auto-install`) **carries over** verbatim. Slash-commands aren't callable from a skill; silently mutating `~/.claude/skills/` is overreach. Recommendation only — chat block with copy-pasteable commands.
|
||||
|
||||
## Open questions
|
||||
- [ ] Storage of the map: inline in SKILL.md (simplest, single source of truth), or separate `assets/skill-deps-map.md` / `.json` (cleaner, programmatically parseable)? Inline probably fine for MVP — the table is short.
|
||||
- [ ] When the user pinned a non-canonical platform line (e.g. `we're on Linux` on a Windows host), the platform-line check is already handled in Step 5 idempotent merge. Step 5.6 should ignore the platform line entirely — same dependency (`active-platform` skill) regardless of which platform.
|
||||
- [ ] How to handle a CLAUDE.md the user has *removed* canonical triggers from on purpose? Step 5.6 reads from `CLAUDE.md` (the actual project file), not from `template`, so removed lines silently skip the check — correct behavior. Verify in implementation.
|
||||
- [ ] Optional polish: print a one-line "✅ all skill dependencies satisfied" when nothing is missing, to make the silent-success case visible. Probably worth it; very low cost.
|
||||
|
||||
## Completed steps
|
||||
(none — task created)
|
||||
|
||||
## Notes
|
||||
- Triggers in current template (2026-05-05) and their fulfillers — initial seed for the map:
|
||||
| Trigger | Fulfiller | Kind | Install |
|
||||
|---|---|---|---|
|
||||
| `talk like a caveman` | `caveman` | skill | `bash scripts/install.sh caveman` |
|
||||
| `use superpowers` | `superpowers@claude-plugins-official` | plugin | `/plugin install superpowers@claude-plugins-official` |
|
||||
| `use project wiki` | `using-wiki` | skill | `bash scripts/install.sh using-wiki` |
|
||||
| `use task management system` | `using-tasks` | skill | `bash scripts/install.sh using-tasks` |
|
||||
| `check across all projects` | `using-projects-meta` | skill | `bash scripts/install.sh using-projects-meta` |
|
||||
| `pull remote before work` | `pulling-before-work` | skill | `bash scripts/install.sh pulling-before-work` |
|
||||
| `follow project discipline` | `project-discipline` | skill | `bash scripts/install.sh project-discipline` |
|
||||
| `delegate to interns when allowed` | `using-interns` | skill | `bash scripts/install.sh using-interns` |
|
||||
| `we're on Windows` / `we're on Linux` / `we're on macOS` | `active-platform` | skill | `bash scripts/install.sh active-platform` |
|
||||
- Detection paths: `~/.claude/skills/<name>/SKILL.md` for skills; `~/.claude/plugins/installed_plugins.json` (`plugins.<name>`) for plugins. Both paths identical on Windows / Linux / macOS under `~`.
|
||||
- Once shipped, close `[bootstrap-recommend-projects-meta]` with a note pointing at the commit that absorbed it.
|
||||
- Versioning per project-discipline Rule 3: 1.6.0 → 1.7.0 (MINOR — adds capability, doesn't break the existing Step-5.6 superpowers detector since it absorbs it cleanly).
|
||||
Reference in New Issue
Block a user