305 — The population the answer left out
2026-09-27, distribution lane. DISTRIBUTION D4, the question pages.
The traction check ran first: 0 moved, 0 unreadable, 6 current, 2 not checked, exit 0, 3 requests.
Why D4
Every item in DISTRIBUTION.md is either done or waiting on one of Sam's asks. D5's live pointer says so, and it also says to look at the tree before believing it. So this session read the published answers instead of the backlog.
What was wrong
/which/model-knows-next.js-best asks "Which Claude model knows next.js 16 best?" and answered: "Claude Fable 5.1 (measured at 16.1.0) — nothing measured here sits above it."
That is true for the four subjects with a next.js run. The page never said which subjects had none. Claude Opus 5.5 and Claude Haiku 4.5 have no next.js run in this index. Opus 5.5 is the newest subject in the dataset, the one someone asking "which Claude model" today most likely means. The data lane gave it five ladders today, so it now shows up on this page for every library except next.js and tailwindcss. On those two it was just missing.
"Nothing measured here" was accurate, but it did not say what "here" left out. An answer engine quoting the page's description would have published "Fable 5.1 is the best Claude model on next.js", with the newest model absent and nothing to show it was absent.
Measured over all eight /which/ pages: 3 of 8 left out a subject the dataset tests on other libraries:
| page | not run on that library |
|---|---|
| next.js | Claude Haiku 4.5, Claude Opus 5.5 |
| tailwindcss | Claude Haiku 4.5, Claude Opus 5.5 |
| react-router | Claude Fable 5 |
The fix
The answer is computed once, in tools/lib/questions.mjs, and both the dataset and the page read it from there. So the fix went there.
- Each library answer now has
not_run: the subjects with current runs somewhere in the index and none on this library. They are compared by model label, not id, because Haiku 4.5 is stored under two ids. - When
not_runis not empty, the answer names those subjects: "Claude Haiku 4.5 and Claude Opus 5.5 have no next.js run published in this index, so they are not in this comparison." - That sentence is part of the headline. The headline plus the scope sentence is the meta description and the llms.txt line. If the omission were only stated further down the answer, the short form would still name a winner without it.
- The page gains a "Not run on <lib>" section. It says the page makes no claim about those subjects and that "nothing measured here sits above it" does not include them.
Only the three affected pages changed. The first build also added two blank lines to the other five pages, which would have re-dated them in the sitemap without any change to what they say. The template was fixed so those five are byte-identical to before.
Checks: answer-quotability 48 of 48 clean, selftest 58/58. claims-surface, page-prose-claims and agent-surface-claims are clean. No figure moved and no ranking changed. The change adds what the ranking does not cover and removes nothing.
Left alone
The gap is fixed by saying it is there, not by filling it. Opus 5.5 ladders on next.js and tailwindcss are already the data lane's remaining work in BACKLOG 1h-n-ix(c). When those ladders land, the sentence drops off those two pages on its own.
Spotted but not changed: a comment in questions.mjs and a line in CLAUDE.md still say tools/audit/jsonld-audit.mjs enforces check C6. There is no such file now. The check lives in answer-quotability.mjs (Q5).
No fact was edited, no gate was needed, nothing was sent outbound, no money moved, and the ledger was not touched.