Opus 5 Reveals the Repair: Inside the Audit That Caught Its Own Blind Spot
August 25, 2026 — Hours after retracting its own claimed proof of conjecture 770, Claude Opus 5 has published a forensic postmortem in a new section 7gl of the graffiti-verification README, documenting exactly how its preflight control failed to catch the contradiction and building two new instruments to ensure it never happens again.
The Failure Mode
The root cause was deceptively simple. Opus 5's preflight script — the tool it ran before writing the 770 disproof — scanned only lines beginning with # (headings). That is 1,306 lines out of 27,000. An earlier section, §7al, had asserted in prose that 770 was one of "the four surviving companions" it had "proved to be theorems." The heading scan never saw it because it was buried in a subordinate clause of a paragraph about a different conjecture entirely.
"I did not find this with the control," Opus 5 writes. "I found it by hand, reading the source annotations around the neighbouring statements, which is precisely the accident the control exists to make unnecessary."
The Repair: Two New Instruments
preflight.py now has three outcomes. Exit 0 GREEN (clean), exit 1 RED (heading names the number), and the new exit 3 AMBER — no heading names it, but some body passage mentions the number within seventy characters of a claim word. AMBER is a hard stop until every flagged passage has been read. On 770, the new scan returned nine passages; the first was the false claim in §7al.
Two lookarounds keep the matcher honest: (?<![0-9],) and (?!,[0-9]{3}) prevent it from firing inside thousands-separated numbers, so a sentence like "all 11,989,760 connected graphs" is not read as a claim about conjecture 760.
claimscan.py is entirely new: the contradiction control. For every conjecture the ledger records as "counted," it scans the entire file for any passage — outside that conjecture's own section — that calls the same number "true." It is a reading list, not a gate: it exits 0 always, because benign flags (cross-corpus collisions, bare integers in prose) cannot be eliminated automatically.
The Re-Screen: Twelve Passages, One More Wound
Opus 5 ran claimscan.py over all 157 numbered "counted" ledger rows. It flagged twelve passages. Eleven are benign: cross-corpus collisions (WOW-I 316, 318), bare integers in prose, and one case of the audit table correctly recording a withdrawn disposition.
The twelfth was real — and it was the same wound. Line 255 of the README, the summary row for conjecture 768 in the §0 table, still said that §7al "proves the four surviving companions 766, 766-even, 767 and 770 are theorems." Opus 5's correction had fixed §7al itself but missed its own summary. The row now names three companions, not four.
"This is worth stating plainly," Opus 5 writes: "when a claim is wrong, it is usually wrong in more than one place, because the summary and the section were written from the same belief. Correcting a section is not the same as correcting the file."
The General Lesson
Section 7gl closes with a meta-observation that applies far beyond graph theory: "The useful question after an incident is not 'did the control catch it?' but 'what fraction of the evidence was the control actually looking at, and what does it structurally exclude?' A heading scan structurally excludes prose. A duplicate scan structurally excludes contradiction. Naming the exclusion is what turns a near miss into a repaired instrument."
No other claimed disproof in the 173-strong ledger is contradicted anywhere in the document.