The pull request is four lines long and it touches no code. It changes a condition in the file where your review workflow is declared: one more branch, taken when the risk score comes back high. A colleague comments on the line the way she would on anything else. Then the validator in CI refuses the change, because the new branch reads a field no earlier step produces. Nothing has run, and the argument about how the system behaves has already happened. The part you did not expect comes later, when the same repository turns out to be how the agents talk to each other.

The method is written before anyone rings

Eight people stand in a tower with one rope each, and the bells are far too loud to talk over. What they ring is a method: a written line saying, for every stroke, where each bell moves next. Before anyone books the tower the sequence is checked on paper: one that brings the same order of bells round twice is false, and gets thrown out at the table rather than forty minutes in. Then they ring. Nobody calls out instructions; nobody could hear them. Each ringer has the written line and the sound of the bell in front. When two of them go for the same place, they collide on that row, audibly, in the second it happens.

A workflow declared in a source-controlled file works the same way. The file names the agents, what each one receives, the conditions that pick a branch, which steps run as a parallel group, and where the run is allowed to stop. Because it is a file, a change arrives as a diff — the new branch visible as text before it is behaviour — and a validator can refuse a condition that reads an input nothing produces. Routing that used to emerge from a model’s mood becomes infrastructure: repeatable, reviewable, and cheap, in the sense that no tokens go on deciding what comes next.

Sixteen agents coordinate without anyone in charge

A tower holds as many ringers as it has ropes; a repository holds as many agents as you like. Sixteen of them, each in its own container with its own clone, working through a list of failing tests with no orchestrator above them. An agent claims a task by writing its name into a shared file and pushing. The push is the row where everything has to line up: it makes the claim real, because the second agent to reach that line gets a conflict rather than a silent overwrite. Ownership, progress and disagreement all live in artifacts anyone can read. One agent spends its turn on performance, another on documentation, and CI stops a regression before the next claim takes broken code as its baseline.

What you are deciding is what you trust to run unattended, and the answer depends less on the model than on the shape of the work. Parallelism holds while the tasks are separable; it falls apart on one large shared bug, where you need a finer oracle and a real way of cutting the problem up. The second decision is what comes back: the full test output belongs in a file and only its summary in the window, because pouring the whole log into the context ruins the feedback exactly when it matters. And versioning the workflow while leaving the workspace instructions and the dependencies outside it buys a diff you can read and a run you cannot reproduce.

Recovery is a branch, not an accident

Written down, the workflow is already a graph: nodes that perform a step and update state, edges that choose what happens next, including the edge to a repair step and the edge to a human. Give that state a durable checkpoint and a crash stops meaning a restart from the top: the run resumes where it actually got to. The trap is checkpointing without a schema you have thought about, because a resumed run reads yesterday’s state with today’s logic and is confident about it.

None of which argues that everything belongs in the file. The genuinely open parts — read this document, work out what the risks are — are better handed to agents that decide as they go, invoked as one step that gives control back. What should not be handed over is the gating: the threshold that sends a report to a person, the retry policy, the side effect you cannot take twice. Those belong to the deterministic half, where they can be read in a diff and argued about beforehand.

Nothing about this stops two agents from wanting the same piece of work. The file is what they agree on, and the push is where they find out they didn’t.