Strip the disable-model-invocation frontmatter key from all 19 editable skills. Absent = default = model invocation enabled. 8 were 'true' and blocked the model AND orchestrators from self-routing (status, plugin-check, analyze, onboard, refactor, init-project, pdf-translate, ship-feature) — contradicting the CLAUDE.md skill-routing rules. The other 11 were 'false', a no-op noise line. The setting is binary (no per-caller granularity), so enabling orchestrator chaining also enables model auto-fire — accepted. Genuinely destructive operations remain guarded by the careful/guard hooks, independent of this flag. Capitalized: BDR-019 (decision), LRN-026 (learning), journal 2026-06-09. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
8.3 KiB
ORCHESTRATOR: SHIP FEATURE
REQUEST
$ARGUMENTS
STEP 0 — PLUGIN CHECK + AUTO-ACTIVATE
Load $HOME/.claude/agents/plugin-advisor.md. Feed request.
- ACTION REQUIRED → show RECOMMENDATIONS block, offer: A) fix plugins B) type "force". STOP.
- PROPOSED CHANGES exist → show list, ask "Apply? (yes / no / customize)". Apply on confirm.
- OK →
✅ Plugin check passed — [active plugins] — complexity: <score>%, continue.
STEP 0b — PROJECT CONTEXT CHECK
Verify the project has a CLAUDE.md and print a brief orientation summary:
ls CLAUDE.md .claude/CLAUDE.md 2>/dev/null | head -1
git branch --show-current 2>/dev/null || echo "not a git repo"
git log --oneline -3 --format="%h %<(50,trunc)%s" 2>/dev/null || true
ls .gsd/ROADMAP.md 2>/dev/null | head -1
- CLAUDE.md found → read it silently, then print orientation header (informational, not a gate):
Continue to STEP 1.📋 PROJECT CONTEXT Project : <name from CLAUDE.md> Stack : <stack from CLAUDE.md> Branch : <current git branch> Recent : <last 3 commit messages> GSD : <current milestone if .gsd/ROADMAP.md exists, else "not initialized"> - Not found →
Print: "⚠️ No CLAUDE.md found in this directory.
This project has not been onboarded into claude-config.
Run
/onboardfirst to generate CLAUDE.md and project settings, then re-run/ship-feature." STOP.
STEP 0c — CTX7 CACHE CHECK (if fast-libs in project)
Check if the project uses fast-evolving libs (scan package.json for next, react, prisma, supabase, drizzle, expo):
- If
.ctx7-cache/exists with recent files (<7 days old) → print📚 ctx7 cache found: <libs>and continue. - If
.ctx7-cache/missing or stale ANDctx7is installed AND fast-libs detected:
Print:mkdir -p .ctx7-cache # Fetch docs for each detected fast-lib (adapt to actual deps): ctx7 docs /vercel/next.js "app router middleware routing" > .ctx7-cache/nextjs-core.md 2>/dev/null || true ctx7 docs /prisma/prisma "schema client queries" > .ctx7-cache/prisma-core.md 2>/dev/null || true📚 ctx7 docs pre-fetched for: <libs> - If no fast-libs or
ctx7not installed → skip silently.
During implementation (STEP 4), when making decisions about fast-lib APIs:
- Read the relevant
.ctx7-cache/<lib>.mdfile before writing code. - This avoids repeated ctx7 calls and keeps docs available without context cost.
STEP 1 — BRAINSTORM
Invoke superpowers:brainstorming. Refine request into validated design via Socratic questioning. Don't proceed until design approved.
STEP 2 — PLAN
Invoke superpowers:writing-plans. Break design into tasks (2-5 min each). Each task: exact file paths, full code, verification steps.
STEP 3 — VALIDATION GATE ★ MANDATORY STOP
SHIP FEATURE — VALIDATION GATE
FEATURE: <n> | TASKS: <count>
<numbered task list>
Approve and execute? (yes / request changes)
Changes → back to STEP 2. Approved → continue.
STEP 4 — IMPLEMENT
Invoke superpowers:subagent-driven-development. Isolated subagents. 2-stage review per task: spec compliance → code quality.
STEP 4b — ERROR RECOVERY (if STEP 4 fails)
If a subagent returns a build error, failing test, or type error:
- Load
$HOME/.claude/agents/analyzer.mdin DEBUG MODE on the exact error output. Produce: root cause hypotheses (ordered), affected files, what NOT to touch. - Present gate:
SHIP FEATURE — ERROR IN STEP 4
TASK : <task name that failed>
ERROR : <one-line summary>
HYPOTHESES:
1. [HIGH] <cause> — evidence: <…>
2. [MED] <cause> — evidence: <…>
OPTIONS :
A) Apply fix for hypothesis 1 and re-run this task
B) Skip this task and continue with remaining tasks
C) Abort feature — preserve work done so far
- Wait for user choice. Do NOT auto-fix. Do NOT proceed without explicit approval.
- If A → apply minimal fix, re-run STEP 4 for the failed task only. Max 2 retry attempts. If still failing after 2 → fall back to options B or C. If B → before skipping: scan remaining task list for tasks that depend on the failed task (look for references to the same file or function in subsequent tasks). If dependents found → present: "Tasks [N, M] depend on the skipped task. Skip them too? (yes / keep and accept partial implementation)" If no dependents → skip cleanly and continue.
STEP 5 — ANALYZE
Load $HOME/.claude/agents/analyzer.md. Check: no regressions, no stale code, no plan deviations.
STEP 6 — CODE REVIEW
Invoke superpowers:requesting-code-review. Fix all CRITICAL before proceeding.
STEP 7 — FINISH
Invoke superpowers:finishing-a-development-branch. Tests pass, build clean, ready to merge.
STEP 8 — DOC SYNC
Load $HOME/.claude/agents/doc-syncer.md.
Execute in automatic mode:
auto-mode scope: <list of files modified during this session>
STEP 9 — CAPITALIZE (memory registries)
Feature shipped implies at least one design decision worth capturing. Run this before declaring done:
- Scan conversation context for:
- Design / architecture choices with rationale → candidate for
decisions.md(BDR-XXX). - Reusable patterns, surprising discoveries → candidate for
learnings.md(LRN-XXX). - Dead-ends with identified root cause → candidate for
blockers.md(BLK-XXX).
- Design / architecture choices with rationale → candidate for
- For each candidate, pre-fill a full entry (ID, date, title, body per registry schema) from conversation context.
- Present them grouped:
CAPITALIZE — registres proposés [ decisions.md ] BDR-XXX — <titre> — <1-line why> [ learnings.md ] LRN-XXX — <pattern> [ blockers.md ] (aucun) Valider lesquels ? (all / <IDs> / edit / skip) - Append approved entries to the registries. Update the Index table at the top of each file.
- Append a one-line entry to
.claude/memory/journal.mdunder today's date heading (## YYYY-MM-DD).
Language rule: written entries are ALWAYS in English (see CLAUDE.md "Memory registries" § Language). The interactive gate above may mirror the user's language; the appended entries must not.
If nothing substantive to log → print CAPITALIZE: nothing substantive to log and skip.
RULES
- No skipping steps. No merged agent responsibilities.
- No implement without user approval at STEP 3.
- Subagents isolated — no shared context between tasks.
- Fix all CRITICAL review issues before proceeding.
- Stop if requirements unclear at any step.
- STEP 4 errors → STEP 4b gate required before any fix. Never auto-patch a failing subagent.
FAILURE PATHS (orchestrator-level)
The pipeline must handle these without aborting silently:
| Situation | Behavior |
|---|---|
STEP 0b — CLAUDE.md missing |
STOP with the printed message ("Run /onboard first…"). Do not proceed. |
STEP 0c — ctx7 not installed but fast-libs detected |
Skip pre-fetch silently. During STEP 4, log 📚 ctx7 cache miss for <lib> and continue with vanilla model knowledge. |
| STEP 1 — brainstorming returns "design unclear" twice | Escalate: ask user "Switch to /init-project (greenfield-style design) or refine the feature request?" |
| STEP 3 — user replies "request changes" | Loop back to STEP 2 with user's notes. Cap at 3 iterations; on the 3rd "request changes" without approval, ask "Pause and rescope this feature?" |
| STEP 4 — subagent crashes (tool error, not test failure) | Treat as STEP 4b error path, present hypothesis-led gate. |
| STEP 4b — option A retried 2× still failing | Force fall-through to B or C. Do not loop a 3rd time. |
| STEP 6 — review returns CRITICAL items | Loop back to STEP 4 for those items only. Cap at 2 review-cycle iterations; if still CRITICAL, escalate. |
STEP 9 — .claude/memory/ missing |
Create the registry files from ~/.claude/templates/memory/ first, then proceed. |
FINAL OUTPUT
FEATURE SHIPPED: <n>
TASKS: <N>/<N> | TESTS: ✅/❌ | REVIEW: APPROVED/CHANGES REQUIRED
REMAINING ISSUES: <list or none>