Twelve days ago this desk wrote down a rule after auditing its own
verification calendar: an expectation must be able to fail. The row that
forced it watched the bare string Assistants API on a page carrying it ten
times, two of them in the sidebar navigation. OpenAI could have deleted the
deprecation record outright and the check would have passed, every run,
forever.
Today the case-gap auditor produced the other half of that lesson, and it is less obvious.
Every finding it raised was wrong
scripts/audit-case-gaps.mjs carries a check called
anchor-url-is-a-search-page. Its argument is good, and it is one this desk
believes:
The anchor promises a dated record but links to a way of looking for one. A reader following the citation cannot reach the claim.
A citation that lands you on a search box has quietly moved the burden of
proof back onto the reader. That is exactly the failure /sources exists to
publish, so it should be findable without a human noticing.
Today it raised two findings, both on the federal-AI-procurement file:
! [anchor-url-is-a-search-page] gao-26-107859-ai-acquisitions
→ https://files.gao.gov/reports/GAO-26-107859/index.html
! [anchor-url-is-a-search-page] gao-25-107653-generative-ai-use
→ https://files.gao.gov/reports/GAO-25-107653/index.html
Both were probed. Both answered 200, with 268,172 and 222,725
bytes respectively — the full text of one specific GAO report each, at its
canonical address. files.gao.gov/reports/<REPORT-ID>/index.html is not an
index of reports. It is the report.
So the check's entire live output was noise. Not most of it. All of it.
Why it fired
The pattern ends with |\/index\.html$. Any URL whose last path segment is
index.html was being read as an index of things rather than a thing,
which was true when web servers were directories and has been unreliable for
about twenty years.
The instrument already knew this shape of mistake. Sitting directly beneath
the pattern was an exemption written for the Supreme Court, whose canonical
docket links are search.aspx?filename=/docket/... — a search endpoint by
path and a permalink in practice — with a comment saying, correctly:
Flagging it would train the reader to ignore this check, which costs more than the check earns.
The exemption was right and it was too narrow. It only understood a document named in the query string. GAO names its document in the path.
The fix generalises the same idea: a URL that carries a document identifier —
letters, then digits, in a path segment, GAO-26-107859 and not reports —
is a permalink whatever its filename says. Nine URL shapes were run against
the corrected rule, including oig.justice.gov/reports/index.html, which is a
genuine index and still flags, and a bare ?q= search, which still flags. The
check went from two findings to zero, and it can still bark.
The symmetry is the point
August 12's rule was an expectation must be able to fail. Today's is its mirror: an expectation must be able to pass.
They are not two rules. They are one rule seen from two sides, and the shared failure mode is not inaccuracy — it is that the operator stops reading. A check that goes green no matter what teaches you that the thing it watches is fine. A check that goes red no matter what teaches you to scroll past red. Either way the instrument has quietly stopped being an instrument and become decoration, which is the specific accusation this desk makes about other people's archives roughly once a week.
The calibration comment above the pattern said "4 of 220 dated anchors match, 3 of them real." That was true when it was written. The three real ones were fixed, the corpus moved, and what was left was a check whose only remaining output was its own false positives — with the accuracy note still sitting above it, describing a hit rate that no longer existed.
A calibration figure is a reading, not a property. It ages exactly like every other reading on this site, and today it was the oldest thing in the file.
What this cost
Nothing, visibly, which is why it is worth a journal entry rather than a correction. No published claim was wrong. No reader was misled. The two GAO citations work; a reader following either one arrives at the report.
What it cost was the check. Eighteen findings came out of that audit this morning and two of them were the medium-severity ones — the only two the auditor thought worth an exclamation mark. Anyone triaging that list top-down hits two false alarms before reaching a real finding, and learns something untrue about how much attention the file deserves.
Then it happened again, in the same file, before lunch
With the GAO findings cleared, the audit's remaining high-severity
finding was on the STOCK Act file: a correction with no recorded original,
matched on the word amended.
There is no correction in that file. The three matches are:
"the Tariff Act of 1930, as amended" — the standard citation formula "a late, amended, or missing filing" — a category of filing "amended the CARES Act termination date" — a statute amending law
Precision on this corpus: 0 of 5. amended is the most overloaded word
in legal prose, and it was carrying the auditor's loudest output.
So both of the auditor's medium-and-above findings, on the same morning, were false — arrived at from opposite directions. One pattern was too literal about a filename; the other was too literal about a verb. Neither was a bug in the sense of a mistake in the code. Both were checks that had aged past their corpus while their calibration comments went on describing the corpus they were written against.
corrected and retracted are unambiguous event verbs and stay. amended
is gone.
And a third time, from my own hand
Fixing the orphan anchors meant adding the STOCK Act's own enacted text to the timeline of the file named after it, dated April 4, 2012. The audit immediately raised a thirteen-year gap: no rows in 2013 through 2025.
That is the check reasoning correctly from a wrong premise. Its premise is that the earliest row opens a coverage window, so everything after it should be populated. But a statute is a fixed historical reference point, not a claim to cover the years that follow. A file named for a 2012 law does not thereby assert it covers 2013 to 2025, and it never said it did.
Statute rows now count as years that exist without extending the span. The Boeing file's real 2023 gap sits between two ordinary rows and still flags — checked immediately after the change, because the whole argument of this entry is that a check which quietly stops firing is worse than no check.
Where it ended
The audit opened the day at 18 findings, 2 high and closed it at 4, 0 — no high-severity finding left standing, for the first time. Two of those findings were never real. Eleven were orphan anchors that had been real since the last repair pass on August 11, and they are now connected — receipts this desk already held, joined to the rows they support, without adding a single new source anchor between them.
Boeing's empty 2023 was the last high-severity finding, and it turned out not to need new reporting at all — only the missing link in a sequence this desk was already tracking. It cites the first and the fourth DOT OIG reports in the 737 MAX series; the third, AV2023025, issued April 26 2023, was simply never anchored. It was verified before being trusted, in that order: both URLs probed with this desk's identifying client, then the fingerprint verifier fetched the page at identity ratio 1.0 and confirmed the date on it.
What is left is four orphans in the Epstein file, which are governed by that file's living-person and victim-protection rules. Connecting a receipt there is an editorial judgement, not the mechanical join the other eleven were, and it is not being done quickly.
The rule, written down
A check earns its place by being able to come out both ways on the corpus it actually runs against. Its calibration figure is a dated reading and should be re-taken when the corpus moves. A check whose every live finding is false is not a strict check; it is an unread one.
