Repository navigation
Commit 0bc46c6
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
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
184 | 184 | | |
185 | 185 | | |
186 | 186 | | |
187 | | - | |
188 | | - | |
| 187 | + | |
| 188 | + | |
189 | 189 | | |
190 | 190 | | |
191 | 191 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
55 | 55 | | |
56 | 56 | | |
57 | 57 | | |
58 | | - | |
| 58 | + | |
59 | 59 | | |
60 | 60 | | |
61 | 61 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
17 | | - | |
| 17 | + | |
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
| |||
0 commit comments