Skip to content

Commit 70b2f69

Browse files
committed
chore(devx): respell the parseSymbolRef placeholder and retire the last held allowance row
The one-line docblock on `scripts/check-adr-0087-registration.mjs#parseSymbolRef` wrote its placeholder path-shaped, so the scripts/** symbol-anchor corpus read the illustration as an anchor into a file this tree does not have. It now uses the angle-bracket grammar `scripts/symbol-anchors.mjs#ANCHOR_GRAMMAR` already teaches. One line, no behaviour change. With the citation gone the last `HELD_FILE_ALLOWANCES` row has done its job and is deleted; the export and its doc stay, and the array is now empty. Four of the self-test's cases are registered per allowance row, so the pinned floor drops 30 to 26 by exactly that mechanism, with the reason written beside the literal. The allowance battery does not go vacuous: its five fixture cases run off the `scripts/bad.mjs` fixture row, not off the live array. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012zGPuVVX3deAx9LdjK8jCk
1 parent 59953d5 commit 70b2f69

2 files changed

Lines changed: 14 additions & 15 deletions

File tree

scripts/check-adr-0087-registration.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2003,7 +2003,7 @@ const IDENT = '[A-Za-z_$][A-Za-z0-9_$]*';
20032003
const MEMBER_PATH_RE = new RegExp(`^${IDENT}(?:\\.${IDENT})*$`);
20042004

20052005
/**
2006-
* `path/to/file.ts#Symbol` or `path/to/file.ts#a.b.member` -> its halves, or null.
2006+
* `<dir>/<file>.ts#<Symbol>` or `<dir>/<file>.ts#<a>.<b>.<member>` -> its halves, or null.
20072007
*
20082008
* ⚠️ The grammar was widened to a dotted member path (#15627), and the widening is
20092009
* only sound because the READER was widened in the same commit. `packages/client/

scripts/check-scripts-symbol-anchors.mjs

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -145,17 +145,12 @@ export const CENSUS_15765 = {
145145
* The only admissible reason is the hot-file serial queue.
146146
*/
147147
export const HELD_FILE_ALLOWANCES = Object.freeze([
148-
Object.freeze({
149-
file: 'scripts/check-adr-0087-registration.mjs',
150-
dated: '2026-09-05',
151-
heldBy: 'PR #15724 (#15627)',
152-
why: 'A one-line docblock on `scripts/check-adr-0087-registration.mjs#parseSymbolRef` writes its '
153-
+ 'placeholder path-shaped, so a resolver reads the illustration as an anchor into a file this '
154-
+ 'tree does not have. The repair is the angle-bracket spelling `<dir>/<file>.ts#<Symbol>` that '
155-
+ '`scripts/symbol-anchors.mjs#ANCHOR_GRAMMAR` already uses, and it is one line — but the file '
156-
+ 'is held by a governed draft awaiting a human merge, and a comment-only edit landing under a '
157-
+ 'reviewed governed PR is exactly the conflict this queue exists to prevent.',
158-
}),
148+
// EMPTY, and empty is the healthy state: every row written so far has been
149+
// retired by repairing the citation it held. The mechanism above is not dead
150+
// code — `triage()` still takes rows, and the self-test still exercises it in
151+
// BOTH directions against its OWN fixture row (`scripts/bad.mjs`), including
152+
// the leg that proves a row is load-bearing rather than decorative. So an
153+
// empty live array leaves that battery running, not vacuous.
159154
]);
160155

161156
export const CORPUS = defineCorpus({
@@ -244,10 +239,14 @@ function assert(cond, msg) { if (!cond) { console.error(`❌ check-scripts-symbo
244239
// exactness loop below runs four `check()`s over each row), so retiring a row
245240
// legitimately lowers this floor by 4 — and that is the ONLY reason it may be
246241
// lowered. 34 → 30 when the `scripts/check-react-page-adapter-contract.mjs`
247-
// row was retired (#15765). Any other drop is cases that STOPPED RUNNING; find what
248-
// stopped registering instead of moving the number.
242+
// row was retired, then 30 → 26 when the `scripts/check-adr-0087-registration.mjs`
243+
// row was retired and the array went EMPTY (#15765). Any other drop is cases that
244+
// STOPPED RUNNING; find what stopped registering instead of moving the number.
245+
// ⚠️ An empty array does NOT make the allowance battery vacuous: its five
246+
// fixture cases run off `scripts/bad.mjs`, never off the live rows, so they are
247+
// not part of this arithmetic and must never fall out of the count.
249248
const SELF_TEST_BATTERIES = Object.freeze({
250-
'check-scripts-symbol-anchors self-test': 30,
249+
'check-scripts-symbol-anchors self-test': 26,
251250
});
252251

253252
// DELETING an entry silences that battery's floor exactly as effectively as

0 commit comments

Comments
 (0)