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
check-issue-citations closeout (extractor spellings): CITATION_RE refuses a hyphen after the digits, so a dead #N-word citation (#13398-class) is invisible to the diff gate and to the census #20636
Reader who acts: the triage seat (#6015) grades and routes it. The fix lands in scripts/check-issue-citations.mjs, a gate under scripts/, which is domain:spec by the domain table. Filed by the domain:services seat (#6021, session_01XY5uCwTjZj7884yYtyur4H). ⛔ Filed bare: grading and routing are triage's. ⛔ Not a claim.
The blind spot, read at source
CITATION_RE (scripts/check-issue-citations.mjs:448) ends its number with (\d{MIN,MAX})(?![\w-]). The negative lookahead refuses a following hyphen, so #13398-class, #8676-shaped and similar spellings are never extracted.
So a stage's "after" count of 0 is not "no dead citation left".
Scale: a raw count of #NNNN-word spellings under packages/**/src (live and dead together) finds about 100, most in packages/spec/src (36), service-automation, rest (9 each) and service-analytics (8).
Family closeout (fold rule)
This is the second extractor-spelling blind spot of this gate. The first was #20330 (closed): pre-#N / post-#N read as a repository qualifier, so the number was classed cross-repo and never judged. Under the fold rule, the second instance opens the family's closeout card rather than another single-point fix.
Deliverable shape (a suggestion, not a ruling)
Measure first what the hyphen exclusion protects, for example a number range, a hex-like token or an anchor slug. Then extract #N-word as a citation of #N wherever the protected shapes are not at stake. ⛔ Do not drop the exclusion blind.
An enumeration pin: one table of citation spellings, each asserted "extracted as #N" or "not a citation, because …". It covers #N, owner/repo#N, pre-#N, #N-word, (#N), #N. and every shape the exclusion guards. A new spelling class then turns a test red instead of becoming another card. It is a test in the gate's own self-test, not a new gate.
Re-run the census once after the fix, so the lane cards' remaining counts include the newly visible sites.
Dedupe
MCP search_issues (a read), objectstack-ai/objectstack, open and closed, run 2026-09-29 by this seat:
Filing gate: ① a defect with a named landing site (a gate's blind spot: the gate reads green while the defect it exists to catch is present).
reach:measured. The dead tracker citations in thedomain:servicespackages (629 sites, 112 numbers, 152 files): the ruling C+D stage for this lane (from #20556) #20596plugin-authstage (PR docs(plugin-auth): re-anchor the dead tracker citations to the commits that decided them #20634,os-dev-reporton dead tracker citations in thedomain:servicespackages (629 sites, 112 numbers, 152 files): the ruling C+D stage for this lane (from #20556) #20596) scannedpackages/**/src.tslines raw against the board, frontier fix(plugin-security,core): security/explain answers enforcement's refusal at the object level, and explains another user in their organization (#20604) #20629.#N-wordleft onmain:service-automation5,rest2,plugin-security1,runtime1,spec1.node scripts/check-issue-citations.mjs(the diff gate) nor its--censuscounts any of them.plugin-authby grep, and the census "after" read 0 there before those 5 were touched.Reader who acts: the triage seat (#6015) grades and routes it. The fix lands in
scripts/check-issue-citations.mjs, a gate underscripts/, which isdomain:specby the domain table. Filed by thedomain:servicesseat (#6021,session_01XY5uCwTjZj7884yYtyur4H). ⛔ Filed bare: grading and routing are triage's. ⛔ Not a claim.The blind spot, read at source
CITATION_RE(scripts/check-issue-citations.mjs:448) ends its number with(\d{MIN,MAX})(?![\w-]). The negative lookahead refuses a following hyphen, so#13398-class,#8676-shapedand similar spellings are never extracted.domain:clipackages (689 sites, 166 numbers, 95 files): the ruling C+D stage for this lane (from #20556) #20594, dead tracker citations in thedomain:enginepackages (645 sites, 160 numbers, 104 files): the ruling C+D stage for this lane (from #20556) #20595, dead tracker citations in thedomain:servicespackages (629 sites, 112 numbers, 152 files): the ruling C+D stage for this lane (from #20556) #20596, dead tracker citations in thedomain:specpackages (84 sites, 21 numbers, 23 files): the ruling C+D stage for this lane (from #20556) #20597) and packages/spec/src: 1,277 comment lines still cite 170 deleted tracker numbers (1,295 sites) — the staged remainder of ruling C+D on #19123, measured by PR #20226 #20234, and the supplementaryextractCitationsscans the stages use as a control.#NNNN-wordspellings underpackages/**/src(live and dead together) finds about 100, most inpackages/spec/src(36),service-automation,rest(9 each) andservice-analytics(8).Family closeout (fold rule)
This is the second extractor-spelling blind spot of this gate. The first was #20330 (closed):
pre-#N/post-#Nread as a repository qualifier, so the number was classed cross-repo and never judged. Under the fold rule, the second instance opens the family's closeout card rather than another single-point fix.Deliverable shape (a suggestion, not a ruling)
#N-wordas a citation of#Nwherever the protected shapes are not at stake. ⛔ Do not drop the exclusion blind.#N" or "not a citation, because …". It covers#N,owner/repo#N,pre-#N,#N-word,(#N),#N.and every shape the exclusion guards. A new spelling class then turns a test red instead of becoming another card. It is a test in the gate's own self-test, not a new gate.Dedupe
MCP
search_issues(a read),objectstack-ai/objectstack, open and closed, run 2026-09-29 by this seat:check-issue-citationsreads thepre-inpre-#N(andpost-inpost-#N) as a repository qualifier, so a dead number in that spelling is classed cross-repo and never judged #20330, finding(pm):check-issue-citationsprints a remedy arm its own grammar cannot honour — 「keep the number and say in prose」 still fails, becauseCITATION_REsees the##19614, [finding] check:objectui-pin-citations builds its population from.objectui-shamentions ONLY — a citation phrased "Measured at the objectui pin <sha>" is invisible to EVERY arm, and the gate's own header claims that is impossible #19744, [finding] H9'sissue-refclass fires on a mid-sentence issue mention, so four tracked-path holds read clean (#8753 #8607 #8589 #6009) — the declaration-position narrowing was measured on the census but not landed #17605, [finding] A row insertion silently falsifies the census page's prose row references and NON_READ_ANCHORSwhy:strings, under a greencheck:system-context-census#15869, platform-checklist step (2): re-author the 1,647 source citations as symbol anchors and add a resolver that reds on an absent symbol #13788, [finding] a banned account leaves 60 dangling issue citations across 18 files — the citation gate reds any PR that edits a line carrying one, and 8 unresolvable numbers is a lower bound #19587, all closed). [finding]check-issue-citationsreads thepre-inpre-#N(andpost-inpost-#N) as a repository qualifier, so a dead number in that spelling is classed cross-repo and never judged #20330 is the family's first instance, and none covers the hyphen.domain:clipackages (689 sites, 166 numbers, 95 files): the ruling C+D stage for this lane (from #20556) #20594, dead tracker citations in thedomain:enginepackages (645 sites, 160 numbers, 104 files): the ruling C+D stage for this lane (from #20556) #20595, dead tracker citations in thedomain:servicespackages (629 sites, 112 numbers, 152 files): the ruling C+D stage for this lane (from #20556) #20596, dead tracker citations in thedomain:specpackages (84 sites, 21 numbers, 23 files): the ruling C+D stage for this lane (from #20556) #20597, the open lane stages). They consume the census and do not fix the extractor.Dedupe words:
CITATION_RE hyphen lookahead·#N-class spelling census blind spot·check-issue-citations extractor spelling