Worked examples
A gate decision, asking what is next, the merge that checks before it moves, closing honestly.
A gate decision, and what the surface refuses
Both --gate and --decision are required with no defaults. The engine refuses, with
nothing written:
- a decision by a non-human actor,
- vocabulary outside the closed sets above,
- a
mergeddecision (merged is observed, never declared), - a gate out of order — refused with the list of what the stream still owes.
Asking the fleet what is next
One read returns the stream's resolved state, every gate still owed, the legal next acts — and a ready-to-paste command per act, so "what now" never requires reconstructing the protocol from memory.
The merge that checks before it moves
Ordinary preconditions are checked first: the required gates recorded, the review lane
(when engaged) holding a recorded accept or accept-with-conditions, the branch state
sane. Then the engine conflict-probes the current pair in a detached worktree, with no
suite. A violated precondition or conflict refuses by name (class merge-preconditions)
and lands nothing; a clean probe lands before the serialized act releases its lock.
Closing a stream honestly
Refused until the projection shows merged and the worktree is clean; every return artifact's fate is recorded. For work that ends without landing:
The stream ends, and the record says why.