Completion detection

"The agent says it's done" is not evidence — models emit confident summaries mid-task. The loop requires agreement between independent signals before a run is COMPLETE:

  • the verdict fence — a structured final block the session must emit;
  • the done marker — an explicit completion token in the output;
  • empty-turn soft-fail — a turn that produces nothing counts against completion instead of toward it;
  • plan reconciliation — the plan's items are checked against what the session actually reported doing.

Disagreement keeps the loop running (or fails it at a bound) rather than declaring victory. And capacity always outranks completion: a "done" emitted while the capacity verdict says the model was starved is recorded, not believed — see the run loop.