Example
Take work, so nobody else starts it
Two people — or two agents — never both build the same thing: an agent takes a task in the run it records, a person by taking it on, and the second one to try is told who has it.
9 steps, driven by a person and an agent. Every step is a step in an end-to-end test, run against a listening server on every pull request, so the graph moves the way the run moved it.
Why it is shaped this way
A task names who has taken it on: a person in the project, or one of its teams when nobody in particular has yet. The ready set offers what nobody has taken and what is yours or your team’s, and nothing else. A team hands its work to one of its own members by assigning it, and that is the ordinary path. One person’s agents all act as that person, so a holder cannot tell two of them apart: an agent takes a task by naming it in the run it records, in the same write, and a second run naming it is told which run has it and leaves it. Taking work somebody else holds is not refused — Flow refuses only a status that contradicts itself — but it is never silent either: the answer names who has it, so the one conversation that has to happen does.