docs(spec): re-anchor the last six dead tracker citations in packages/spec/src to the commits that decided them - #21642
Conversation
…/spec/src to the commits that decided them Six comment sites cited tracker numbers that answer 404 (#9040, #17590, #12380, #6276 twice, #9972). Each now cites, in ruling C+D form C, the commit on main that decided the rule, the same anchor earlier stages already landed for that number in sibling files: 2420641, e04a0af, 4045b95, 78f0be8 and 60e0f90. The live sibling numbers in each slash-joined group stay. Comment text only. Claude-Session: https://claude.ai/code/session_01T9u38rswFp5Rw8DswRUReJ Co-authored-by: Claude <noreply@anthropic.com>
…venance comments Three of the four edited files ship verbatim through the package's `src/**/*.zod.ts` files entry, and four of the six comments reach the built dist bundles or declarations, so the change publishes text. Claude-Session: https://claude.ai/code/session_01T9u38rswFp5Rw8DswRUReJ Co-authored-by: Claude <noreply@anthropic.com>
📓 Docs Drift CheckThis PR changes 1 package(s): ⛔ 3 release-owned page(s) name something this change touched. These are read-only:
What this run could not see
Coarse fallback — 138 page(s) merely mention a changed package (the pre-#9192 predicate, kept for the deliberately-wide backstop): Which tree this was computed onThis run read A worktree cut from an older # while this PR is open — GitHub drops the merge commit once it closes
git fetch origin d87dcbd25a12951e82ba3fc6046aa759aeded25b && git checkout d87dcbd25a12951e82ba3fc6046aa759aeded25b
# afterwards, rebuild it from the two parents, which stay fetchable
git fetch origin 36e4647520b1e292c75cc4ded2c7a3bcb916ba91 dbacec5f91e9de02df5b513a9b8a1b38ad12f905 && git checkout -B drift-repro 36e4647520b1e292c75cc4ded2c7a3bcb916ba91 && git merge --no-ff dbacec5f91e9de02df5b513a9b8a1b38ad12f905
node scripts/docs-audit/affected-docs.mjs --json 36e4647520b1e292c75cc4ded2c7a3bcb916ba91
|
Part of #20234
Clause-②: no
The next stage of the dead-citation sweep under ruling C+D (record
5749154545on #19123): the six comment sites the census pointer5923089344names, claimed in5973700515. Each cited a tracker number that answers 404. Each now cites, in form C, the commit onmainthat decided the rule, and in every case that is the anchor an earlier stage of this card already landed for the same number in a sibling site. Comment text only: no string literal,.describe()text, schema, type, export or test changes.The rule applied
Form C, as triage's first grade (
5856637615) states it and stages 1 to 11 applied it: "the ADR or ruling record, else the commit sha, with a PR number allowed only beside it as a link", and "Each rewritten line says what the cited object decided … Where nothing answers, keep the sentence's reason in words and drop the citation." Stage 10's ACCEPT (5902947213) adds: "Where the number alone carried the meaning, the decision is also said in words." Live numbers stay (stage 9's ACCEPT5899135835: "its claims forbid removing a lit citation"). A slash group keeps its live numbers and takes the commit beside them, as stage 5 did for#9881/#9972incomponent.test.ts(nowthe #9881 / commit 60e0f900a records).What changes (line numbers at base
5b5e83f446)maindata/datasource.zod.ts:701#9040in#8082/#8336/#9040#8082/#8336, or the refusal of a credential in mongo's options passthrough (commit 24206416a)data/datasource-credential-redaction.ts,data/driver/common.zod.ts(stage 3)data/filter.zod.ts:1067@seeURL of#17590@see commit e04a0aff2 (the membership reading, landed with the SQL family)data/filter.zod.ts:979(stage 3)data/value-roundtrip-conformance.ts:100@seeURL of#12380@see commit 4045b954d (the measured boundary set)v_jsonparagraph (stage 3)ui/component.zod.ts:675#6276in#5611/#5775/#6276#5611 / #5775 / commit 78f0be872ui/component.zod.ts:71,:207,:682(stage 5)ui/component.zod.ts:751#6276in#5611/#5775/#6276#5611 / #5775 / commit 78f0be872ui/component.zod.ts:4555#9972in#9881/#9972#9881 / commit 60e0f900aui/component.zod.ts:2609,ui/component.test.ts:407(stage 5)The datasource line is the one site whose sentence did not say what the dead number decided, so it now says it in words, from the code: the mongo
optionspassthrough refusal is part of the config gate (credentialFreeMongoOptionsonMongoConfigSchema.options). That comment reflows from two lines to three. Every other edit is one line for one line, and each of those sentences already stated its decision in words.Evidence
The six are dead, measured with the gate's own instrument.
node scripts/check-issue-citations.mjs --census --json(read-only, board enumerated, 195 pages) at base5b5e83f446lists exactly these six plus the two literal-read sites stage 6 kept on purpose (data/api-derivation.ts:163[#6259],identity/identity.zod.ts:230#8715). Lines match the claim. No seventh dead number inpackages/spec/src. RESTissues/N, redirects not followed:#9040,#17590,#12380,#6276,#9972answer 404; the lit controls#8082,#8336,#5611,#5775,#9881,#5286,#12624answer 200.After, at head
dbacec5f91: the same census readsallocated-but-absent119 → 113 repo-wide and 8 → 2 inpackages/spec/src. Gone: exactly the six. New: none.Each anchor is on
mainand names its number. RESTcompare/SHA...5b5e83f446answersahead,behind_by: 0for all five shas (controls:5b5e83f446~1answersahead,behind_by: 0; the off-main branch commit25fb56f1b7answersdiverged,behind_by: 3). The localmerge-base --is-ancestorexits 1 for all five on this shallow checkout, which is the shallow false negative, so the REST reading is the one cited. Each commit's own text names the number it replaces:24206416a(subject: refuse a credential in the mongo options passthrough at publish,#9040);e04a0aff2(its body names#17590as the card it delivers, and its diff wrote the very@seeline rewritten here);4045b954d("Part of #12380", with the live 17-value measurement across three dialects);78f0be872(subject names#6276);60e0f900a(subject names#9972).Comment-only, proved two ways.
.describe()string edit, a template-literal edit and a regex-literal edit each report DIFFERS; a line-comment edit, a JSDoc edit and an@see-line edit each report IDENTICAL.Generated artifacts. After a spec build,
check:generatedreports 15 of 15 up to date. No reference page renders any of the six comments (content/docs/references/holds neither the old nor the new text). Nothing was regenerated.Changeset:
@objectstack/specpatch. Measured after the build:datasource.zod.ts,filter.zod.tsandcomponent.zod.tsship verbatim through the package'sfilesentrysrc/**/*.zod.ts; indist, the threecomponent.zod.tscomments are in 14.js/.mjsbundles and thevalue-roundtrip-conformance.ts@seeis indist/data/index.d.tsand.d.mts. The datasource and filter comments reach nodistfile. Positive control: themaxVisible.describe()text is in 14distfiles. So the change publishes text, andskip-changesetdoes not apply.Tests and gates, at head
dbacec5f91.pnpm --filter @objectstack/spec build: exit 0. Speclocalvitest: 609 files, 18,057 passed, 1 todo.pnpm --filter @objectstack/spec typecheck: exit 0.node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstackderived 79 families;--ranreconciles 78 run, all exit 0, and 1 NOT MEASURED, 0 unrun.check:dual-build-cjs-loads, reason: it refuses (exit 3) until every publishable package is built, and a full monorepo build was not run locally. Narrowed and declared: the diff is comment-only inpackages/spec, and of the gate's 106requireentries (its own--list), spec's 19 all load at head. CI runs the full gate.@objectstack/lintcheck:doc-formula-expressions,check:lean-entry-closure). After buildingformula,lintandobjectql(14 of 14 turbo tasks), both exit 0.Overlap. Open PR #21632 and PR #21625 touch
ui/component.zod.tsin other regions. Neither had landed atorigin/main36e4647520, re-fetched before this PR opened, so no merge was taken. Amerge-treeof this head onto that tip exits 0, and none of the five changed paths is routed to the regeneration merge driver, so the local answer is GitHub's.Acceptance notes
docs/audits/2026-07-unknown-key-strictness-ledger.md:676still names the#5611/#5775/#6276rule. It is outside this stage's file surface and outside the census surface. Carrier: none.#17590the commit rung was taken, althoughe04a0aff2's message names a director-seat ruling record. That matches stage 3's anchor for the same number atfilter.zod.ts:979, reviewed PASS.docs/adr/,.claude/,skills/,AGENTS.mdorCLAUDE.md. 29 changed lines.Generated by Claude Code