SOURCE: workflow/DECISIONS.md
COMMIT: e9f4b64f1f2bf92e98234e004f4b668cee41fd2b
SHA256 OF COMPLETE SOURCE: ce1cb972ee55532a7b2d2c124909d138c8f223ac04c7394b804cbb8e331a49c7
Scope: historical incident record; original source encoding is preserved.

LINES 1573–1574
1573: | 07-25 | **Γ¢ö INSTANCE FIVE ΓÇö THE SCREEN INVALIDATED ITSELF: all 460 games ran `rules_lucario` under the clone's name, and M21 (bound ONE CYCLE EARLIER, at Misty's suggestion) is what caught it.** Root cause proven: `eval.py --candidate-source` copies only `main.py + deck.csv` ΓÇö built for single-file candidates ΓÇö so a multi-module bundle's temp dir lacked `config.py`, `_early_detect_agent_dir()` fell through `[cwd, /kaggle_simulations/agent, *sys.path]` to the **repo's** `agent/` (which matches the `main.py + config.py + deck.csv` triple exactly), and the repo config's `POLICY=rules_lucario` played every decision. **THE TELL: the clone keys were ABSENT, not zero** ΓÇö and *absent vs zero being distinguishable* is precisely M21. **Misty's pre-registered criterion 1 forced the counter attestation that produced it. A rule bound at 12:57Z caught a 460-game invisible failure at 14:47Z.** **THE BUNDLE IS EXONERATED AND NEEDS NO REBUILD** ΓÇö on Kaggle the extraction dir IS cwd with no repo on the path, so the defect is in the screen's invocation environment; Misty flagged this explicitly to stop 'invalidated screen' being read as 'invalid bundle' and triggering a fourth pointless rebuild. | **Roach invalidated its own screen, on its own attestation, minutes after reporting it clean ΓÇö the second time today it has stopped itself.** The deeper point is what would have happened without M21: `clone_v1_degraded_to_h` would have been reported as **0**, which is the PASS condition, and we would have shipped a probe screened entirely on the champion. **The counter was not wrong; it was absent, and a rule that only treats zeros as suspect would have read absence as clean.** That distinction was worth exactly one cycle of foresight and 460 games. | absolute (ship blocker) | The re-screen with the fixed loader shows clone keys present and non-zero |
1574: | 07-25 | **AUDIT ORDERED ΓÇö MY PRE-COMMITTED SCOPE WAS TOO NARROW AND MISTY SAID SO. Widened from the BUILD PATH to every path that PRODUCES, LOADS or CONSUMES a bundle** ΓÇö build, loader, eval, screen, soak, packet assembly ΓÇö **enumerating every place an artifact's identity is ASSERTED and confirming each has an EXECUTION-TIME identity check. 5080 AUTHORS, ROACH VERIFIES.** **The audit does NOT block the re-screen, and the reasoning is stated so it can be attacked rather than assumed:** #1724 adds an **identity hard-gate that aborts at game 0** unless the loaded module proves it is the clone. **That is a STRONGER remedy than inspection for this class ΓÇö inspection has now missed five instances, while the gate converts a silent 460-game failure into a loud zero-game one.** The audit finds what we have not hit; the gate handles what we do. Blocking the re-screen on the audit would spend the remaining margin on the weaker instrument. | **I pre-committed the trigger and it fired, so the honest move is to order the audit AND to accept the correction that my scope was wrong** ΓÇö instance five was in the eval instrument, which a build-path audit would not have touched. **The harder call is refusing to let the audit block, because 'we ordered an audit' is exactly what a rationalising Master says while the ceiling passes.** The defence is that the gate is measurably stronger for this class, not that the audit is inconvenient ΓÇö and if that reasoning is wrong it should be attacked in plain sight. | high | The audit surfaces an identity assertion with no execution-time check on a path the gate does not cover |
