Skip to content

Commit 2139d4f

Browse files
committed
fix(scripts): the ratchet banner's own history clause was false — replace it with the mechanism
The repair's replacement prose asserted that the removed sentence "was false in one half the day it was written". Re-measured with the shared CLOSING_TRIGGER over each named file as of each merge commit, reading the blobs rather than the pull-request titles: ff29450 (the commit that wrote the sentence) check-action-forward-parity.mjs 2 hits, both emitted messages check-type-check-coverage.mjs 3 hits, two emitters plus one noun 2414e37 check-action-forward-parity.mjs -> 0 first half goes false fb7dfed check-type-check-coverage.mjs -> 1 second half goes false Both halves were TRUE the day the sentence was written. The clause was a dated reading with its date left implicit, asserted in the one place nothing re-reads it, and it was wrong on its first day — which is the argument this change is built on, arriving by being committed rather than by being made. The banner now states the mechanism and stops there: such a sentence does not stay true, it only waits, and what stood here is on the card. The corrected reading moves to the pin's header, where a person deciding how to word the banner will be looking, with the miss recorded beside it. The changeset carried the same false clause and is corrected with it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015h79niBMyoB1xcaQje3uiz
1 parent 37480e1 commit 2139d4f

3 files changed

Lines changed: 20 additions & 7 deletions

File tree

‎.changeset/9906-lint-coverage-banner-cross-file-claim.md‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@
44
`scripts/check-lint-coverage.mjs`'s rule-2 ratchet banner no longer asserts, in
55
the present tense, which other gates carry the closing-keyword shape
66
(objectui#9906). It named two sibling gates and said the shape "still stands" in
7-
both; one half was false when the sentence was written and the other went false
8-
when the sibling was repaired. The trade-off the banner exists to explain —
7+
both; both halves were true when the sentence was written and both had gone
8+
false before anyone read it again, each falsified by a different pull request
9+
and neither by the one that wrote the sentence. The trade-off the banner exists to explain —
910
spell the anchor `objectui#` rather than a bare `#`, so a quoted message cannot
1011
match GitHub's closing grammar — is unchanged, and the scope record of the
1112
repair that wrote it survives as history rather than as a reading of the tree.

‎scripts/__tests__/check-lint-coverage-closing-keyword.test.ts‎

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -131,9 +131,21 @@ function renderStaleEntry(rewrite: (source: string) => string = (source) => sour
131131
* about a different gate's source is a reading of a population that moves
132132
* without this file and re-derives never. objectui#9906 is that shape landed:
133133
* the banner said the closing-keyword spelling "still stands" in two named
134-
* sibling gates, one half was already false when it was written, and the other
135-
* went false two days later when the sibling was repaired. Nothing could have
136-
* noticed, because nothing read the sentence.
134+
* sibling gates. Measured with the `CLOSING_TRIGGER` below, over each named
135+
* file as of each merge commit rather than inferred from pull-request titles:
136+
* both halves were TRUE the day the sentence was written, and it went stale in
137+
* two steps — the first about 35 hours later, the second the same day after
138+
* that — each step a different pull request and ⛔ neither of them the one that
139+
* wrote the sentence. Nothing could have noticed, because nothing read it.
140+
*
141+
* ⚠️ That last reading is itself dated, and it lives HERE and on the card
142+
* rather than in the banner, on purpose. This file is what a person opens when
143+
* they are deciding how to word that banner, and the card carries the commits
144+
* the reading was taken at. A first draft of the repair put a version of it in
145+
* the banner instead — and got it backwards, claiming a half was already false
146+
* on the day of writing. ⭐ A dated reading asserted where nothing re-reads it
147+
* was wrong within one review round, which is the argument for this whole rule
148+
* arriving by being committed rather than by being made.
137149
*
138150
* ⛔ This is NOT a check that any such claim is TRUE — no tree is scanned here
139151
* and none may be (the 2026-09-18 ruling closed the door on a new gate for

‎scripts/check-lint-coverage.mjs‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,8 +120,8 @@ for (const pkg of packages) {
120120
// re-answer that here, and ⛔ do not name which other gates carry the shape
121121
// today: a sentence in this banner about another gate's source is a reading
122122
// taken once, by someone who is not looking at that file, and re-derived
123-
// never. The one that stood here was false in one half the day it was written
124-
// (objectui#9906). Pinned by
123+
// never. Such a sentence does not stay true; it only waits. The one that stood
124+
// here, and how it went stale, are on objectui#9906. Pinned by
125125
// scripts/__tests__/check-lint-coverage-closing-keyword.test.ts, which reads
126126
// this module's text rather than trusting this comment — this paragraph
127127
// included, for the naming of any other gate.

0 commit comments

Comments
 (0)