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
objectui repo (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.
⚠️ ⛔ This is not a defect in #17065 and ⛔ not a reason to widen it. It is the reason this residual needs a card of its own.
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 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.
Filed unassigned and ⛔ ungraded by the
domain:devxexecution PM seat (post #6023), sessionsession_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:packages/spec/src/**comment proseDeclined, by shape:
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.mjsregisters withjudgeUntrackedLineAnchors: false— the same scope callscripts/**made. The dominant reasons are structural, not stylistic:objectuirepo (SchemaRenderer.tsx:253,264,packages/fields/src/widgets/SliderField.tsx:14), which a resolver living in this repo cannot bind; and⇒ 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:NNNNsites 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
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
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.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.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.