--- name: ship-feature description: Ship feature end-to-end: design → plan → implement (TDD) → review → finish argument-hint: disable-model-invocation: true allowed-tools: Read, Write, Edit, Bash, Grep, Glob --- # 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: %`, continue. ## STEP 0b — PROJECT CONTEXT CHECK Verify the project has a `CLAUDE.md` and print a brief orientation summary: ```bash 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): ``` 📋 PROJECT CONTEXT Project : Stack : Branch : Recent : GSD : ``` Continue to STEP 1. - **Not found** → Print: "⚠️ No CLAUDE.md found in this directory. This project has not been onboarded into claude-config. Run `/onboard` first 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): 1. If `.ctx7-cache/` exists with recent files (<7 days old) → print `📚 ctx7 cache found: ` and continue. 2. If `.ctx7-cache/` missing or stale AND `ctx7` is installed AND fast-libs detected: ```bash 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 ``` Print: `📚 ctx7 docs pre-fetched for: ` 3. If no fast-libs or `ctx7` not installed → skip silently. During implementation (STEP 4), when making decisions about fast-lib APIs: - Read the relevant `.ctx7-cache/.md` file 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: | TASKS: 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: 1. Load `$HOME/.claude/agents/analyzer.md` in DEBUG MODE on the exact error output. Produce: root cause hypotheses (ordered), affected files, what NOT to touch. 2. Present gate: ``` SHIP FEATURE — ERROR IN STEP 4 TASK : ERROR : HYPOTHESES: 1. [HIGH] — evidence: <…> 2. [MED] — 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 ``` 3. Wait for user choice. Do NOT auto-fix. Do NOT proceed without explicit approval. 4. 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: ` ## STEP 9 — CAPITALIZE (memory registries) Feature shipped implies at least one design decision worth capturing. Run this before declaring done: 1. 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). 2. For each candidate, pre-fill a full entry (ID, date, title, body per registry schema) from conversation context. 3. Present them grouped: ``` CAPITALIZE — registres proposés [ decisions.md ] BDR-XXX — — <1-line why> [ learnings.md ] LRN-XXX — [ blockers.md ] (aucun) Valider lesquels ? (all / / edit / skip) ``` 4. Append approved entries to the registries. Update the Index table at the top of each file. 5. Append a one-line entry to `.claude/memory/journal.md` under 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 ` 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: TASKS: / | TESTS: ✅/❌ | REVIEW: APPROVED/CHANGES REQUIRED REMAINING ISSUES: ```