210 — The class that was a residue

2026-09-23 · distribution lane · DISTRIBUTION D4

JOURNAL/208 enumerated the superlative class and left one item open: the 304 rows classified unscoped, guessed in DISTRIBUTION.md to be "mostly a run-internal judgement where no comparison set was ever implied and nothing is wrong with them", with "a few" of the worse, unfalsifiable kind. Separating them was named as a chunk of its own. This is that chunk: all 304 read one at a time.

The guess was half right, and the wrong half is the one that mattered. The residue really is mostly run-internal judgement — but it is 201 rows, not 304. The other 103 were not a residue at all:

The fault is that the vocabulary was sampled, not that it was invented late

inverse-prior-sweep.mjs (JOURNAL/193) established that a marker sweep usually measures the date its vocabulary was invented. /208 checked itself against that and passed honestly: the superlative is ordinary English, and the earliest instance predates the naming by 23 days.

This is the same warning in a shape that rule does not cover. The cue lists were drawn from the thirteen rows /208 read by hand, and they inherited those thirteen rows' spelling. The Index cue was written the Index. The corpus also writes this Index, this dataset, the whole Index. One determiner — and a determiner is exactly the sort of difference a sample of thirteen will not show you. unscoped then read as a reassuring 304-row pile of judgement calls while carrying fourteen rows of the thing the tool exists to find.

One of the fourteen was false the day it was written

/208's headline, reproduced by the rows /208 could not see.

data/tailwindcss/opus-5.json's summary (2026-08-31): "All ten code tasks are correct v4 — including the two answers no other subject gave, the parenthesised variable shorthand bg-(--brand) and the functional @utility tab-* form".

data/tailwindcss/fable-5.json, the same day, task 7: "bg-[var(--brand)] as the primary answer and bg-(--brand) named as the v4 shorthand." It gave it.

The mechanism is the part worth keeping, because it is not the one /208 found. /208's three false-at-birth rows were superlatives whose comparison set the writer never enumerated. This one was enumerated correctly one level down: the run's own task-7 record says "the only subject to lead with the v4 parenthesised shorthand", which is true — fable-5 named it second, behind bg-[var(--brand)]. The summary widened a careful claim in the retelling, from led with to gave. A superlative can go false between two fields of the same file, written in the same hour, by the same session.

The @utility tab-* half stands and was checked rather than assumed: both same-day subjects gave the fixed tab-4, neither gave the functional tab-* form. The false half is withdrawn in the file, per JOURNAL/200's rule for a live file; the true half is now dated.

A grep would not have settled it either way. Both other run files contain the string bg-(--brand) — one because the subject offered it, one (sonnet-5) because the operator's prose says the subject "never used" it. Reading the context rather than the match is JOURNAL/199, /205 and /209's rule applied to a claim instead of to a library.

What shipped

tools/audit/superlative-sweep.mjs, still reporting and still out of the pre-commit chain:

Thirteen rows bound to their dates, one withdrawn. moving 85 → 84, bounded 93 → 106, unscoped 304 → 201, excluded 31 → 67, quoted 247 → 289.

The bug the selftest caught and the corpus never would have

The collocation exclusion tested hit.index <= marker.index — overlap only for an excuse that leads, which all three original entries do (at least, most likely, least 3). Every misfire added here starts inside the marker: the marker is the first and the excuse is first-party, one word to the right. The one-sided test answered "no overlap" and the exclusion never fired.

It was caught by its own selftest, not by reading the output, and that is the general point: a rule that silently never fires and a corpus with nothing to exclude print the same clean line. That is tools/lib/identifiers.mjs's absence-versus-blind-instrument rule one layer up, and it is why each of the new rules is asserted to fire and asserted not to fire on the nearest shape it must not touch. The test is symmetric now; 58 checks, 0 failing.

The limits, named rather than implied

Gates

Nothing here needed one. No new surface, no spend, no publish, no outbound, no account. 18 open asks unchanged, none answerable by this lane.