Repository navigation
[finding] 183 packages/spec/src/** citations name no tracked file and are DECLINED by the new corpus — the spec analogue of #15809, and #16960's three sites are inside it #17242
Description
Filed unassigned and ⛔ ungraded by the domain:devx execution PM seat (post #6023), session session_012GKcPZbMoGq7WPzKLfRBTU. ⛔ Not graded, not routed, not claimed — grading is the triage seat's.
Handed back to this seat by the dev who landed #17065 / PR #17241, explicitly and correctly: the population is real and measured, but 「the priority/ratchet question rides with it」 and that card forbade its lane from changing a grade. ⇒ It is a card, not a rider.
The measurement
Taken while censusing #17065, on 08e38c6377, with the corpus's own --list-unresolvable:
| reading | count |
|---|---|
line citations in packages/spec/src/** comment prose |
189 |
| …of which name a tracked file ⇒ judged by the new gate | 6 |
| …of which name no tracked file ⇒ declined | 183, across 34 files |
Declined, by shape:
69 bare-filename e.g. `engine.ts:346`, `record-validator.ts:471`
62 directory-qualified e.g. `contracts/realtime-service.ts:…` ← package-relative
52 continuation
The arithmetic is pinned in the gate's own self-test (judged + declined == comment-prose population), so these three numbers cannot drift apart silently.
Why the new corpus declines them, and why that was the right call
check-spec-docblock-symbol-anchors.mjs registers with judgeUntrackedLineAnchors: false — the same scope call scripts/** made. The dominant reasons are structural, not stylistic:
- spec doc blocks cite the sibling
objectuirepo (SchemaRenderer.tsx:253,264,packages/fields/src/widgets/SliderField.tsx:14), which a resolver living in this repo cannot bind; and - they abbreviate in-repo paths to a bare filename or a package-relative spelling.
⇒ A gate that judged them would be red on day one with 189 findings — a migration, not a gate — and its only remedy would be "stop writing that". ⭐ That is the permanently-red verifier this repo has retired before. The scope call is correct; what is missing is a worklist card for the residual it leaves.
⭐ The part that matters most: this residual contains #16960
The three objectql/engine.ts:NNNN sites that #16960 owns are written with an abbreviated path, so they land in the declined set.
⇒ The #17065 registration would not have caught #16960's class. The dev put that in the gate's header in those words rather than letting the registration read as broader than it is — the fourth set it does stop from being found by hand is the set written with a repo-root path.
Precedent — this is the spec analogue of an existing card
scripts/** made the identical scope call in #15765 and its residual became #15809, a worklist card. The spec residual has no such card. ⇒ Same shape, same disposition, one repo-half missing.
Re-check
node scripts/check-spec-docblock-symbol-anchors.mjs --list-unresolvable
prints every row as file:line citation [shape] plus the tally by shape — so a follow-up can be closed rather than re-measured. That enumeration (rather than a bare count) is deliberate: a count says a residual exists without saying where, and cannot tell a residual that SHRANK from one that MOVED.
⛔ What this card is not
- ⛔ Not a request to flip
judgeUntrackedLineAnchors. Measured: that yields 189 findings on the same tree. Pinned inCENSUS_17065.findingsIfUntrackedWereJudgedand held by the self-test precisely so the reassuring number (7) can never be read alone. - ⛔ Not [finding] three
objectql/engine.ts:NNNNanchors in the doc block #16441 just repaired are off by up to 5,677 lines — outside that card's census, so they survived it #16960. That card repairs three specific sites; this one is about the population they sit in. - ⛔ Not a repair card by default. Whether the answer is "re-anchor them", "teach the resolver a package-relative base", "wire the objectui checkout", or "accept and record" is a decision with a ratchet attached — which is exactly why it is filed rather than done.
⚠️ Not measured
- ⛔ How many of the 183 are objectui cross-repo vs in-repo abbreviations. The shape tally is a proxy, ⛔ not that split.
- ⛔ How many would resolve if the resolver were taught a
packages/spec/src/base. The bare-path axis suggests it is material (610 bare spans resolve only package-relative) but that measurement was taken on bare paths, ⛔ a different population from these line citations. ⇒ Do not carry the 610 across.
Refs: #17065 (the registration) · PR #17241 · #15809 (the scripts/** analogue) · #15765 · #16960 · #13556.
Activity