Skip to content

docs(pm-dispatch): re-key the four remaining 规则层 / 事实层 lines to Tier H / Tier S - #19820

Merged
huangyiirene merged 2 commits into
mainfrom
claude/issue-19146-tier-spellings-rekey
Sep 23, 2026
Merged

huangyiirene merged 2 commits into
mainfrom
claude/issue-19146-tier-spellings-rekey

Conversation

@objectstack-fleet

Copy link
Copy Markdown
Contributor

Fixes #19146

Clause-②: no

What this PR does

Re-keys the four remaining PM-charter lines that still spelled the retired 规则层 / 事实层 two-layer split to the register's own two tiers — Tier S (every governed path under .claude/**; the owning seat lands it through the queue on a ## Contract review PASS record) and Tier H (every other governed surface; draft until an authorized APPROVED review) — exactly as .claude/agents/os-dev.md :286–:287 already spells them since PR #19802 (4a12ac0c4). The wording model is ruling B on #19061 (comment 5770886272) as os-dev.md carries it; this delivery completes the remainder named by the seat's Release 5790724014 on the card. Vocabulary only: each rule's meaning is unchanged, and no line is added or removed in any file.

The four lines, before and after (bytes against the 120-byte cap)

  1. .claude/skills/pm-dispatch/SKILL.md :187 (118 B → 116 B)
    • before 「- 路径面命中规则层 ⇒ ACCEPT 换终局四件套,混合 diff ⛔ 不按比例判;要拆让 dev 单独开 PR。」
    • after 「- 路径面命中 Tier H ⇒ ACCEPT 换终局四件套,混合 diff ⛔ 不按比例判;要拆让 dev 单独开 PR。」
    • 规则层 here meant a Tier H path: one Tier H path hit switches ACCEPT to the terminal four-set; the mixed-diff clause is untouched.
  2. .claude/skills/pm-dispatch/SKILL.md :188 (111 B → 110 B)
  3. .claude/skills/pm-dispatch/references/landing-operations.md :58 (117 B → 115 B)
    • before 「- 转 ready/入队前跑 check-governed-merges.mjs --pr N:受管面照两层;>5000 行(含生成物)照规则层。」
    • after 「- 转 ready/入队前跑 check-governed-merges.mjs --pr N:受管面照两层;>5000 行(含生成物)照 Tier H。」
    • 规则层 here meant the Tier H terminal (四件套, a human merge); :59–:60 beside it already spell Tier S / Tier H.
  4. .claude/skills/pm-dispatch/references/lanes/skills.md :17 (113 B → 111 B)
    • before 「- 规则层受管 PR 恒 draft 等维护者的字;flip 或 arm 前跑 check-governed-merges --test 带路径。」
    • after 「- Tier H 受管 PR 恒 draft 等维护者的字;flip 或 arm 前跑 check-governed-merges --test 带路径。」

Line counts unchanged: SKILL.md 319 / 319 (headroom 0), landing-operations.md 101 / 101 (headroom 0), lanes/skills.md 32 / 33 (headroom 1). Widest edited line 116 B. The edit was applied by an anchor-counted replace (each old line asserted to occur exactly once, each new line read back exactly once, line count asserted equal), not by a regex tool's exit code.

Premise and concurrency, measured

  • H1 on origin/main 6eaa0f4a8: git grep -n -E '规则层|事实层' origin/main -- .claude/skills/pm-dispatch/ .claude/agents/ → exactly the four lines above, nothing else. After the edit: 0 hits on that surface, and the card's own acceptance grep (grep -rn 事实层 .claude AGENTS.md) → 0 hits.
  • The only remaining whole-tree hits are scripts/pm/check-governed-queue-guard.mjs :236 / :240, inside a verbatim maintainer-ruling quotation that the file's own header marks as reproduced rather than paraphrased — not a spelling of the retired split, not on this surface, not edited.
  • H3 at PR-open time: all 17 open PRs' file lists read over REST (PR chore: version packages #17076's 773 / 773 files paged to a short page) — none touches any of the three files.
  • Register: node scripts/pm/check-governed-merges.mjs --test on the three paths → GOVERNED — Tier S(席内达档复核落地), exit 3.

Landing — Tier S

.claude/** is on the register as Tier S. This PR is opened as a DRAFT and stays draft: the owning seat renders the ## Contract review record for the current head and lands it through the queue once every check is green. No seat approves it and no maintainer click is waited for. #19803 is not addressed here; it is cited only as the guard's reading of the size limb.

Gates at head 1282c7efc

1282c7efc = 8f7e56a6c (the four-line commit) merged with origin/main 0e06f3b5d; the three-dot delta vs origin/main is exactly the three files, +4 −4.

node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack --commands (no paths; changeset from the merge base) derived 20 families, the same list at 8f7e56a6c and at 1282c7efc. Every command was run on 1282c7efc with its exit captured before any pipe (stdout+stderr redirected to a file, the exit read on the next statement): 19 × exit 0, 1 × exit 3. Reconciliation --ran → 20 derived famil(ies) accounted for — 19 run, 1 NOT-MEASURED (1 DERIVED from a recorded exit 3), exit 0.

  • check:pm-skill-ratchet exit 0 — .claude/skills/pm-dispatch/SKILL.md is 319 lines (ceiling 319; headroom 0), widest table row is 342 bytes (pin 342; headroom 0); references/landing-operations.md is 101 lines (ceiling 101; headroom 0); references/lanes/skills.md is 32 lines (ceiling 33; headroom 1). Same readings before the edit at 6eaa0f4a8.
  • check:skill-frame-sync exit 0 — the one declared copy of the decision frame is internally coherent, 4 axes; the frame block (SKILL.md :241–:261) is untouched.
  • check:pm-skill-id-lint exit 0 (34 files clean) · check:nul-bytes exit 0 · check:doc-authoring exit 0 (16192 customer-facing strings clean) · check:pm-governed-prose exit 0 (2 surfaces name all 6 registered governed surfaces) · check:pm-expected-skips exit 0 (99 cases).
  • check:pm-governed-merges exit 0 (441 assertions) · check-governed-queue-guard.mjs --self-test exit 0 (279 cases) · check-harness-current.mjs --self-test exit 0 (26 cases) · check-closing-keyword-parity.mjs self-test 40 assertions, sweep OK (3 parsers agree on all 9 keywords) · check:watch-hint-literal exit 0 (71 declarations) · check:gitlink-declared exit 0 (36 assertions).
  • check-comment-mask-corpus.mjs exit 0 (7020 files, 0 disagree) · check:agent-test-spelling exit 0 (0 violations) · check:cross-package-test-inputs exit 0 (255 self-test cases; 29 packages, all declared) · check:driver-memory-census exit 0 · check:refd-timer-probe exit 0 (11 cases).
  • NOT MEASURED: pnpm --filter @objectstack/lint run check:doc-formula-expressions exit 3 = PREREQUISITE NOT MET — the workspace package @objectstack/formula is not built. This diff touches no package, so no ① build closure is owed, and that family's population (docs formula expressions) is disjoint from the three paths.

No package is touched: no package build or test, no verify-lock slot taken. skills/** (the published catalog) is untouched, so no whole-file / whole-package token readings are owed. No changeset: .claude/** publishes nothing from any package's files[] ⇒ skip-changeset.

维护者速读(草稿)

  • 改了什么:PM 派发技能(pm-dispatch)里还剩四行沿用已废弃的「规则层 / 事实层」两层叫法(SKILL.md 两行、落地操作一行、skills 车道一行),本 PR 把它们改成登记表现行的 Tier H / Tier S 词汇,与 os-dev.md 已落地的写法一致。只换词,不换规则:每条规则的意思、每个文件的行数都不变。
  • 为什么改:每个席位每轮都读这几行;词汇与登记表、AGENTS.md 第 14 条不一致,席位会按一个已不存在的分层去判断 PR 该怎么落地——例如把「无事实层例外」读成一条无人能对上号的例外。
  • 风险与代价(含回滚):零功能改动,不触任何发布包;派生门禁 20 族 19 绿、1 未测(formula 包未构建,与本 diff 无关,CI 会跑)。回滚即还原四行,无迁移、无数据影响。
  • 席位意见:(待席位填写)
  • 你要做的:无需操作;.claude/** 属 Tier S,由席位在契约复核 PASS 记录上入队落地。

Acceptance notes

  • noted, not filed: scripts/pm/check-governed-queue-guard.mjs :236 / :240 still carry 事实层 / 规则层 inside the verbatim maintainer-ruling quotation the file reproduces on purpose — immutable, and not a live instance of the retired split.

Generated by Claude Code

…H / Tier S

The PM charter still spelled the retired two-layer split (规则层 = rules layer,
事实层 = fact layer) on four lines while the register, AGENTS.md Prime Directive
#14 and .claude/agents/os-dev.md :286-:287 speak in the register's own two tiers:
Tier S = every governed path under .claude/**, landed by the owning seat on a
`## Contract review` PASS; Tier H = every other governed surface, draft until an
authorized APPROVED review.

Vocabulary only; each rule's meaning is unchanged and every file keeps its line
count (SKILL.md 319, landing-operations.md 101, lanes/skills.md 32):

- SKILL.md :187  路径面命中规则层 → 路径面命中 Tier H
- SKILL.md :188  ⛔ 无事实层例外 → ⛔ 无 Tier S 例外 (the >5000-line limb has no Tier S exception)
- references/landing-operations.md :58  照规则层 → 照 Tier H
- references/lanes/skills.md :17  规则层受管 PR → Tier H 受管 PR

Claude-Session: https://claude.ai/code/session_01Wnstp2kTth7sGXfr8fXypc
Co-authored-by: Claude <noreply@anthropic.com>
@github-actions github-actions Bot added size/xs documentation Improvements or additions to documentation labels Sep 23, 2026
@objectstack-fleet objectstack-fleet Bot added the skip-changeset PR has no user-facing published change; bypasses the changeset gate label Sep 23, 2026
@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

Contract review

Served-tier: CONTRACT_REVIEW_TIER
Head-sha: 1282c7efcaffbcd8f580246aff5830ec00983fcd

① Derived judgments

Rendered in-seat by the skills seat 1 session at the served tier the maintainer named (ruling record 5771798588; 「契约复审继续用 fable 不变」 5788482806 of this date). The contract is the card's remainder as Release 5790724014 named it, re-measured on 6eaa0f4a8 at the claim (5791519235).

  • (a) The diff — measured by this seat on a review worktree at this head against merge-base 0e06f3b5d: three files, +4 / −4, two commits (the four lines, then the ordered merge of origin/main). Four bullets change their tier vocabulary and nothing else: SKILL.md :187 「路径面命中规则层」 → 「路径面命中 Tier H」; :188 「⛔ 无事实层例外」 → 「⛔ 无 Tier S 例外」; references/landing-operations.md :58 「照规则层」 → 「照 Tier H」; references/lanes/skills.md :17 「规则层受管 PR」 → 「Tier H 受管 PR」. Each rule's predicate is unchanged — a Tier H path swaps ACCEPT for the 四件套; the size limb keeps NO Tier S exception (the guard refused PR chore(pm): the queue guard reads its record recognisers from record-recognisers.mjs; check-clause2-carriers.mjs is deleted #19803 on exactly that this morning); over 5000 lines takes the Tier H terminal; a Tier H governed PR stays draft — and the words now match the register (check-governed-merges.mjs: Tier S = .claude/**, Tier H = every other governed surface) and os-dev.md :286–:287. Correct.
  • (b) Accept set and public surface — none touched: no package, no schema, no published skill; Clause-②: no on the claim is right.
  • (c) Residual, measured at this head: grep -rn for 规则层 / 事实层 over .claude/skills/pm-dispatch/ and .claude/agents/ → 0 hits; the whole-tree control's two remaining hits sit inside the verbatim maintainer-ruling quotation in scripts/pm/check-governed-queue-guard.mjs :236 / :240, reproduced on purpose per Release correction 5773579070 — not a live instance. The card's acceptance line (0 hits for 事实层 under .claude) is met; Fixes #19146 is the right relation.
  • (d) Gates re-run by the seat at this head: check-skill-line-ratchet exit 0 (319 / 319, 101 / 101, 32 / 33; widest table row 342 / 342), check-skill-frame-sync exit 0 (the four-axis block :241–:261 untouched), check-skill-id-lint exit 0 (34 files), check-governed-prose exit 0, check-governed-merges --pr 19820 exit 3 GOVERNED Tier S (.claude/** ×3, 8 changed lines). The dev's union at this head: 20 derived families, 19 run exit 0, 1 NOT MEASURED on a prerequisite (check:doc-formula-expressions, no package touched), --ran reconciled exit 0 — read, not re-derived.

② Semver level

  • No published package changes; skip-changeset is the right declaration in this repository.

③ Boundary flags

  • The dev raised none (open_questions empty). Its one out-of-scope note — the guard's quoted ruling keeps the old words by design — is read and agreed: not a site, no card owed. Its deviations (the served model carried in the terminal report only, per AGENTS.md; two commits by the ordered merge; the NOT MEASURED formula family) are accepted as stated.

Implemented-by: claude/issue-19146-tier-spellings-rekey
Reviewed-by: session_01Wnstp2kTth7sGXfr8fXypc

VERDICT: PASS

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

Labels

documentation Improvements or additions to documentation size/xs skip-changeset PR has no user-facing published change; bypasses the changeset gate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

skills: re-key the three 事实层 = references/ spellings the Tier S ruling leaves false (os-dev.md :286–:287, landing-operations.md :27–:28, H48)

2 participants