Skip to content

chore(devx): migrate the 7 freed scripts/** line citations to file-level anchors (#15809, residual 2 of 3) - #16338

Merged
baozhoutao merged 1 commit into
mainfrom
claude/issue-15809-scripts-line-citations-residual
Sep 6, 2026
Merged

chore(devx): migrate the 7 freed scripts/** line citations to file-level anchors (#15809, residual 2 of 3)#16338
baozhoutao merged 1 commit into
mainfrom
claude/issue-15809-scripts-line-citations-residual

Conversation

@claude

@claude claude Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

Part of #15809.

Second dispatch of the scripts/** unresolvable-citation follow-up (PR #16301 residual). Migrates the 7 of the 15-citation residual whose holding files freed since: check-docs-section-name.mjs and docs-audit/affected-docs.mjs (PR #16300, merged 13:49Z), check-type-check-coverage.mjs (PR #16295, merged 13:49Z). ⛔ Does not touch the 8 still held by open PRs #16215 and #16202.

Enumeration (node scripts/check-scripts-symbol-anchors.mjs --list-unresolvable)

before after
unresolvableLineCitation 15 8

Per-file migration (PR #15806 / #16301 method — file-level anchor, number kept beside it as data, no digit repaired or repointed)

file citations resolution
scripts/check-docs-section-name.mjs 3 concept.mdx:426content/docs/protocol/objectui/concept.mdx (only tracked file of that basename); doc-pages.mdx:257content/docs/ui/doc-pages.mdx (only tracked file of that basename); forms.mdx:183content/docs/ui/forms.mdx (basename is ambiguous — two tracked files share it — but only this one has a line 183 carrying the cited "sections": [/* … */] shape; the other, content/docs/capabilities/forms.mdx, is 30 lines long)
scripts/docs-audit/affected-docs.mjs 3 all three rest-server.ts citations → packages/rest/src/rest-server.ts (the only tracked file of that name)
scripts/check-type-check-coverage.mjs 1 engine.test.ts:2547/2577packages/services/service-automation/src/engine.test.ts (named directly by the surrounding prose, "service-automation's note")

Zero citations were ambiguous; every resolution above was reachable either because the basename is unique in the tree or because the surrounding prose already named the owning package/file.

scripts/check-scripts-symbol-anchors.mjs's header prose was also updated to record this round's dated reading (residual 15 → 8, both by exclusion) beside the first round's, following the precedent PR #16301 set for a header stating its residual as a dated reading rather than a stale live claim.

Residual (8, unchanged scope — not touched here)

None is an ambiguity. judgeUntrackedLineAnchors stays false per the #15809 fence (flips only when the residual reads 0 and a self-test pins the flip).

Corpus counts after (node scripts/check-scripts-symbol-anchors.mjs)

2898 anchors across 223 scripts resolve — 27 symbol (27 declaration, 0 literal), 2871 file-level,
0 cross-repo, 1 exempt, 2 continuation. 0 line anchors on tracked targets survive
(8 citations name no tracked file and are not judged; 0 dated allowance finding(s)).

(Before, same tree: 2886 anchors, 2859 file-level, 15 unresolvable.)

Gates, pinned to a5fb43463

turbo ls --affected against the branch's base (3e270d4e2) returns 0 packages — every edit is prose inside scripts/** audit/gate scripts themselves, no package's src/.

Byte-identical --self-test output before/after for every gate whose comment prose was edited (compared against a second worktree pinned to the same base 3e270d4e2):

  • scripts/check-docs-section-name.mjs --self-test — identical (85 cases)
  • scripts/docs-audit/affected-docs.mjs --self-test — identical (585 cases)
  • scripts/check-type-check-coverage.mjs --self-test — identical
  • scripts/check-scripts-symbol-anchors.mjs --self-test / plain run — residual count moved 15 → 8 as intended, every other line (2898 vs 2886 anchors etc.) reflects the new file-level anchors added, not a behavioural change

node scripts/pm/dispatch-gates.mjs --changed --commands --repo objectstack-ai/objectstack derived 38 commands for this diff; 37 are EXIT 0. The one exception, check:type-check-debt, is a legitimate PREREQUISITE NOT MET (exit 3, not a finding) -- its --re-measure mode needs the full workspace build closure on disk (pnpm exec turbo run build --filter='./packages/*' --filter='./packages/*/*'), which this scripts/**-only diff (0 affected packages per turbo ls --affected) does not warrant; the gate's own text says explicitly that measuring without the closure "would not fail, it would silently measure a DIFFERENT WORLD" and must not be entered anywhere. The plain check:type-check-coverage (same script, ledger-comparison mode) passed EXIT 0 in the same run.

skip-changeset applied — no .changeset/*.md needed (no package publishes; every changed line is comment prose inside scripts/**), no content/docs/releases/ touched.


Generated by Claude Code

…vel anchors

Second round of the scripts/** unresolvable-citation migration PR #16301
started. Two of the six held files freed since that PR landed --
check-docs-section-name.mjs and docs-audit/affected-docs.mjs (PR #16300),
check-type-check-coverage.mjs (PR #16295) -- so their 7 citations migrate
now by the same method: the file named as a file-level anchor, the number
kept beside it as data, no digit repaired or repointed.

- check-docs-section-name.mjs: concept.mdx:426, doc-pages.mdx:257 and
  forms.mdx:183 each resolve to exactly one tracked file under
  content/docs/** (forms.mdx is ambiguous by basename alone -- two files
  share it -- but only content/docs/ui/forms.mdx has a line 183 carrying
  the cited "sections": [/* ... */] shape).
- check-type-check-coverage.mjs: engine.test.ts:2547/2577 resolves to
  packages/services/service-automation/src/engine.test.ts, named by the
  surrounding prose ("service-automation's note").
- docs-audit/affected-docs.mjs: three rest-server.ts citations resolve to
  packages/rest/src/rest-server.ts, the only tracked file of that name.

The corpus residual (scripts/check-scripts-symbol-anchors.mjs
--list-unresolvable) drops from 15 to 8, all 8 still held by open PRs
(#16215, #16202) -- none an ambiguity. judgeUntrackedLineAnchors stays
false per the #15809 fence (flips only at residual zero). Header prose
updated to record both dated readings.

Part of #15809.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vbw3RPgdtqesx4azk9SbW8
@claude claude Bot added the skip-changeset PR has no user-facing published change; bypasses the changeset gate label Sep 6, 2026
@github-actions github-actions Bot added the size/s label Sep 6, 2026
@github-actions

github-actions Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

📓 Docs Drift Check

Nothing in this diff resolved to a documentable surface (no symbol, route or SDK anchor derived from 0 changed package(s)), so this run has no opinion about the docs.

What this run could not see
  • a page that states a rule by its inputs shares no identifier with the emitter that implements the rule, so an emitter-only diff cannot list it — not on this run and not on any run. Measured on fix(driver-sql): emit varchar(maxLength) for a text field a declared index keys on #11430: content/docs/protocol/objectql/types.mdx documents the text-family column mapping by the ObjectQL type names it maps FROM (text / textarea / html) while the diff changed createColumn; it went unlisted, and it was the page that diff falsified, in four places. No shared token exists to detect this on, so a rule your change carries has to be re-read by hand in the pages that restate it.

Coarse fallback — 0 page(s) merely mention a changed package (the pre-#9192 predicate, kept for the deliberately-wide backstop): node scripts/docs-audit/affected-docs.mjs --json 3e270d4e296368f6600d71fcec9902f3a14c1698packageMentionDocs.

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

Labels

size/s skip-changeset PR has no user-facing published change; bypasses the changeset gate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants