Skip to content

#1342 ruling item 4 is undelivered: no guard pins that crm_case.critical and crm_task.urgent render as different words — and the existing term guard cannot express that rule as built #1802

Description

@huangyiirene

Blocked-by: #1874

Split out of #1342 on landing PR #1801, per the seat ruling on that card (option B). ⛔ Not a defect in PR #1801 — items 1–3 of the maintainer's ruling are delivered and verified there. This card carries the fourth.

What the ruling asked for, verbatim

Maintainer ruling on #1342, 2026-08-31 (决裁批 #19 ⑤, 5481124881), item 4:

pins:四语言 × 两对象的顶级值渲染各不塌缩(zh-CN 新增的区分入守卫,防回归)

⚠️ The operative clause is 入守卫,防回归 — put the distinction into a guard, against regression. It is not a statement that four locales happen to agree; it asks for a test that pins the non-collapse.

⭐ That reading was itself a finding. The dispatching seat assumed "four-locale pins" meant cross-locale consistency, flagged the assumption as falsifiable, and the dev falsified it — which is what turned this from a delivered item into a fenced one.

Measured state today (d01d27b3)

en      Critical / Urgent
es-ES   Crítica  / Urgente
ja-JP   重大      / 緊急
zh-CN   严重      / 紧急      ← PR #1801 moved this half

The four locales now do all distinguish the two values. What does not exist is anything that keeps it that way.

  • ⛔ Nothing under test/ asserts non-collapse of the two top values in any locale.
  • 紧急 under test/ returns exactly one line — test/automation-docs-coverage.test.ts:233, the task-side task_urgent_alert name.
  • ⛔ Nothing compares the Chinese docs prose against the pack in either direction. Proved by ablation, not assumed: content/docs/administration/profiles.zh-Hans.mdx was mutated back to 紧急工单 with the pack left at 严重 (mutation proved on disk by blob hash before the run, restored under an EXIT trap after, git diff HEAD empty) — and the full suite stayed green, 165 files / 3453 passed, byte-identical to the unmutated run.

⇒ the sweep PR #1801 performed was owed to the ruling and to AGENTS.md Documentation discipline rule 6, ⛔ not to any gate. That is precisely the hole item 4 was written to close, and it is still open.

⭐ The design finding — the obvious home does not fit

test/docs-object-term-consistency.test.ts looks like where this belongs: it already derives a Chinese term from the pack and bans retired spellings. It cannot express this rule as built.

Its retired-spelling scan runs over every zh page, over the pack itself, and over every ledger under test/. So adding 紧急 to crm_case's retired list goes red on:

  • the pack — crm_task.priority.urgent is legitimately still 紧急;
  • the twelve task-side documentation sites, all correct;
  • test/automation-docs-coverage.test.ts:233, also correct.

⛔ A term that must die on one object and live on another is not expressible in that guard without redesign. crm_case's pins entry is currently empty. ⇒ this is a real design job, ⛔ not a one-line addition, which is why it is a card rather than a rider.

⛔ Why this is pm:blocked rather than pm:queue

The deliverable is a file under test/**, which is epic #1579's declared territory. This lane's rule is that the fence is crossable only by a maintainer or director ruling that names a card.

⚠️ This card has an unusually strong claim to that, and the seat is deliberately not deciding it:

⇒ ⛔ not self-authorised. One sentence from the maintainer or the director seat unblocks it.

⭐ Note the relationship to #1730, already in the decision box: that card asks whether a seat ruling can authorise a test/** crossing. This one asks whether an older maintainer ruling prescribing a guard does. They are the same question at two different strengths, and answering the pair settles the class.

Scope when it unblocks

Refs #1342 (the ruling and items 1–3) · PR #1801 (what landed) · #1730 (the same fence question at seat strength) · #1579 (the epic that holds test/**).


Generated by Claude Code

Activity

  1. claude commented on Sep 11, 2026

    @claude
    Contributor

    Half-state repair — R61 board audit (repo:hotcrm seat, session_0132iDHq4FLW2zS9VPXqbf9f, 2026-09-11T01:4xZ)

    No machine-readable line existed. The card's own body already names the blocker in prose — the deliverable is a file under test/**, epic #1579's declared territory, and the body concludes "⛔ not self-authorised. One sentence from the maintainer or the director seat unblocks it." That sentence is exactly the open question on #1874. Recorded canonically:

    Blocked-by: #1874
    

    ⭐ This makes #1802 the sixth card released by one answer on #1874 (with #1873 · #1789 · #1773 · #1763 · #1598, and #1883 partially). ⚠️ #1730, which this body cites as the sibling fence question, is closed completed — so #1874 is now the only live carrier of that question.

    ⛔ Nothing about the fence was decided here; this only makes an already-stated dependency visible to the index.


    Generated by Claude Code

  2. objectstack-fleet commented on Sep 25, 2026

    @objectstack-fleet
    Contributor

    repo:hotcrm seat, session_01X8U3asekbiC7yWoEPWR4Dg · stock re-triage group 5 (maintainer-confirmed ten-card group; maintainer reply verbatim: 「同意」) · 2026-09-25T02:43Z

    Blocked-by: #1874 is a dead pointer (404). The authority this card rests on — #1342 and ruling comment 5481124881 — is also 404, so the maintainer naming a new guard cannot be cited, and new-gate-defaults-to-no applies.

    Closed not_planned

    Measured at 087b7c5: all four locales already distinguish the two values (Critical/Urgent · Crítica/Urgente · 重大/緊急 · 严重/紧急), and both zh-CN sites carry the #1342 comment. Reopen if the maintainer re-affirms item 4. The landing would then be a new business-fact pin file under test/.


    Generated by Claude Code

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions