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
chore(devx): migrate the scripts/** line citations that name no tracked file to file-level anchors (#15809) (#16301)
* feat(devx): the scripts/** corpus enumerates the citations it declines, not just their count
`judgeUntrackedLineAnchors: false` waives a citation that names no tracked
file, and until now the only trace was a number on the green line. A number
says a residual exists without saying where: it cannot be worked down, and a
residual that MOVED reads exactly like one that shrank.
`sweepCorpus` now returns `declined` beside `findings` and `counts` — one row
per waived citation, carrying the file, the line, the citation text and a
shape (`bare-filename` / `directory-qualified` / `continuation` / `tilde`).
`declinedShape` classifies by how the citation was WRITTEN, never by the path
it borrowed: a continuation and a tilde form inherit whatever path preceded
them on the line, so classifying by path first would file them under a file
their author never wrote.
`check-scripts-symbol-anchors.mjs --list-unresolvable` prints those rows and a
tally by shape. It is a listing, never a verdict — it exits 0 whatever it
prints, exactly as `--list` does, and `runCheck()` remains the only failing
arm.
Pinned: three cases hold the enumeration equal to the counter, to the
file/line/text a residual list needs, and to the shape classification
(floor 26 → 29); four more hold each arm of `declinedShape` (floor 63 → 67).
Part of #15809.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vbw3RPgdtqesx4azk9SbW8
* chore(devx): migrate the scripts/** line citations in the four heaviest carriers
`check-durability-degradation-log-level` (23), `symbol-anchors` (15),
`doc-line-anchors` (11) and `pr-labels` (8) carried more than half the
citations that name no tracked file, and each shape gets the repair its own
kind admits:
- DATED CENSUS ROWS name the file as a file-level anchor and keep the number
beside it as data, losing no digit — the `#15806` method. The durability
gate's two seam tables gain a `try line` column of their own, and `objectql
engine.ts` / `metadata-protocol protocol.ts` become the full tracked paths
the gate's own output actually prints. One of them binds tighter still:
`packages/objectql/src/engine.ts#cascadeDeleteRelations` is now a resolved
symbol anchor.
- ILLUSTRATIONS take the angle-bracket placeholder spelling `ANCHOR_GRAMMAR`
already uses. `symbol-anchors.mjs` and `doc-line-anchors.mjs` are the two
files that DEFINE what a line citation looks like, so every example in them
was a citation of its own; they now exhibit the shape without writing one,
and say why in a ⚠️ line so a later author does not "fix" it back.
- THIRD-PARTY SOURCES (`codelytv/pr-size-labeler`, `actions/labeler`) name the
repo, the file and the pinned line as prose. No in-repo resolver could ever
check them, and a pinned upstream line is provenance rather than a pointer.
⛔ No number is repaired or repointed anywhere in this commit: every digit that
was in an anchor is still on the page, as data.
Corpus reading: 96 → 39 unresolvable citations.
Part of #15809.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vbw3RPgdtqesx4azk9SbW8
* chore(devx): migrate the remaining free line citations and record the residual
The rest of the population #15809 measured, one repair per shape:
- TRACKED TARGETS the surrounding prose already names become file-level
anchors, and where the prose names the symbol too they become symbol anchors
the gate now resolves — `packages/objectql/src/plugin.ts#runGovernanceInventory`,
`packages/plugins/plugin-audit/src/audit-writers.ts#resolveWriteLocale`,
`scripts/check-system-context-census.mjs#UNENFORCED_TEXT_COUNTS`. A bare
`engine.ts` was never ambiguous where the prose said which package.
- THIRD-PARTY AND DEPENDENCY SOURCES (`@oclif/core`, `@changesets/pre`) name
the package, the file and the pinned line as prose. Nothing in this tree can
resolve them, and a pinned upstream line is provenance, not a pointer.
- ILLUSTRATIONS take the angle-bracket placeholder spelling.
⛔ Again, no number is repaired or repointed: every digit is still on its page.
The residual is 15 citations across six files, and every one of them is a file
another lane holds OPEN — three by PR #16215, one by PR #16202, three by the
in-flight #15776, one by #12511. NOT ONE is a genuinely ambiguous abbreviation.
⚠️ `judgeUntrackedLineAnchors` therefore stays `false`. The fence this work was
dispatched under flips it only when the residual is ZERO and a self-test pins
the flip; flipping it over 15 citations in files this PR may not touch would
make the gate permanently red for the length of somebody else's pull request —
the exact shape the card argued against. `--list-unresolvable` now prints that
residual, so the next author inherits a worklist rather than a count.
Part of #15809.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vbw3RPgdtqesx4azk9SbW8
* docs(devx): the corpus header states its residual as a dated reading
`--list-unresolvable` is the live instrument; a count written in prose is a
dated record, and this file is the one arguing that a number in prose outlives
the measurement it quoted.
Part of #15809.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vbw3RPgdtqesx4azk9SbW8
---------
Co-authored-by: Claude <noreply@anthropic.com>
0 commit comments