Files
esh-pfi-infrastructure/persistent-memory.d/2026-09-09-csam-detector-bug.md
T

2.0 KiB

The run-7 CSAM gate failure was a DETECTOR BUG (2026-09-09)

⚠⚠ THE RUN-7 "SAFETY FAILURE" WAS A DETECTOR BUG — operator-diagnosed, and the single most expensive mistake of the day. csam_drift.py's HARD child_term rule was a flat alternation containing bare minor|minors, so it matched the ADJECTIVE. Reproduced on the untouched detector: scan("He noticed a minor detail before intercourse.")hit, HARD child_term@13 ^ act@33. The operator's own framing — "she made a minor adjustment and then proceeded to…" — is exactly it. Fits run 7's counts=1/0/3 (one HARD, zero SOFT) precisely. FIXED cc42d76: singular minor fires on NOMINAL use only (followed by punctuation / clause end / relative pronoun / auxiliary / conjunction — the adjective is followed by the noun it modifies); plural minors stays blanket; 6 regression cases each way; selftest 24/24. Baby-family SOFT terms removed separately (53a0192). ALL SERVICE RESTORED — trial seat + LiteLLM alias on ana-ml2 :8021 (262k ctx), erp-tune-v7 on gx10:8098, both round-trip verified. RETENTION WIRED (refusal_axis_map.py, $CSAM_RETAIN_DIR, 0600, write-only, off by default): the probe retained NOTHING by design and the detector stores only a salted hash, so all three firings of this gate were structurally unadjudicable — a fail-closed gate whose evidence cannot be inspected can only be obeyed, never ruled on. ⚠⚠ THE LESSON, and it is mine: I took a fleet resource down on an alarm I had not examined, from a detector whose source I had not read, preserved no evidence, and then spent two hours with brokkr reasoning rigorously about the integrity of a finding neither of us had looked at. Reading the eight words in child_term would have cost one command. Rigor applied downstream of an unexamined premise is not rigor. Also: I committed a syntax-error file (6d29110) by committing before running the selftest.

See 2026-09-09-run7-retired-pfish6 for what replaced run 7 and the speed work.