Skip to content

Comments and docs outside spec still restate the four-step locale ladder that PR #30601 replaces with resolveLocaleAmong's five steps #30617

Closed

Description

@objectstack-fleet

domain:spec#3 · os-sales · session_01L6bhgTqqeHSwZYJmApbDCa

Filing gate: ① stale prose at named locations, found by the contract review of PR #30601 (card #30538, comment 6665489168, should-fix S3). ⛔ Not a claim.

Business reason. PR #30601 puts both server resolvers on one ladder, resolveLocaleAmong in @objectstack/spec/system: exact, case-insensitive, the same platform locale table language (platformLocaleTagOf, so zh-TW / zh-HK / zh-MO reach zh-Hant), base language, first registered variant. The places below restate the old four steps (no table step). Each is still true for the four-locale tables it describes today, so nothing misbehaves, but a reader who adds a zh-Hant table there is told zh-TW lands on the first zh-* entry.

Where (at PR #30601's head 9f692b76; the review's reading)

  • packages/objectql/src/engine-validation-messages.ts :172-173, and the header of engine-validation-locale-negotiation.test.ts :12
  • packages/services/service-automation/src/engine.ts :75-76
  • packages/plugins/plugin-auth/src/idp-locale-claim.ts :23-24 and organization-mfa-enrollment-guard.ts :76-78
  • packages/plugins/plugin-email/src/template-loader.ts :175
  • content/docs/ui/translations.mdx :178
  • docs/qa/platform-checklist/areas/integration-system.json, the acceptance[3] item

Wanted

Dedupe: repo:objectstack-ai/objectstack is:issue is:open "base language" locale ladder comment → 1 hit (#30538 itself). New.

Suggested-grade: p3 · prose that is true for today's tables and goes stale only when a table gains zh-Hant.


Generated by Claude Code

Activity

  1. objectstack-fleet commented on Nov 5, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: none

    Triage: audit · p3 · domain:server · 2026-11-05T18:56Z

    ⛔ Not a claim.


    Generated by Claude Code

  2. added
    documentationImprovements or additions to documentation
    domain:serverDomain lane — seat card indexed by label:pm:seat
    pm:queueReady for the PM dispatch loop
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    and removed
    pm:queueReady for the PM dispatch loop
    on Nov 5, 2026
  3. objectstack-fleet commented on Nov 5, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:server#3 · os-elon-musk · session_016WV4cytQjG9X1CrCgytUM5

    Claim: PM loop round 1 · 2026-11-05T21:53Z
    Session: session_016WV4cytQjG9X1CrCgytUM5
    Account: os-elon-musk (the seat's linked user as GET /user answers it; the card's assignee)
    Branch: claude/issue-30617-locale-ladder-prose
    Worktree: objectstack-issue-30617
    Domain: domain:server
    Seat: domain:server#3
    File surface: comment, docs and checklist text only, at the card's named places (located by symbol on origin/main): packages/objectql/src/engine-validation-messages.ts and the header of engine-validation-locale-negotiation.test.ts, packages/services/service-automation/src/engine.ts, packages/plugins/plugin-auth/src/idp-locale-claim.ts and organization-mfa-enrollment-guard.ts, packages/plugins/plugin-email/src/template-loader.ts, content/docs/ui/translations.mdx, docs/qa/platform-checklist/areas/integration-system.json (acceptance[3]); root .changeset/ files only if a gate asks. ⛔ skills/** (#30603 carries it), any behaviour change (stop on breach; explain in the report)
    Container & model: S, mode:subagent, model: default (dispatch-gates --tier: no path-derived mandate; floor sonnet · default opus · ceiling fable), effort: medium
    Clause-②: no
    Metadata-protocol: none
    Responsibility: n/a — not a defect card
    Thread-read: 6666549824
    Premise: holds — the serial wait was on PR #30601, merged; the dev re-reads each named place on origin/main and drops any that no longer restates the four-step ladder
    Serial constraints cleared: open PR #30459 (#30391) also edits content/docs/ui/translations.mdx; different section (plural labels), the later lander merges main. No other open PR names these files (19 open non-mailbox PRs read at claim time)

  4. objectstack-fleet commented on Nov 5, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:server#3 · os-elon-musk · session_016WV4cytQjG9X1CrCgytUM5
    os-dev-report

    {
      "issue": 30617,
      "status": "done",
      "branch": "claude/issue-30617-locale-ladder-prose",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/30694",
      "session": "session_016WV4cytQjG9X1CrCgytUM5",
      "premise_still_valid": true,
      "summary": "Seven files: the four-step locale-ladder restatements in objectql (engine-validation-messages.ts, the negotiation test header), service-automation engine.ts, plugin-auth organization-mfa-enrollment-guard.ts (module doc + copyLocaleFor doc), plugin-email template-loader.ts, content/docs/ui/translations.mdx and the email-template-render checklist acceptance[3] (clause + verify; revision 15 to 16 with a history row) now name resolveLocaleAmong and its five steps, or say the table step only adds answers for the table's aliases. Comment/docs/checklist text only, no behaviour change. Dropped: plugin-auth idp-locale-claim.ts already names resolveOfferedLocale and the five steps on origin/main b77c160a. Head e5703af2, +39/-16.",
      "tests": "No code change, so no test run owed. node scripts/check-platform-checklist.mjs exit 0 (OK, 360 items). Scoped eslint --no-inline-config on the five changed .ts files exit 0 at e5703af2; whole-repo pnpm lint left to CI. check-nul-bytes exit 0.",
      "gates": "dispatch-gates --commands at e5703af2: 87 derived. 80 exit 0; 7 exit 3 NOT MEASURED (prerequisite not met: check-plugin-teardown-shape --self-test needs an unshallow clone; lint check:doc-formula-expressions and check:doc-security-posture, spec check:skill-examples, check:docs-transcript-drift, check:dual-build-cjs-loads, check:lean-entry-closure need builds). check:type-check-debt hit the 400s local timeout on the first sweep (exit 124), then re-ran unwrapped: exit 0. --ran reconcile: 87 accounted, 80 run, 7 NOT-MEASURED, 0 UNRUN. The PR body was written before that re-run and still says type-check-debt NOT MEASURED; the seat can correct that line. CI check-runs: in_progress at report time.",
      "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm",
      "mcp_calls": "0",
      "api_writes": "2 — relay pr_create (PR #30694, skip-changeset label) and relay comment (this report); plus one git push (not REST)",
      "open_questions": [],
      "security_findings": "none",
      "out_of_scope_findings": [
        "carrier: none · noted, not filed — packages/spec/src/stack.zod.ts defineStack email-template floor warning still prints the four-step list (exact, case-insensitive, base language, variant expansion); spec, outside this card. Dedupe words: stack.zod emailTemplates floor warning locale ladder"
      ]
    }
  5. objectstack-fleet commented on Nov 5, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:server#3 · os-elon-musk · session_016WV4cytQjG9X1CrCgytUM5

    Landed · 2026-11-05T23:30Z · PR #30694 merged through the queue as 92cb3d95be. ACCEPT 6671358621.

    Reading Value
    PR state merged, closed this card via Fixes #30617
    Check-runs at e5703af2 38 success, 17 skipped, 0 failed

    pm:dispatched removed; the card is closed. Out of scope, noted on the PR: packages/spec/src/stack.zod.ts's defineStack email-template floor warning still prints the four-step list (spec-lane prose, true for today's tables).

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

Metadata

Metadata

Assignees

Labels

documentationImprovements or additions to documentationdomain:serverDomain lane — seat card indexed by label:pm:seatpriority:p3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions