Every step in a flow declares an archetype. The researcher reads the code and sets direction. The implementer makes the edits. The reviewer judges the result. Circuit resolves each step's model and effort from its archetype and the dial at the moment the step runs.
The allocation is deliberately lopsided. Turn the dial down and the implementer drops to a cheap, fast model while the researcher holds the top tier at every setting. The reading that steers the run is the wrong place to save.
On auto, the run sizes itself: the researcher recommends a tier and the engine clamps it to bounds you set. A failed step retries one tier up. An explicit model or effort you set yourself always wins over the dial.
After the run, the receipt reports the dial position and what each archetype spent.
| step | role | low | medium | high |
|---|
| analyze-step | researcher | opus | opus | opus |
| act-step | implementer | haiku | sonnet | opus |
| review-step | reviewer | sonnet | sonnet | opus |
› dial: low · the implementer drops two tiers. the researcher does not move.
non-relay steps: frame-step (checkpoint), plan-step (compose), build-baseline (verification), verify-step (verification), build-touch-area (verification), close-step (compose)
The matrix is the Build flow's real allocation, straight from circuit preview. On Codex the dial moves each step's reasoning effort too. The non-relay steps carry no model at all: the engine runs those checks itself.