When One Turn Is Not Enough

Codewhale’s orchestration problem begins when a task is too broad, long-lived, or independent to fit comfortably inside one turn. The right response is not automatically “start more agents.” It is to choose the smallest coordination surface that preserves authority, recovery, and verification. This chapter distinguishes a direct turn, a focused child, Fleet, Workflow, Lane, and Runtime, then follows an audit–implement–verify task to show why dispatched work is not the same as settled or verified work.

Choose the smallest sufficient surface

A direct turn is enough when the work is tightly coupled and one model can inspect, change, and check it without losing context. A small bug fix, a focused explanation, or a single diagnostic loop usually benefits from staying in the parent session. Adding workers introduces coordination, separate context, lifecycle records, and a need to reconcile results. Parallelism is not free.

A short child agent becomes useful when the parent needs a focused assignment with a different posture or context boundary. An explore or planner role can inspect without writing. A reviewer can grade a change. An implementer can carry a scoped edit. A verifier can run bounded checks without becoming the person who fixes them. The child’s role describes its intended stance, but the parent’s effective authority remains the ceiling.

Fleet becomes useful when identity must persist across retries, sleep, restart, remote placement, or an audit trail. A Fleet member has a stable identity, semantic role, and exact provider/model route or explicit inheritance. That identity can be selected deterministically and recorded in a durable run. Fleet does not itself execute the work or authorize it; Runtime applies the live execution envelope after selection.

Workflow becomes useful when the problem is about order. If a task requires “inspect first, implement second, verify third,” or needs gates, bounded loops, shared budgets, replay, and explicit fan-in, Workflow can represent that ordering. Its authoring surface is a coordinator, not a shell with a nicer syntax. Real file, network, and model work occurs in Runtime workers under ordinary policy.

A Lane is one running Workflow instance. It gives an operator something concrete to inspect, interrupt, or resume without confusing a reusable Workflow definition with a live execution. The terms form a division of labor: Fleet is who, Workflow is order, Lane is one running instance, and Runtime is where and how the authorized work executes.

What each layer owns

Fleet’s identity model is intentionally narrower than a permission profile. It can say that a member is an implementer using a particular model, but it does not decide whether that member may access a secret, use a network, or write outside the workspace. Those decisions belong to delegated coordination and Runtime policy. If the selected route cannot run inside the effective envelope, launch fails closed; Runtime does not choose another member merely because they would be easier to run.

Workflow owns the shape of coordination: branches, sequences, loops, reductions, phases, budgets, and gates.