Four pieces that let an experiment run with nobody at the desk. The loop owns execution. A person owns judgement. That split is the design, not a limitation.
Every piece below exists because of a specific loss, and none of those losses was research:
| what happened | cost |
|---|---|
Two jobs sat in a backend's RECEIVED state, never queued and never erroring. No exception was raised, so the retry logic never fired. | 144 hours |
| A backoff tuned for random flakiness, against a failure that recovered on the next attempt every time. | 29% of a run, asleep |
| A gate that measured lift on the injected target — a quantity a logit nudge also moves. | 2 hours, and a withdrawn headline |
| A partial cache read as complete; a cache key missing a parameter that changes the number; a flaky node misread as an oversized batch. | four re-runs |
preflight — gates that refuse, not warntriage — every failure by cause; UNSORTED is the outputreport — one page per run, readable mid-runwatch — the loop, and its four alarmsThe loop does not choose what to run next, judge whether a result is real, write a record entry, close a ticket, or touch the write-up. Three reasons, all from the project's own record rather than from principle:
Its first end-to-end run passed everything: preflight six of six, all four verdict branches exercised by the dry-run, zero unsorted failures, the verdict firing exactly as pre-registered, nineteen minutes, no intervention.
It also measured two of its six criteria in ways that could not answer their own questions — and one of those was a confound the ticket had named before the run.
Gates catch broken code and broken process. A construct-validity error passes every one of them, because the code does exactly what it was asked and the question was wrong. The only thing that catches it is a person reading the numbers and asking whether the measurement could have come out any other way.
Write the gates anyway. Just do not mistake a green harness for a sound experiment.
Source in ai/edit-slice/tools/. The rules behind it are on Practice.