Skip to content

[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

@baozhoutao

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 filedeclined 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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions