v0.0.50 — lead-sized teams for working and reviewing
Completes what 0.0.49 started: every fan-out is now a lead sizing its own team — planning, working, and reviewing.
Working: the Coordinator assigns its own editors
The editor fanout used to split a manifest by parent directory. That's a proxy for cohesion and it's wrong exactly when it matters — a route, its service and its test live in three directories and belong to one editor.
The Coordinator surveyed the code and wrote the manifest, so it is the lead. It now tags each entry with an editor label, and entries sharing a label go to one leaf whole — never chunked, because the lead named that group deliberately and an editor is not rationed. Untagged manifests fall back to directory grouping, unchanged.
After verify fails, the fix pass makes the same call again on what actually broke: a few failures in one area → fix inline; failures spread across independent areas → a second wave sized to the damage.
Reviewing: parallel investigation, serial writes
Reviewing is the one phase that cannot fan out and write — every fixed thread commits against the shared checkout, so two writers would sweep each other's work into one commit.
What parallelizes is everything before the write. A lead groups the unresolved threads (several comments on one file are ONE investigator's job) and a read-only wave works them out concurrently ahead of the sequential resolver. Briefs are leads, never verdicts: the Reviewer still decides the outcome and confirms anything it acts on. A single thread skips the team.
Investigators are read-only by construction — they never receive the edit/bash/github tools, and a test pins that.
Shared rules, wherever a lead appears
- One subagent is a good answer; splitting only pays when the ground genuinely divides.
- Size each assignment before sending it — too big if it spans work that doesn't inform itself, too small if it lands in a neighbour's files.
- Brief, don't script: what the lead hands over is a floor, never a ceiling.
subagentLimit(default 10) caps concurrency across all three phases — never work.