Architect / Builder separation
One agent designing and implementing defends its own design. Splitting the roles keeps structure honest.
NOT WHEN · The structure is already fixed and the work is filling in a known shape.
A library of reusable patterns. Each defines the problem, the routing of work between human and agents, how the output is validated, and, as importantly, when not to use it.
Agents produce plausible code immediately, which makes it tempting to skip thinking. Unchallenged plans embed wrong assumptions that surface as expensive rework.
A research agent surveys the territory. A planning pass produces a stepwise plan. A separate agent, or the same one adversarially prompted, attacks the plan. Only a surviving plan reaches implementation. A cold reviewer reads the final diff.
Frame the problem, judge the challenge round, arbitrate disagreements, approve the plan, and own the merge. The human is the constant across every stage.
Research breadth, plan drafting, adversarial critique, implementation within scope, and an independent cold-context review.
The challenge round validates the plan; tests and independent review validate the code. Nothing merges on the implementer's word alone.
Ceremony on trivial tasks; challenge rounds that degrade into agreement if the critic shares the planner's context; humans rubber-stamping surviving plans.
Small, reversible, well-understood changes. A one-line fix does not need a five-stage pipeline. That is what maintenance patterns are for.
One agent designing and implementing defends its own design. Splitting the roles keeps structure honest.
NOT WHEN · The structure is already fixed and the work is filling in a known shape.
A reviewer with no memory of the implementation reads the diff cold and reports findings before any human review.
NOT WHEN · Generated throwaway code that will never reach production.
Tests written and approved before implementation give the agent an objective target and the human a verification anchor.
NOT WHEN · Exploratory work where the desired behaviour is still being discovered.
No fix is accepted until the failure is demonstrated, then demonstrated fixed. Kills "it should work now".
NOT WHEN · Truly non-deterministic failures. Then the pattern shifts to instrumentation first.
Docs written so a fresh agent session can act on them: onboarding material that is tested, not assumed.
NOT WHEN · Fast-moving prototypes where docs would immediately rot.
A structured first session that maps the codebase, conventions and coupling before any agent is allowed to change it.
NOT WHEN · Repositories small enough to fit in a single context window.
Long tasks are split across sessions with deliberate handover documents, because context loss is silent and cumulative.
NOT WHEN · Tasks that comfortably finish inside one focused session.