Skip to content

Commit 0bc46c6

Browse files
docs(pm-dispatch): re-key the four remaining 规则层 / 事实层 lines to Tier H / Tier S (#19820)
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) - before 「- 改动 >5000 行(含生成物)同换终局四件套,⛔ 无事实层例外;读数 = PR additions+deletions。」 - after 「- 改动 >5000 行(含生成物)同换终局四件套,⛔ 无 Tier S 例外;读数 = PR additions+deletions。」 - 事实层 here meant Tier S: the size limb has NO Tier S exception — the rule the queue guard applied to PR #19803 today; only the word moved. 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 #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](https://claude.ai/code/session_01Wnstp2kTth7sGXfr8fXypc)_ Co-authored-by: Claude <noreply@anthropic.com>
1 parent c1dfa52 commit 0bc46c6

3 files changed

Lines changed: 4 additions & 4 deletions

File tree

‎.claude/skills/pm-dispatch/SKILL.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -184,8 +184,8 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报
184184
- 路径面用 `get_files` 取,⛔ 不看报告自述;动手之前先分,不是事后对照。
185185
- governed 面统一定义:`docs/adr/**` + `.claude/**`(全量)+ `skills/**` + `docs/NORTH-STAR.md`。
186186
- governed 面同含 `AGENTS.md` + `CLAUDE.md`;`GOVERNED_REPOS` 各仓同治理待遇,执行席恒随落地仓车道。
187-
- 路径面命中规则层 ⇒ ACCEPT 换终局四件套,混合 diff ⛔ 不按比例判;要拆让 dev 单独开 PR。
188-
- 改动 >5000 行(含生成物)同换终局四件套,⛔ 无事实层例外;读数 = PR additions+deletions。
187+
- 路径面命中 Tier H ⇒ ACCEPT 换终局四件套,混合 diff ⛔ 不按比例判;要拆让 dev 单独开 PR。
188+
- 改动 >5000 行(含生成物)同换终局四件套,⛔ 无 Tier S 例外;读数 = PR additions+deletions。
189189
- ① 复核结论照常写在 issue 上;技能面 hunk 须由契约复审档的席复核,档外席先交 skills 席。
190190
- ② PR 留给维护者看得见地悬着;终局两条:人工直合即审核记录;授权批准 ⇒ 席位落地。
191191
- 看得见 = ACCEPT 同笔挂 `needs-user-decision` + 贴终稿「维护者速读」评论;①仍是审核记录。

‎.claude/skills/pm-dispatch/references/landing-operations.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
- 确认 MERGED 要两个读数:每轮同时读队列分支与 `origin/main`。
5656
- 契约复核 PASS 落地的 PR 到窗口时已 ready 且 auto-merge 在挂,见 `contract-review.md`。
5757
- 窗口自身权责不变:跟到 MERGED、踢出处置、落地后对账。
58-
- 转 ready/入队前跑 `check-governed-merges.mjs --pr N`:受管面照两层;>5000 行(含生成物)照规则层。
58+
- 转 ready/入队前跑 `check-governed-merges.mjs --pr N`:受管面照两层;>5000 行(含生成物)照 Tier H。
5959
- 受管路径全在 `.claude/**` 者 Tier S:席内达档复核过落地前检三条即转正式入队。
6060
- Tier H(其余受管面)者:四件套留 draft 等人批,⛔ 不翻正式不入队;获授权批准后认领席落地。
6161
- ⛔ 两层不由席位批准;清标即落地同受此闸,漏判会被队列守卫在 merge group 里拒收。

‎.claude/skills/pm-dispatch/references/lanes/skills.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
## 常设承诺
1515

1616
- 四维分析先于派发与复核。
17-
- 规则层受管 PR 恒 draft 等维护者的字;flip 或 arm 前跑 `check-governed-merges --test` 带路径。
17+
- Tier H 受管 PR 恒 draft 等维护者的字;flip 或 arm 前跑 `check-governed-merges --test` 带路径。
1818
- 档位从 `--tier` 推导引用;pm-dispatch 根恒契约复审档;条款②闸门照现行。
1919
- 额度耗尽豁免的地板是默认判断档,⛔ 不再往下。
2020
- 棘轮逐行付账,⛔ re-wrap 筹行;砍点逐条核幸存,被砍内容若在别处无家,砍掉就是丢规则。

0 commit comments

Comments
 (0)