docs(handoff): a timeout wrapper around the gate is not a result

Section 3 already forbids starting the gate from a shell that ignores
SIGINT, and already records that an ordinary tool-level background
launch is measured deliverable. It did not cover the other way a
harness convenience turns into false evidence.

The 16-stage suite outruns a ten-minute agent command cap. Wrapping it
in `timeout 580` kills sweep mid-run, and the runner records that stage
as a failure --- indistinguishable in the log from a real red. That
produced one false SS5b gate result.

Records the supported alternative, which is the tool-level background
launch the section already vouches for, and the fallback of labelled
pieces with the record saying which piece produced which result.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016bqGA6s9tTUFzYpbeW3tai
This commit is contained in:
Levi Neuwirth 2026-08-20 17:32:34 +02:00
parent 24e4039eb6
commit 5f2015c26f
No known key found for this signature in database
1 changed files with 17 additions and 0 deletions

View File

@ -2575,6 +2575,23 @@ the fix is to re-run it in the foreground, not to work around the
guard. `scripts/check-sigint-deliverable` answers the question on its
own: exit **0** deliverable, **1** ignored, **2** undecidable.
**AND NEVER WRAP THE GATE IN `timeout` TO FIT AN AGENT COMMAND CAP.**
The full 16-stage suite outruns a ten-minute cap, and a `timeout 580`
around it kills `sweep` mid-run; the runner then records that stage as
a **failure**, which reads in the log exactly like a real red. This
already produced one false §5b gate result. It is the same defect as
the one above in a different costume: a harness convenience silently
becoming evidence.
The supported way to run past the cap is the **tool-level background
launch**, which is measured `safe` by
`scripts/check-sigint-deliverable`, so the guard admits it and the run
is valid. Check it directly if in doubt --- the helper is one command
and answers for whatever shell actually invoked it. Failing that, run
the suite in labelled pieces and say in the record which piece produced
which result. **A truncated run is not a result, and must never be
reported as one.**
```
scripts/gate [--acceptance SUITE]... [--protocol]
```