chore(devx): migrate the 7 freed scripts/** line citations to file-level anchors (#15809, residual 2 of 3) - #16338
Merged
baozhoutao merged 1 commit intoSep 6, 2026
Conversation
…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
Contributor
📓 Docs Drift CheckNothing 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
Coarse fallback — 0 page(s) merely mention a changed package (the pre-#9192 predicate, kept for the deliberately-wide backstop): |
baozhoutao
marked this pull request as ready for review
September 6, 2026 15:01
baozhoutao
enabled auto-merge
September 6, 2026 15:01
This was referenced Sep 6, 2026
baozhoutao
deleted the
claude/issue-15809-scripts-line-citations-residual
branch
September 6, 2026 15:29
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.mjsanddocs-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)unresolvableLineCitationPer-file migration (PR #15806 / #16301 method — file-level anchor, number kept beside it as data, no digit repaired or repointed)
scripts/check-docs-section-name.mjsconcept.mdx:426→content/docs/protocol/objectui/concept.mdx(only tracked file of that basename);doc-pages.mdx:257→content/docs/ui/doc-pages.mdx(only tracked file of that basename);forms.mdx:183→content/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.mjsrest-server.tscitations →packages/rest/src/rest-server.ts(the only tracked file of that name)scripts/check-type-check-coverage.mjsengine.test.ts:2547/2577→packages/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)
scripts/check-system-context-census.mjs×4 +scripts/cross-package-test-inputs.mjs×3 — held by open PR feat(organizations): bring the multi-organization runtime back to open core — the org-scoping registrar ships open, the licence gate stays in cloud (ADR-0132) #16215scripts/pm/check-half-states.mjs×1 — held by open PR tooling(pm): the claim-side readers — a bulletedBranch:governs, and aRefs-only landing is not H8's full delivery #16202None is an ambiguity.
judgeUntrackedLineAnchorsstaysfalseper 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)(Before, same tree: 2886 anchors, 2859 file-level, 15 unresolvable.)
Gates, pinned to
a5fb43463turbo ls --affectedagainst the branch's base (3e270d4e2) returns 0 packages — every edit is prose insidescripts/**audit/gate scripts themselves, no package'ssrc/.Byte-identical
--self-testoutput before/after for every gate whose comment prose was edited (compared against a second worktree pinned to the same base3e270d4e2):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— identicalscripts/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 changenode scripts/pm/dispatch-gates.mjs --changed --commands --repo objectstack-ai/objectstackderived 38 commands for this diff; 37 are EXIT 0. The one exception,check:type-check-debt, is a legitimatePREREQUISITE NOT MET(exit 3, not a finding) -- its--re-measuremode 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 perturbo 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 plaincheck:type-check-coverage(same script, ledger-comparison mode) passed EXIT 0 in the same run.skip-changesetapplied — no.changeset/*.mdneeded (no package publishes; every changed line is comment prose insidescripts/**), nocontent/docs/releases/touched.Generated by Claude Code