You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit c38eead
Browse filesBrowse the repository at this point in the historyBrowse files
fix(check-adr-symbol-anchors): the verdict may not claim a census wider than the vocabulary it read
The green line ended `0 line anchors survive.` -- unqualified, and
measured false while it printed. Nine pointers of the class the #13556
ruling deleted were live in `docs/adr/**` in two spellings this corpus
does not judge: the path-less bare colon continuation (three in one
record, the path in a different table cell from the number) and the `L`
pin, bare in prose and as a markdown link-target fragment (six across
two records). The reading was right; the sentence spoke for the whole
class instead of for what it read.
So the repair is the CLAIM. `summaryLine()` now names the vocabulary it
judged and states that the two path-less spellings are opt-in and off
here. Widening instead was MEASURED and is not taken in this change:
`pathlessLineCitations: true` on this corpus yields 17 findings across 6
records, 2 of them an ADR's dev-server ports -- correct prose whose only
remedy is the maintainer-only exemption marker.
The self-test's new battery holds the claim in three parts, and the
middle one is the light-on-a-literal control: the corpus DECLARES the
narrower vocabulary; the shared grammar really does see the wider one on
the same text when asked (so the caveat is a measurement, not a hedge
over a rule that matches nothing); and the sentence names both halves
and can no longer end in the unqualified form. Flipping the declaration
now forces the verdict to be re-stated in the same edit. Battery floor
17 -> 22.
Claude-Session: https://claude.ai/code/session_01AmH9bKvGoLjiY86Q4Z3og2
Co-authored-by: Claude <noreply@anthropic.com>
+`${counts.continuation} continuation. 0 line anchors survive in the ${JUDGED_LINE_SPELLINGS} `
182
+
+`spellings this corpus judges — ⚠️ NOT a census of the deleted class: ${UNJUDGED_LINE_SPELLINGS}, `
183
+
+'are opt-in and are OFF here (#18899).'
145
184
);
146
185
}
147
186
@@ -177,7 +216,7 @@ function assert(cond, msg) { if (!cond) { console.error(`❌ check-adr-symbol-an
177
216
// not red. A battery BELOW its floor means cases stopped running; the remedy is
178
217
// to find what stopped registering.
179
218
constSELF_TEST_BATTERIES=Object.freeze({
180
-
'check-adr-symbol-anchors self-test': 17,
219
+
'check-adr-symbol-anchors self-test': 22,
181
220
});
182
221
183
222
// DELETING an entry silences that battery's floor exactly as effectively as
@@ -300,6 +339,37 @@ export function selfTest() {
300
339
check(CENSUS_13556.rotRateIsLowerBound===true,'the 72.1% figure is a LOWER bound and must be declared as one');
301
340
check(CENSUS_13556.totalSurface===CENSUS_13556.distinctLineAnchors+CENSUS_13556.continuationAnchors,'the declared surface must be the sum of its parts');
302
341
342
+
// 6. ⭐ The verdict's CLAIM, held against the vocabulary it actually read
343
+
// (#18899). The three cases are one argument in three parts, and none of
344
+
// them is worth anything without the other two:
345
+
//
346
+
// (a) the narrower vocabulary is this corpus's DECLARATION, not an
347
+
// accident of the grammar -- so the caveat names a choice;
348
+
// (b) the shared grammar really does see the wider vocabulary when it
349
+
// is asked to, on the SAME text -- so (a) is a measurement and the
350
+
// caveat is not a hedge against a rule that matches nothing;
351
+
// (c) the printed sentence names both halves, and ⛔ no longer ends in
352
+
// the unqualified census claim that was measured false.
353
+
//
354
+
// ⚠️ (b) is the light-on-a-literal control, and it is the case that makes
355
+
// this battery worth running: without it, (a) and (c) would both hold just
356
+
// as well on a day when `pathlessLineCitations` had stopped matching
357
+
// anything at all, and the caveat would be documenting a dead rule.
358
+
constpathlessProbe='The mirror of :626 and the pin L198 both continue a filename named earlier.';
'the verdict must name BOTH the vocabulary it judged and the one it did not');
370
+
check(!/lineanchorssurvive\.\s*$/.test(verdict),
371
+
'the verdict must not end in the unqualified claim `0 line anchors survive.` — that sentence printed green while nine pointers of the deleted class were live');
372
+
303
373
// ── The floor: every declared battery RAN, and ran its cases (#13489) ────
304
374
//
305
375
// Evaluated after every battery has had its chance and BEFORE the verdict, so
0 commit comments