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
census(spec): how many bare-path citations in packages/spec/src/** docblocks name a file that exists NOWHERE in the tree — the 2,635-span axis the gate pins and deliberately declines #17591
Filed by the 分诊 seat while grading #17578, which is this card's one confirmed member. ⛔ Unassigned; this is the census, ⛔ not a gate and ⛔ not a cleanup.
The question
packages/spec/src/** comment prose cites in-repo files as bare path code spans — a filename or package-relative path with no line number (component-props-union-arm.test.ts, contracts/realtime-service.ts). Those spans are deliberately unjudged by the existing gate.
How many of them name a file that exists nowhere in the tree?
⚠️ That number is currently unknown, and it is the number that decides whether anything further is worth building.
Why it is not already answered
scripts/check-spec-docblock-symbol-anchors.mjs measures and pins the axis, then declines it on purpose (measured on origin/main @ abc4b83ce8b01d4e5af3560a0547421f6f5ca98f, 2026-09-11T00:5xZ):
barePathSpans: 2635
barePathsTrackedAtRepoRoot: 346
:87 "judging every bare path code span here produces **2,290** findings"
⇒ registered with `checkBarePaths: false`
⭐ The scope call is correct and this card does not reopen it. A gate red with 2,290 findings on day one is a migration, not a gate — the permanently-red-verifier shape this repo has retired before.
⚠️ But 2,290 is "unbindable", ⛔ not "wrong". The overwhelming majority are abbreviations of real files: a human or agent who searches finds them. The subset that matters is the one where searching finds nothing — a reader burns the search and ends with no answer, or trusts the sentence and never checks.
⇒ unbindable ≠ dead. The dead subset has never been counted.
Scope — one number, then stop
For every bare path code span in packages/spec/src/** comment prose, ask the cheap question the existing gate does not: does a file with that basename exist anywhere in git ls-tree -r --name-only origin/main? ⚠️ A path listing, ⛔ not a content grep — #17578 is the worked example of why: git grep -F returns 1 hit for the dead name and that hit is the claim itself, so a content grep reports the reference as live.
Report three numbers: spans examined, basename-resolvable, basename-resolves-nowhere. Pin the arithmetic (resolvable + dead == examined) in a self-test, the way judged + declined == comment-prose population is already pinned.
List the dead ones with their sites.
⛔ Stop there. Whether this earns a gate, a ratchet, or a one-off cleanup depends entirely on number 3 — 「失效修法按序取」, and a check is the last rung, not the first.
⛔ Explicitly out of scope: fixing the dead references, changing checkBarePaths, touching judgeUntrackedLineAnchors, and any packages/spec source edit at all. This card produces a measurement.
The seed, and its shape
#17578 (closed not_planned — three classes out as a standalone prose defect, and reopening is free if this census says otherwise): packages/spec/src/ui/component.zod.ts:1179 says
`component-props-union-arm.test.ts` pins it from this side.
⇒ one confirmed dead bare-path reference, in a published file (@objectstack/spec's files[] admits src/**/*.zod.ts), pointing at a guard that does not exist.
Dedupe
Run against the 582-issue open objectstack board, 2026-09-11T00:5xZ.
⛔ No claim that checkBarePaths: false is wrong. It is right, and stays right whatever this measures.
⛔ No claim about other packages. packages/spec/src/** only, because that is where the pins and the published-file exposure both are.
Refs: #17578 (seed, closed) · #17242 (the other axis) · scripts/check-spec-docblock-symbol-anchors.mjs (the pins this reads) · PR #17576 (open — carries the replacement target union-author-message-pins.test.ts, which does not exist on main yet)
Filed by the 分诊 seat while grading #17578, which is this card's one confirmed member. ⛔ Unassigned; this is the census, ⛔ not a gate and ⛔ not a cleanup.
The question
packages/spec/src/**comment prose cites in-repo files as bare path code spans — a filename or package-relative path with no line number (component-props-union-arm.test.ts,contracts/realtime-service.ts). Those spans are deliberately unjudged by the existing gate.How many of them name a file that exists nowhere in the tree?
Why it is not already answered
scripts/check-spec-docblock-symbol-anchors.mjsmeasures and pins the axis, then declines it on purpose (measured onorigin/main@abc4b83ce8b01d4e5af3560a0547421f6f5ca98f, 2026-09-11T00:5xZ):⭐ The scope call is correct and this card does not reopen it. A gate red with 2,290 findings on day one is a migration, not a gate — the permanently-red-verifier shape this repo has retired before.
⇒ unbindable ≠ dead. The dead subset has never been counted.
Scope — one number, then stop
packages/spec/src/**comment prose, ask the cheap question the existing gate does not: does a file with that basename exist anywhere ingit ls-tree -r --name-only origin/main?#17578is the worked example of why:git grep -Freturns 1 hit for the dead name and that hit is the claim itself, so a content grep reports the reference as live.resolvable + dead == examined) in a self-test, the wayjudged + declined == comment-prose populationis already pinned.⛔ Explicitly out of scope: fixing the dead references, changing
checkBarePaths, touchingjudgeUntrackedLineAnchors, and anypackages/specsource edit at all. This card produces a measurement.The seed, and its shape
#17578 (closed
not_planned— three classes out as a standalone prose defect, and reopening is free if this census says otherwise):packages/spec/src/ui/component.zod.ts:1179says⇒ one confirmed dead bare-path reference, in a published file (
@objectstack/spec'sfiles[]admitssrc/**/*.zod.ts), pointing at a guard that does not exist.Dedupe
Run against the 582-issue open
objectstackboard, 2026-09-11T00:5xZ.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 — "183packages/spec/src/**citations name no tracked file". ⛔ Not a duplicate, and the distinction is the whole point: [finding] 183packages/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 is the residual of the line-citation axis (file.ts:NNN, 183 of 189 declined byjudgeUntrackedLineAnchors: false). This card is the bare-path axis (no line number, 2,635 spans,checkBarePaths: false) — a different population, a different instrument, a different scope call. A pointer comment is going onto [finding] 183packages/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 so the two axes are visible from either side.scripts/**gate headers name no tracked file, so the new symbol-anchor corpus declines them by name #15809 / [finding] threeobjectql/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 / gate:packages/spec/src/**docblocks are not a registered symbol-anchor corpus — the resolver exists and three hand-repairs have already been paid for by hand #17065 — the line-citation lineage, same family, all on that other axis.docblockreturns 78 open cards on this board,ADR-0112returns 18 ⇒ the scan discriminates and the near-misses above are readings.What this card does NOT claim
component.zod.ts:1179tells the reader thatcomponent-props-union-arm.test.ts"pins it from this side" — that file does not exist anywhere in the tree, and the docblock is published #17578 was the whole population" and that is a good outcome, cheaply bought.checkBarePaths: falseis wrong. It is right, and stays right whatever this measures.packages/spec/src/**only, because that is where the pins and the published-file exposure both are.Refs: #17578 (seed, closed) · #17242 (the other axis) ·
scripts/check-spec-docblock-symbol-anchors.mjs(the pins this reads) · PR #17576 (open — carries the replacement targetunion-author-message-pins.test.ts, which does not exist on main yet)Generated by Claude Code