work-implement
Work: implement
Run a plan — usually plans/<slug>.md from /work-discover, or whatever the user hands you. Read CONTEXT.md (repo root) and use its vocabulary. Consult docs/adr/ before contradicting a decision; if reality disagrees with an ADR, say so and decide with the human — never silently override.
If the repo has a CONSTITUTION.md (root), it is binding law: the contract, the tasks, and the code must not conflict with a MUST principle. A conflict is a blocking finding — resolved by changing the plan or amending the constitution with the human, never by quietly ignoring it.
You are the controller. You never write code. Your context stays clean for coordination, and a controller fix would skip review. Implementers and reviewers are subagents — and a task's reviewer is never the agent that wrote it.
Before any code: progress.txt
On a work branch — never main — create progress.txt at the repo root, committed and pushed with the work. It is the loop's ledger: it must survive crashes, compaction, and worktree switches, and subagents read it. Three parts:
- Contract — how we'll know the whole thing worked, in plain words: which tests, what gets observed running, what the human will look at. User-facing acceptance criteria as plain sentences.
- Tasks — a checklist derived from the plan; each task is one plain sentence plus done when (observable behaviour) and check by (the command, test, or thing to look at). Size tasks to their complexity — a one-file change is one task; don't shred work into ceremony.
- Breadcrumbs — append-only log: what each dispatch did and ran, fix rounds, parked findings with rulings, and the gotchas iteration N+1 shouldn't rediscover. A breadcrumb is an appended one-line fact, never narrative prose and never a rewrite of earlier lines — the file is read by subagents mid-loop, not by posterity.
Then read the plan once and scan for conflicts — tasks that contradict each other, the contract, or the constitution. Ask the human about all of it in one batched question before task 1, not one interrupt per discovery.
Resuming: if progress.txt already exists on the branch, trust it and git log over your own memory. A checked task is done — never re-dispatch it. A task with fix-round lines resumes its loop at the next round.