/develop — Master Pipeline
Read .claude/models.yml for model routing.
PHASE 0: Triage
- Read
.claude/memory/project-state.md- Has pending
[ ]tasks withskill: /develop? → RESUME from first pending task (skip to Phase 2) - Clean state or
phase: IDLE? → Continue to Phase 1
- Has pending
- Use planner agent (model: opus) to analyze request
- Needs architecture changes? → Include Phase 1
- No arch changes? → Skip to Phase 2
- Arch-only request? → Phase 1 only, then finalize
PHASE 1: Architecture + Planning
- Read
.claude/memory/decisions/DEC-*.mdto avoid re-litigating past decisions - If architecture changes needed:
- Use planner agent (model: opus, design mode) → update architecture.md
- Record new decisions as
DEC-####.mdinmemory/decisions/
- MANDATORY — Write plan to project-state.md using this exact format:
# Project State
updated: [YYYY-MM-DD]
skill: /develop
phase: execution
## Active Tasks
### Wave 1: [Wave Name]
- [ ] Task description
- [ ] Task description
### Wave 2: [Wave Name]
- [ ] Task description
- [ ] Task description
## Current Focus
task: (starting)
file: (none)
test: (none)
## Blockers
(none)
## Recent Decisions (last 5)
(none)
- Output the plan summary. Wait for user approval before proceeding to Phase 2.
PHASE 2: Execution Loop
BEFORE each task:
- Update
Current Focusin project-state.md with the task being worked on
For each pending task [ ] in project-state.md:
- Use builder agent (model: sonnet): implement + test
- PASS → IMMEDIATELY edit project-state.md:
- Change
- [ ] Taskto- [x] Task - Update
Current Focusto next task - Print:
✅ [N/total] Task description
- Change
- FAIL → builder retries (max 2). 3rd fail → STOP, ask user.
After each completed wave:
- Update
phasefield if moving to next wave
Every 3 completed tasks:
- Use /summarize-context to compress state
- Print:
Context compressed. Continuing task N.
PHASE 3: Finalization
- Verify ALL tasks
[x]in project-state.md - Run final validation:
{stack.runtime.exec_prefix} {stack.commands.validate}- If
validateis defined in stack.yml, run it (typically: tests + build) - If not defined, run
{stack.commands.test}then{stack.commands.build} - Build step catches SSR/runtime errors (missing providers, import errors, type mismatches)
- FAIL → create fix tasks, return to Phase 2
- If
- Update project-state.md: set
phase: completed - Use git agent (model: haiku): commit + push
- Use /archive-state: move state to archive/
Critical Rules
- NEVER skip writing to project-state.md. Every task state change MUST be persisted.
- project-state.md is the source of truth. If the session crashes, the next
/developreads it and resumes. - Mark tasks [x] one at a time, not in batch. Each mark = one Edit to the file.
- 80-line cap: If project-state.md exceeds 80 lines, archive completed waves immediately.
- NEVER create documentation files (docs/*.md, README, CHANGELOG) unless explicitly requested by the user. Only write to
.claude/memory/files. - Do ONLY what the task says. No extra features, no refactors, no "while I'm here" improvements.
Converted and distributed by TomeVault — claim your Tome and manage your conversions.