diff --git a/tools/re-capture/check_refuted.py b/tools/re-capture/check_refuted.py index 9f7eb8b2..0683f1f8 100755 --- a/tools/re-capture/check_refuted.py +++ b/tools/re-capture/check_refuted.py @@ -108,3 +108,13 @@ if "--show-marked" in sys.argv: print(f" · {f}:{ln}\n claim: \"{c[:70]}\"\n line : {l[:100]}") elif suppressed: print(" re-run with --show-marked to read them") + +# 🔴 EXIT CODE, added 2026-08-31. This printed its findings and returned 0 no +# matter what -- a planted unmarked revival was reported and the run still +# succeeded, so any pipeline using it asserted NOTHING. sylpheed-port shipped the +# same shape (`return 0` unconditional) one day after writing that defect up in +# someone else's work; mine had been live since the tool was written. +# Unmarked assertions FAIL. Suppressed mentions do not -- they are unverified, +# not wrong, and failing on them would make the clean state unreachable. +if hits: + sys.exit(1) diff --git a/tools/re-capture/impossibility_scope.py b/tools/re-capture/impossibility_scope.py index 342d6474..e10cf3d0 100644 --- a/tools/re-capture/impossibility_scope.py +++ b/tools/re-capture/impossibility_scope.py @@ -73,3 +73,12 @@ else: print(f" matched; scope words {_sc} -> {'HIDDEN by scoring' if _sc else 'shown'}") if _sc: print(" \U0001F534 CONTROL FAILED: scored as scoped, so it would not appear in the default listing.") + +# 🔴 The control above PRINTED its failure and this script exited 0 -- so a broken +# control was indistinguishable from a passing one to anything but a human reading +# the last line. Fixed 2026-08-31, the same day the tool was written, after +# sylpheed-port reported the identical shape in their own suite. The LISTING is a +# prompt and never fails; the CONTROL failing is a hard error, because every hit +# above is meaningless without it. +if (not _m) or [w for w in SCOPED if w in _m.group(0).lower()]: + sys.exit(2)