# A turn never ends to wait

> A turn never ends because work is blocked on a peer, which is the one edge a turn] never takes: ending the turn would be the wait, and that wait is a halt.

Page: Methodology · Collaborate
Canonical: https://banes-lab.com/disciplined-methodology/collaborate#a-turn-never-ends-to-wait

This section is stop 79 of 102 in the learning route. Previous: [40 - Posting and waiting are one operation](https://banes-lab.com/disciplined-methodology/collaborate/posting-and-waiting-are-one-operation.md). Next: [42 - Stating an invariant](https://banes-lab.com/disciplined-methodology/collaborate/stating-an-invariant.md). It builds on [40 - Posting and waiting are one operation](https://banes-lab.com/disciplined-methodology/collaborate/posting-and-waiting-are-one-operation.md).

A turn never ends because work is blocked on a peer, which is the one edge [F1·a a turn](https://banes-lab.com/disciplined-methodology/collaborate#a-turn-never-ends-to-wait-panel-a) never takes: ending the turn would be the wait, and that wait is a halt. Waiting costs a tool call rather than a turn. A seat reports to its peers on the surface, never to the developer, because a report addressed to the developer reads as an ending and stops the collaboration for as long as the developer takes to reply. The tool this section relies on is described in [posting and waiting are one operation](https://banes-lab.com/disciplined-methodology/collaborate/posting-and-waiting-are-one-operation.md), and [phase binding](https://banes-lab.com/pag/orchestration/phase-binding.md) on the grammar page explains why a bounded run returns instead.

### Waiting has a command

Every coordination failure that outlives its mechanisms takes the shape of a turn that ended on prose. A seat's own queue empties, it reports a milestone, the turn ends, and the peers whose writes would have created its next work never receive what it found. A well-organised summary delivered at a moment that felt conclusive is the most common disguise a halt wears, and the quality of the summary is not a defence.

For this reason a turn ends on a tool call, a wait is a call rather than a halt, and findings go to the seats that need them. A blocked item is routed to the next open one, and the wait goes through the tool only when every item is blocked, rather than the turn ending on a report. In practice, the model is asked to work the next open item and, where one blocks, to move to the next unblocked one. Where every item depends on a peer, it waits through the tool, naming the surface the argument is on, and keeps the turn open across the wait. When the wait returns a change, it reads the surface whole and acts on every live item addressed to it, without waiting again straight away and without narrating what the read found. When the wait returns quiet, it picks up its own work and waits again. Findings, status and conclusions are written as directed items to the seats that need them.

To check this, read the last action of every response in a session. A response whose last action is prose while work remained stopped the collaboration, however much work came before it. Where the work is clear and nothing blocks it, the work is simply done. Every coordination mechanism is a way of moving work, and moving work feels like doing it, so the blocker is named before anything is routed; where naming it produces nothing, the item is clear and routing it would be a substitute for the work.

A second wait straight after the first throws away the signal just delivered while looking like diligence, because a tool call is present and the turn stays open. Reading produces a coherent picture of what just moved, and a coherent picture is the strongest invitation to describe it; the description is the halt. Quiet is a fact about the peers, never about the queue, and the queue is not empty while a surface is unaudited, a pattern is ungated or a claim is unverified.

A decision that no seat is making is a routing signal rather than a stall, and it travels as one of the [handoff signals](https://banes-lab.com/pag/orchestration/handoff-signals.md) the grammar page types. Two independent refusals are the trigger. A question that every existing seat has declined is an input that exists in no file, which is exactly what makes the work suited to an agent, and it is assigned to a seat without waiting to be asked: either an existing seat whose concern covers it, or a new one created for it. A question a seat correctly judges to be above its own authority goes to the seat whose surface the decision binds, named in the same position that declines it, because saying a decision is not yours is a routing statement, not an end point. A contradiction that is fully diagnosed, with a named repair and no seat to take it, reads as handled while nothing lands. The developer is out of [the loop](https://banes-lab.com/disciplined-methodology/start/the-loop.md) for venues and signs off on every venue automatically, so no venue waits on the developer's signature and no decision inside one is the developer's to take. What the work is for remains the developer's to answer whenever they choose, at the cost of a message rather than a held venue. A question to the developer binds a seat only; a bounded invocation returns its uncertainty instead, as described in [ask where it appears](https://banes-lab.com/disciplined-methodology/plan/ask-where-it-appears.md).

F1·a a turn

```mermaid
flowchart TB
item{"Is there an open item?"}
work["Work it · a tool call advances it"]
blocked{"Blocked on a peer?"}
next["Route to the next unblocked item"]
wait["Wait through the tool · the turn stays open"]
changed{"What did the wait return?"}
read["Read the surface whole, then act on every item addressed to me"]
own["Pick up my own work and wait again"]
report["A report to the developer"]
item -- yes --> blocked
blocked -- no --> work --> item
blocked -- yes, others open --> next --> work
blocked -- yes, all --> wait --> changed
changed -- changed --> read --> item
changed -- quiet --> own --> wait
item -. never, while work remains .-> report
```

## Links to

- [Posting and waiting are one operation](https://banes-lab.com/disciplined-methodology/collaborate/posting-and-waiting-are-one-operation.md)
- [Phase binding](https://banes-lab.com/pag/orchestration/phase-binding.md)
- [Handoff signals](https://banes-lab.com/pag/orchestration/handoff-signals.md)
- [The loop](https://banes-lab.com/disciplined-methodology/start/the-loop.md)
- [Ask where it appears](https://banes-lab.com/disciplined-methodology/plan/ask-where-it-appears.md)

## Linked from

- [Handoff signals](https://banes-lab.com/pag/orchestration/handoff-signals.md)
- [The developer and the model](https://banes-lab.com/disciplined-methodology/collaborate/the-human-and-the-ai.md)
