docs(spec): drop the stale inline-locale-map population count from i18n docblocks - #17006
Merged
Merged
Conversation
Two docblocks in packages/spec/src/ui/i18n.zod.ts each asserted that this repo authors 31 inline locale maps -- the INLINE_LOCALE_KEY rationale and the I18nLabelSchema form-2 note. The measured population is 45: 33 in sys-user.page.ts, 6 in sys-organization.page.ts, 6 in sys-position.page.ts. The number is dropped at both sites rather than corrected. Neither argument needs a magnitude: the first turns on the universal (every authored map uses en / zh-CN / ja-JP / es-ES, so the accept set is what makes the constraint free), and the second turns on the maps being authored on published platform pages and resolved by pickLocalized, which one authored-and-resolved map already establishes. Writing the new figure buys one release of accuracy in prose cited as evidence for a schema constraint, and it has already drifted once with nothing noticing; deriving it would mean a permanent gate whose only job is keeping a number in a comment true. The measured half survives at both sites: three platform pages author these maps, and that is still exactly three. No schema arm, bound, default, .describe() string or export changes. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016N6xmWt5hYm94ffVEwGH8x
Contributor
📓 Docs Drift Check
What this run could not see
Coarse fallback — 131 page(s) merely mention a changed package (the pre-#9192 predicate, kept for the deliberately-wide backstop): |
zhuangjianguo
marked this pull request as ready for review
September 9, 2026 02:17
zhuangjianguo
enabled auto-merge
September 9, 2026 02:17
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.
Fixes #14816
packages/spec/src/ui/i18n.zod.tsasserted the size of the inline-locale-map population twice, and both sites said 31. The measured population is 45. The count is dropped at both sites rather than corrected.Clause-② ruling (carried from dispatch)
The two sites — before and after, quoted whole
Both sites were located by sentence text, never by line number.
Site 1 — the
INLINE_LOCALE_KEYrationale.Before:
After:
The argument is untouched. It turns on the universal — every authored map uses those four tags — so what makes the constraint free is the accept set, not the size of the population.
Site 2 — the
I18nLabelSchemaform-2 note.Before:
After:
Both sites were read against the question "does this argument need a magnitude?", and neither does — so both are dropped and neither is flagged. Site 2 was the one worth pausing on, since a "delivered capability, not a convention the runtime ignores" claim can want evidence of scale. It does not: the claim rests on the maps being authored on published platform pages and resolved by
pickLocalized, and a single authored-and-resolved map already refutes "a convention the runtime ignores". The magnitude that does carry weight there — three published platform pages — survives verbatim.The measured half survives at both sites: "three platform pages" / "Three published platform pages", still exactly three.
Count re-derivation, with controls
Re-derived on this branch's base
2fd714f4f(the seat measuredfe2b7554a; the figure is unchanged):'zh-CN':packages/platform-objects/src/pages/sys-user.page.tspackages/platform-objects/src/pages/sys-organization.page.tspackages/platform-objects/src/pages/sys-position.page.tsexamples/app-showcase/objectstack.config.tsgives 0.defineStackgives 2 — so the zero is a reading, not a broken grep.packages/platform-objects/src/pages/author these maps.No
31claim survives — wrap-tolerant, with firing controlsBoth sentences were line-wrapped with the number at a line boundary in one, so a single-line grep is not a valid instrument here. The file was flattened (comment decoration stripped, all newlines collapsed; 0 newlines remained) and searched:
31anywhere31 of themauthor 31 of theseof them|of thesethree platform pagesThree published platform pagesen / zh-CN / ja-JP / es-ESintactThe last row is the matcher's own firing control: the digit matcher demonstrably fires 44 times on other numbers in the same flattened text, so the four zeros above are readings.
Changeset — both halves measured
A real
patchchangeset is included. Both halves say yes, measured rather than assumed:files[]? Yes.@objectstack/spec'sfiles[]carriessrc/**/*.zod.ts, andsrc/ui/i18n.zod.tsmatches it.npm packon this tree (276 tarball entries).src/ui/i18n.zod.ts— PRESENT.files[]mechanism does not ship):src/ui/i18n.test.ts— ABSENT;src/ui/i18n-label-resolver.ts— ABSENT. The mechanism discriminates:src/ui/holds 96.tsfiles on disk and ships exactly the 18.zod.tsones.31claim.Gates
Every reading below is on the final commit
1bf6a9e85.node scripts/pm/check-governed-merges.mjs --test packages/spec/src/ui/i18n.zod.ts .changeset/i18n-inline-locale-map-population-count.md— "0 of 2 path(s) hit the register (5 surfaces, repo-agnostic)", NOT governed. Exit code 0.check:generated: exit 0 — all 15 generated artifacts up to date. Nothing regenerated:git status --porcelainis byte-identical before and after the run. No artifact landed underskills/**. (check:react-declaration-parityis the one gate this repo cannot run at all — it needs objectui'ssdui.manifest.json; that is its standing condition, not something this change caused.)node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack, never from a hand-written list, and re-derived once the changeset existed (which added 4 families). All 70 derived commands were run. Reconciliation with--ran: "70 derived, 70 run, 0 NOT-MEASURED, 0 UNRUN", exit 0, re-confirmed after a freshgit fetch origin main.PREREQUISITE NOT MET, the gates' own self-declared NOT MEASURED code, because they read built output and packages had nodist/. Two were cleared by building their prerequisites and re-run to a real reading:check:doc-formula-expressionsexit 0, andcheck:lean-entry-closureexit 0 ("2 published condition(s) measured from a real load").pnpm check:dual-build-cjs-loads— exit 3,PREREQUISITE NOT MET, 47 packages still withoutdist/. It needs a fullpnpm buildof the monorepo. Declared narrowing: that full build was attempted under the shared verify lock and returnedVERDICT queue-timeout (exit 99) · never acquired · waited 540s— nothing was built and nothing was decided, so this is recorded as NOT MEASURED rather than as a pass or a red. CI builds fresh and runs it. Reasoning, kept separate from measurement: this diff is two comment lines inside a docblock and emits no different bytes, so it has no mechanism by which to move a CJS-load gate — but that is an argument, not a reading.pnpm --filter @objectstack/spec typecheck— green (tsc --noEmitclean,check:scripts-typecheckOK,check:test-typecheck: OK), lock verdictcommand-exit 0.@objectstack/spechas a split test project.localis the one this change set implicates — the i18n tests are not listed invitest.repo-tests.json, so they belong tolocal, notrepo.pnpm --filter @objectstack/spec test(=vitest run --project local): 467 test files, 13100 tests, all passed, lock verdictcommand-exit 0.31 of them/author 31 of theseoutside this file and two historicalCHANGELOG.mdrows.验收备注
Out of scope, noted and not folded in:
packages/spec/CHANGELOG.mdcarries the same stale figure in two historical release entries ("which three published platform pages author 31 times"). These are release-history records of what was written at the time, not live prose, andCHANGELOG.mdis changeset-owned — left untouched. Carrier: the release-notes lane, if anyone wants it corrected.git rev-parse --is-shallow-repository= false. Dating the drift remains deliberately out of scope and was not attempted or measured here; the discrepancy is reported to the seat rather than acted on.Generated by Claude Code
Generated by Claude Code