Backlog drain is not completion.
Millrace does not treat empty queues as done. It preserves closure state, records root work lineage, and waits for an Arbiter closure pass before the runtime stamps success.
The operating rule is simple: backlog drain is not completion. Completion has to survive comparison against the root contract, not just the absence of claimable work.
Completion is judged against the root contract.
Millrace records root work lineage, preserves closure state, and uses an Arbiter closure pass to compare actual evidence against the root contract. If that evidence is weak, the runtime routes remediation instead of silently declaring success.
Root lineage
The closure target carries root spec and root idea identity, giving Arbiter a stable contract to judge after planning and execution have moved through many files.
Arbiter judgment
Arbiter runs as a real planning-stage closure pass. It reviews canonical contract copies, evidence, reports, and rubric state before emitting a terminal result.
Blocked/recovery routing
Remediation becomes accountable planning work. Blocked closure stays explicit. The runtime owns the state mutation either way.
Follow the recovery route instead of trusting silence.
Closure targets, Arbiter verdicts, run reports, and incident routing all stay available to the operator. Empty queues are only one signal; the runtime waits for evidence before it closes the root lineage.