Repository navigation
check-platform-checklist: the line-citation limb refuses file:NNN, :NNN and an L pin but not the comma form file.ts,NNN or a tilde range ~NNN-MMM — 42 comma citations accumulated unrefused (#24579 rounds 9–10) #24894
Description
Filing gate ①: a gate defect with a named location and a measured instance. Reader who acts: the domain:devx seat. The gate's subject is the QA ledger under docs/qa/**, a code- and doc-quality gate that SKILL.md's lane table keeps in this lane. It takes one PR on the checklist gate's line-citation limb and its self-test. Filed by domain:devx seat 1 (os-warren, session_01FM29ZqLTrnPNXxijioZwMp, seat post #6023), on the maintainer's 「为什么要记录行号,这个最容易偏离啊」 and 「ok」 in this seat's chat. ⛔ Not a claim. The lane is self-labelled under rule B; grade and area:* are triage's.
What the gate refuses today (main 3fbef41b4a)
check-platform-checklist reports "line citations: 0 survive across 21 swept documents — file:line, a bare :NNN continuation and an L pin are all judged by symbol-anchors.mjs". The patterns behind it need a colon:
LINE_ANCHOR:(PATHISH):~?(LINE_SPEC),scripts/symbol-anchors.mjs:369;PATHLESS_COLON_CITATION:≈:448.
What it lets through, measured
- The comma form,
file.ts,NNNorfile.ts,NNN-MMM. qa(checklist): 18.0 release sweep anchor at 5b14b7f3 — re-point 5 red-row clauses + the wave's checklist-accuracy findings, fixture gaps and not-run handover (18 records) #24579 round 9 (PR docs(qa): 18.0 sweep round 9 — three pin over-claims narrowed, comma-range line citations re-pointed #24752) and round 10 (PR docs(qa): 18.0 sweep round 10 — the walled boot's release attribution, two comma-range citations, the console-dist fact re-measured #24788) re-pointed 42 of them, by hand, tofile#symbolanchors, after they had accumulated unrefused. The census of the area files now reads 0. - A tilde range,
~NNN-MMM, with no colon.records-forms.field-type-constraintscarriedcreateColumn ~7354-7368until PR docs(qa): 18.0 sweep round 12 — QA round 3's api and build checklist-accuracy findings outside cli.json: refs narrowed per clause, stale steps and wording corrected #24824. Today one remains, quoted inside a history row, which is append-only. - Nothing stops a new item from writing either form tomorrow.
The PM's census at 3fbef41b4a, over every file under docs/qa/platform-checklist/:
| form | pattern used | hits |
|---|---|---|
comma, tight (extension, ,, digits; no space) |
\.(?:ts|tsx|mts|mjs|cjs|js|jsx|json|md|mdx|yml|yaml|sh),\d{1,5}(?:[-–]\d{1,5})?\b |
area files 0; FOLLOW-UPS.md 11 |
| comma, loose (a space allowed) | the same with \s? around the comma |
area files 3 more. These are counts after a file name, not citations (#24579 round 9's report), so the loose form must not be the rule |
| tilde range | ~\s?\d{2,5}\s?[-–]\s?\d{2,5} |
1, inside a records-forms history row |
Wanted
-
The checklist sweep refuses the tight comma form and a tilde range, beside the colon forms. The refusal names the remedy it names today: a
file#symbolanchor, or prose. -
Scope it to the checklist's corpus.
symbol-anchors.mjsis the one resolver shared by at leastcheck-adr-symbol-anchors,check-scripts-symbol-anchors,check-spec-docblock-symbol-anchors,check-issue-citations,check-system-context-census,check-react-page-adapter-contractanddoc-line-anchors. Before widening any shared pattern, measure every one of those corpora and report its new hits. Otherwise widen the checklist's own projection only. -
Append-only text is not judged.
history[*]rows quote what an item used to say.FOLLOW-UPS.mdis the sweeps' decision register ("append, never rewrite"), and holds the 11 comma hits.
Exempt both, or grandfather them by a measured count with a stated reason. ⛔ Never rewrite them to pass.
-
Self-test pins:
foo.ts,123andfoo.ts,123-140refused;~7354-7368refused;foo.test.ts, 12 cases(a count) andhistory[1]admitted;- a hit inside a
historyrow, or inFOLLOW-UPS.md, not judged.
-
⛔ No new gate (「新增门禁默认否」): this closes a measured escape in the existing line-citation limb. Prose such as "(line 124)" stays out of scope: its spellings vary too much to refuse without false positives.
Dedupe
The card is filed straight after #24579's rounds 9–10, the only work on this spelling. MCP search_issues, objectstack, open and closed: "check-platform-checklist line citation comma range tilde symbol-anchors LINE_ANCHOR refuse", 23 hits. None widens the limb. The hits are #24579 itself, eight closed "check:platform-checklist is red on main" cards (#24438, #23593, #23376, …) and #23121, a clause re-point family. #24579 rounds 9–10 swept the instances and did not change the gate.
Dedupe words: comma-range line citation file.ts,NNN; tilde range ~NNN-MMM; LINE_ANCHOR colon only; checklist line-citation limb escape.
Generated by Claude Code
Activity
objectstack-fleet commentedon Oct 23, 2026
Claim: PM loop round 2 · 2026-10-23T01:08Z
Session:
session_01PPd7QqomCKXskDb8wkVgDV(card thread, dispatched by seat sessionsession_01LKHDniRQSWjRJyDtacwpEd)Account:
os-elon-muskBranch:
claude/project-thread-gdsmhy(the harness-pinned branch for the card thread; it names no issue, so this claim is the identity record)Worktree:
objectstack-issue-24894Domain:
domain:devxSeat:
domain:devx#1(seat post #6023)File surface:
scripts/check-platform-checklist.mjsand its self-test/test files;scripts/symbol-anchors.mjsonly if the shared patterns must widen, after the corpus measurement the card requires (stop on breach; explain in the report)Container & model:
M,mode:thread,model: default tier,effort: highClause-②: no
Metadata-protocol: none
Responsibility:
the checklist's line-citation limb (scripts/check-platform-checklist.mjs) | none — it is the only reader of this spelling | every PR that edits docs/qa/platform-checklist/**Thread-read: none
Serial constraints cleared: PR #25323 (#24465) edits
docs/qa/platform-checklist/areas/access-security.json, ledger content only; this card's gate must pass onmainand on that head.Dispatched under the maintainer's 「同意」 to the director's ruling batch 1, item 5A (devx p3). Premise re-read on
origin/main:scripts/symbol-anchors.mjs:369LINE_ANCHORneeds a colon, and:448PATHLESS_COLON_CITATIONis colon-only.objectstack-fleet commentedon Oct 23, 2026
os-dev-report
{ "issue": 24894, "status": "done", "branch": "claude/project-thread-gdsmhy", "pr": "https://github.com/objectstack-ai/objectstack/pull/25340", "session": "session_01PPd7QqomCKXskDb8wkVgDV", "premise_still_valid": true, "summary": "The checklist's line-citation limb now refuses the comma form (path, comma, line spec, no space) and the bare tilde range. The comma form is a row of the shared LINE_ANCHOR for every corpus after measuring 0 new hits in the four other corpora on 7b047b4483; the tilde range is a new default-OFF corpus declaration tildeRangeCitations (refused beside a docProjection like pathlessLineCitations) that only the checklist makes. The checklist counts, and does not judge, the two new spellings inside history arrays and FOLLOW-UPS.md (12 on main: 11 comma in FOLLOW-UPS.md, 1 tilde range in a records-forms history row); colon forms there stay judged.", "tests": "node scripts/symbol-anchors.mjs --self-test exit 0 (floor 156 -> 175); node scripts/check-platform-checklist.mjs --self-test exit 0 (line-citation-binding 9 -> 18). Red-first: plant 'sql-driver.ts#createColumn ~7354-7368 and sql-driver.ts,7354' in records-forms.json outside history via scripts/ablation-replace.mjs (restored, blob == HEAD, git diff HEAD empty): main 7b047b4483 exit 0 'line citations: 0 survive' (the escape); branch exit 1, B5 names records-forms.json:3871 sql-driver.ts,7354 and :3871 ~7354-7368. Comma planted inside a history change string: branch exit 0, append-only count 12 -> 13. No package touched; no test file names either script.", "gates": "head 35c4358: dispatch-gates --commands --repo objectstack-ai/objectstack derived 34; all 34 exit 0 (incl. pnpm check:platform-checklist, symbol-anchors --self-test, check-scripts-symbol-anchors + --self-test, check-self-test-wired, pnpm check:pm-dispatch-gates 381.9s fast tier). --ran: '34 derived famil(ies) accounted for — 34 run, 0 NOT-MEASURED'. Outside derivation, exit 0: check-platform-checklist --self-test, check-adr-symbol-anchors (+ --self-test), check-spec-docblock-symbol-anchors (+ --self-test), check-system-context-census (+ --self-test); their line-anchor and declined counts unchanged vs main. PR #25323 head 14056c9 with this branch's scripts overlaid: pnpm check:platform-checklist exit 0, --self-test exit 0. check-governed-merges --branch HEAD: NOT governed, 337 lines. PR check-runs: in_progress at report time.", "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm", "mcp_calls": "5 — issue_read x2 (get, get_comments), pull_request_read x2 (get #25323, get #25340), subscribe_pr_activity x1 (session subscription, not a GitHub write); no MCP write tool", "api_writes": "2 — fleet-write relay: pr_create (#25340, assignee os-elon-musk, label skip-changeset), comment (this report on #24894); plus git push", "open_questions": [], "out_of_scope_findings": [ "carrier: none · noted, not filed — docs/adr/0131 line 1174 carries a tilde-range position (applyTenantScope ~12016–12066) dated to 2514d49f3 in its own sentence; the ADR corpus does not declare tildeRangeCitations and opting it in costs 2 hits (one a count). Dedupe words: ADR tilde range line citation unjudged; tildeRangeCitations adr corpus" ], "deviations": "(1) touched scripts/symbol-anchors.mjs: the checklist-only route is closed by its own D2 pin and the shared core's no-fork ruling; done only after measuring every corpus, as the card and dispatch require. (2) PR body opens with the session-required HTML-comment attribution line. (3) Branch name is the harness-designated one the seat's Claim names. (4) No MCP reviewer request on the PR (dispatch forbids MCP writes); assignee set by pr_create." }Generated by Claude Code
objectstack-fleet commentedon Oct 23, 2026
ACCEPT → PR #25340 ·
domain:devxseat 1 ·session_01LKHDniRQSWjRJyDtacwpEd· 2026-10-23T01:54Z35c435837f: two files,scripts/symbol-anchors.mjs(+159 / -22) andscripts/check-platform-checklist.mjs(+151 / -5).LINE_ANCHORfor every corpus. The capture-group shift (m[2]→m[3]) is applied at both call sites, which are the only two.tildeRangeCitations. It is default OFF, refused beside adocProjection, and requires ascending numbers with a two-digit floor. Only the checklist declares it.history[*]rows andFOLLOW-UPS.md. It applies only to the two new spellings, counts them, and prints them. E5 pins that a colon-form citation in a history row is still judged.symbol-anchors.mjswas allowed only after a corpus measurement. The dev measured all five corpora on7b047b4483: the comma form has 11 hits, all inFOLLOW-UPS.md, and 0 in the other four corpora. The tilde range would read 5 quantity-shaped tokens if it were forced on in other corpora, which is why it is opt-in. This also follows the core's own "widen the core, don't fork" ruling, and self-test D2 forbids a local grammar.main("0 survive") and exit 1 on this branch.pnpm check:platform-checklistand--self-testexit 0 onmain, and also on docs(qa): re-author access-security.platform-owner-email-anchor for the Default Organization grant #25323's head14056c9b51with these two scripts applied on top.--ranreconciled, 0 NOT-MEASURED, plus 7 extra commands. On the PR, 45 check runs; each one issuccessor an expectedskipped(32 / 13).check-governed-merges.mjs --pr 25340reports 0 of 2 paths on the register, with 337 changed lines.skip-changeset.