Skip to content

Roles

RoleWhen it firesReadsWrites
plannerFirst run, if features.json missingSPEC.mdfeatures.json, validation-contract.md
plan-reviewerAfter planner, gated by configAll planner outputplan-review.md (verdict line)
workerOrchestrator: NEXT_WORKER <fid>features.json, contract, knowledge.mdfeature implementation, worker-log.md
validatorOrchestrator: NEXT_VALIDATOR <fid>Contract, worker-log.mdissues.md, pending-issues.jsonl, status mutation
crosscheckAfter validator pass, if enabledSame as validatorCROSSCHECK agree/disagree line
ui-qaAfter validator pass, if claims include VAL-UI-*Real browser via verdictui-qa.md
debuggerPre-worker when attempts ≥ thresholdFailure logs, contractdebug/<fid>.md (root-cause)
architectWhen orchestrator emits NEXT_ARCHITECT <fid>Spec + contract + issuesResolves spec ambiguity
curatorOn terminal events (DONE / ESCALATE) or every N itersraw.md, all statesummary.md, MEMORY.md, identity/<role>.md, issues.json merge
documenterAfter validator pass + on DONECode + specdocs/ (Starlight)
productOptional: at near-done threshold or on-doneGOAL.md vs SPEC.mdproposals/<ts>.md
supervisorExternal cron or rc=3 chainFull mission statesupervisor-notes.md (intervention)
orchestratorEvery iterationAll stateOne-line decision verb
  1. Fresh context. No role keeps in-memory state across invocations.
  2. One job. Every role’s prompt explicitly tells it what its single output is. Multi-purpose roles drift.
  3. Boil the lake. Specialists stay in lane (gstack-inspired). If they see a problem outside scope, they flag it as an issue rather than fixing it.
  4. Identity bias. Every role reads its identity file at startup so it inherits past wisdom (Agent Swarm-inspired).
  5. Evidence required. Validators must quote test output to claim pass (claudecode-orchestrator-inspired).
  6. TDD iron law. Behavioural assertions need a test that failed before the change (Superpowers-inspired).
  • A “supervisor” that runs every loop iteration. Supervisor wakes on cron or escalation only — running it inline turns it into yet another orchestrator and double-counts decisions.
  • “Helper” roles that do bits of everyone else’s job. Each role owns a single output file.
  • Roles that mutate validation-contract.md. Only the architect can.
  • Roles that commit code. Only the worker writes; only run.sh commits.