| INTAKE | Orchestrator | decode ticket, define constraints, size tasks | none | missing clarity → request owner input |
| SCOUT | R0 lane: Phoenix / deepseek-v4-flash | gather evidence pack | none; all outputs are hypothesis | false/weak claim → ignore or recollect evidence |
| PLAN | Orchestrator | build manifest.json then run plan gate | adw-gate.mjs plan --input <manifest.json> | fail -> replan with counter-evidence (max 2 cycles), then HOLD |
| BUILD | Producer lanes: mini, spark, Sonnet (luna = rescue only — registry: verifier-strategist, mayExecuteWorkerTasks false) | execute micro-tasks; no self-verification | none | submit failure payload back to orchestrator for BUILD loop |
| VALIDATE | Orchestrator + deterministic tooling | lint/type/tests, then adw-gate.mjs validate --input <outcome.json> | validate gate pass -> deltaU+contributions record | fail -> immediate payload back to BUILD in same session |
| REVIEW | /codex:review (sol) + /code-review + third-family tie-break (Helios/Grok) on disputes | claim-by-claim adjudication | cross-family adversarial pass only | unresolved claim -> return to BUILD or owner |
| SHIP | Orchestrator | scoped git add, scoped git commit, ledger report | owner-ready, no blocking claims | conflict/uncertain evidence -> HOLD, no commit |