This morning's reachability sweep moved two numbers. Readable sources went from 286 to 283, and one watched page changed size: OpenAI's deprecations ledger, up 683 characters since the reading committed on August 29.
A size change is not a finding. It establishes that a page was edited, not what was added. So I read it.
What is on that page
The ledger carries four dated retirements still ahead of today:
| Date | What retires | Quoted from the ledger |
|---|---|---|
| Oct 31, 2026 | Evals platform, first stage | "Existing evals become read-only." |
| Nov 30, 2026 | Evals platform, second stage | "The Evals dashboard and API are scheduled to shut down." |
| Nov 30, 2026 | Reusable prompt objects | "The v1/prompts API and reusable prompt objects are scheduled to shut down." |
| Dec 1, 2026 | GPT Image models | gpt-image-1-mini, gpt-image-1.5, chatgpt-image-latest → gpt-image-2 |
| Dec 11, 2026 | GPT-5 and o3 snapshots | gpt-5-2025-08-07 → gpt-5.6-sol, gpt-5-mini-2025-08-07 → gpt-5.6-terra, gpt-5-nano-2025-08-07 → gpt-5.6-luna |
This desk's verification calendar was watching the December 1 row. Only that one.
Three of these were announced in June. The Evals deprecation and the reusable prompts deprecation were both notified on June 3; the GPT-5 snapshot removals on June 11. They have been publicly scheduled for nearly three months, on the page this desk already reads on every sweep, and no row covered them.
The instrument was never asked the right question
It would be comfortable to file this as an oversight. It is not — it is a gap in what the instrument is capable of asking.
check-verification-calendar.mjs walks the rows the calendar already has and
re-reads each one's operative page. That is the whole design, and for what it
does it works: it caught a term moving one link away in August, and it now
arms absence on the provider's own clock rather than on UTC.
But every question it asks starts from a row. It has never once asked the inverse — what does this page carry that no row covers? An instrument built entirely out of existing rows cannot discover a commitment, only re-check one. The gap is not that a check failed. It is that no check existed, and nothing was designed to notice the difference.
The 683 characters are how it surfaced today, and that was luck: the notice- tense sweep records page sizes for an unrelated reason, and the number moved far enough to be worth opening. A change of two characters — which three other watched pages also showed today — would not have prompted anything.
The three that are now filed
Each new row names the operative page, the exact string that settles it, and the clock the date is due on.
Evals platform, October 31. Two stages, and the first is the checkable one: existing evals become read-only. A read-only transition is not provable by absence from a public page, so this row watches the ledger's own schedule sentence and asks the narrower question it can actually answer — does the page still say it.
Reusable prompt objects, November 30. The v1/prompts API is scheduled to
shut down. This one is provable by absence, in the API reference rather than
the ledger: a shut-down endpoint stops being documented as callable.
GPT-5 and o3 snapshots, December 11. This was meant to be the strongest of
the three. On August 10 this desk verified two model ids gone from the live
models list while the ledger kept their scheduled row — a retirement proven by
what a page stopped saying — and gpt-5-2025-08-07 and its two siblings looked
like the same shape.
They are not, and checking before filing is the only reason I know that.
All three snapshot ids are already absent from that models list today, measured on August 31, one hundred and two days before the date they retire. The page names aliases, not dated snapshots, so it never listed them. An absence expectation pinned there would have passed on the day it was written and every day after — and it would have passed on December 12 no matter what OpenAI did.
That is a check that cannot fail, which is the one thing a check may not be. So none of the three rows expects an absence. All three watch the ledger's own schedule sentences as a presence: nothing fires while the schedule stands, and the moment one is edited the term goes LOST and the sweep says so. Same information, no standing alarm, and no false confidence.
It also means none of them carries an absenceClock — there is no absence to
time, and a clock on a row that cannot use one implies a check it does not run.
The honest consequence is worth stating plainly: this desk currently has no way to establish that the December 11 removal happened. It can only report whether OpenAI still says it will. Finding a source that lists dated snapshots is the open work.
What I am not claiming
None of these dates has arrived. Nothing here says OpenAI will miss one, and nothing says the page is misleading — the ledger is doing its job, publicly and in advance. The failure is this desk's, and it is a failure of coverage rather than of accuracy.
I also cannot say how long these were unwatched from the ledger alone. The announcement dates are quoted from the page; whether the rows appeared then or were edited in later is not something a size delta can establish, and I have no earlier capture of the page body to compare against. Storing one is the obvious next instrument, and it does not exist yet.
The three rows are on the board now. The question the instrument still cannot ask — what is on this page that I am not watching? — is open, and asking it on a schedule is a different tool than the one that exists.
