Skip to content

Commit 1f49209

Browse files
docs(pm-dispatch): patrol held hand-off PRs for the four-piece terminal and read the governed verdict whole (#31613)
domain:skills#2 · zhuangjianguo · session_01QsR2jT34CXs5fCn3BDirZw <!-- claude-projects-attribution: {"github_login":"zhuangjianguo"} --> _Requested by **Steedos** · [project thread](https://claude.ai/code/project/chan_018ETKaNwMZCNRYD7D8Q9Ubb?thread=cmsg_018ETKaNwMZCNRYD7D8Q9UbbRrUorU6VVbzenykhN9Sz4x)_ Fixes #31580 Clause-②: no Metadata-protocol: none ## 维护者速读 - 改了什么:pm-dispatch 执行席职责加一条每轮巡检(核本席所持终局四件套 PR 的四件)并点名读数器;落地步骤加一句「`check-governed-merges` 判定读全文,四件套照 SKILL.md」。 - 为什么改:规则本来就有,但席位截断读了判定、巡检也从不回看自己挂着的 PR,四个 Tier H PR 因此几小时不在您的待审列表里。 - 风险与回滚:只改两份席位文档,行数零净增;回滚即 revert 本 PR。 - 先看:`execution-duties.md` 第 21–22 行(新巡检与读数器);`landing-operations.md` 第 57 行(读全文条)。 - 两分钟验证:`pnpm check:pm-skill-ratchet`,预期 exit 0、两文件仍在上限 188 与 102。 - 需要你做的:无,席位落地(Tier S,待契约复审档记录)。 ## What changes - `.claude/skills/pm-dispatch/references/execution-duties.md` L21–22, beside the soft cap on held Tier H PRs (L20): every round, check the four-piece terminal on the current head of each PR the seat holds (seat record, `pm:awaiting-merge`, review request, final 维护者速读) and complete a missing piece in the same round; the reader is a local `node scripts/pm/check-half-states.mjs` (H43/H48, which read governed Tier H PRs only; an over-3000-line PR with no governed path the seat reads itself). - `.claude/skills/pm-dispatch/references/landing-operations.md` L57: the `check-governed-merges.mjs --pr N` step now says to read the verdict whole, never through `tail`/`head`, and to take the four pieces from SKILL.md (the verdict lists them only on the unlifted over-3000-line branch, `renderSizeLines`). Home: `execution-duties.md` holds the executing seat's own duties and already counts the PRs this line patrols (L20 soft cap). `seat-lifecycle.md`'s standby list says each item lives in its main section and is not copied there, so a new duty does not belong in that pointer list. Line payment (both files stay at their ceilings, 188 and 102; every line is 120 bytes or less, nothing re-wrapped): - Deleted `execution-duties.md` old L180 (an edited `.changeset/*.md` takes no `skip-changeset`; confirmation is the dispatch seat's record). Survivors: `.claude/agents/os-dev.md:300–301`, `landing-operations.md:14–16`. - Deleted `execution-duties.md` old L185 (`mcp_calls` naming a write tool means the report is refused). Survivors: `.claude/agents/os-dev.md:374`, `execution-duties.md:134–136`. - Dropped from `landing-operations.md` L57 the two tier clauses. Survivors: `.claude/skills/pm-dispatch/SKILL.md:203` (two governed tiers), `SKILL.md:187` (over 3000 lines takes the Tier H terminal). ## Tests No code changed. Reader measured on `main` 6b83ec2: - `node scripts/pm/check-half-states.mjs` (live sweep, about 6.5 min): finished with exit 0, 143 cards and 35 open PRs swept, H43 judged 3 governed open PRs and H48 judged 1, with no H43 or H48 finding today (the four PRs on the card were already fixed). - The H48 sentence for a Tier H PR with a seat ACCEPT and no label, from the exported `h48GovernedVerdictWithoutBrief` on a fixture: `open and GOVERNED on Tier H (1 changed file(s) on the register: skills/**×1), carrying a seat's **ACCEPT** verdict (newest one 2026-11-08T09:01:00Z), and no pm:awaiting-merge label. … Remedy: add pm:awaiting-merge.` The same PR with the label returns null. ## Acceptance notes - H43 and H48 read governed PRs only. A PR on the terminal only because it is over 3000 changed lines with no governed path is not covered by either row; for that one the seat reads its own PR's labels and `requested_reviewers`. - The live sweep reads the whole board. It needs no workflow (ruling #208 on #19491 stands), but it is a several-minute read, not a one-PR read. ## Verification <details><summary>Derived gates on 0466fc5 (17 derived + 1 roster), re-run on f62ee42 after the review rework</summary> All exit 0: check-closing-keyword-parity (plain and --self-test), check-comment-mask-corpus, check-harness-current --self-test, lint check:doc-formula-expressions, check:agent-test-spelling, check:cross-package-test-inputs, check:doc-authoring, check:driver-memory-census, check:gitlink-declared, check:nul-bytes, check:pm-governed-merges, check:pm-skill-id-lint, check:pm-skill-ratchet, check:refd-timer-probe, check:skill-frame-sync, check:watch-hint-literal, check:pm-settings-deny-roster. `dispatch-gates --ran`: 17 derived families accounted for, 17 run, 0 NOT-MEASURED. Rework head f62ee42 (contract review 6724388379 F1+F2): the same 18 commands all exit 0, `--ran` 17/17, 0 NOT-MEASURED; edited lines 118 B and 116 B, files still 188 and 102. </details> --- _Generated by [Claude Code](https://claude.ai/code/session_01QsR2jRATdrUHTttGiQshZA)_ --------- Co-authored-by: Claude <noreply@anthropic.com>
1 parent f447dc3 commit 1f49209

2 files changed

Lines changed: 3 additions & 3 deletions

File tree

‎.claude/skills/pm-dispatch/references/execution-duties.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
- 工作项面:卡片、裁决与分诊评论列的工作项逐条对树核验是否仍未完成,⛔ 不对卡核验。
1919
- `batch` 等待不填槽,四态见 SKILL.md 该行;同批独立按文件面不相交判,⛔ 不按包或 check 名。
2020
- 软顶:本席已验收等人批的 Tier H PR 逾 5 ⇒ 停派 Tier H,S/非受管照常,轮报列积压;两周复测。
21+
- 每轮按现 head 核本席终局四件套 PR:席位记录/`pm:awaiting-merge`/请审/终版速读,缺件同轮补。
22+
- 四件读数器:本地 `node scripts/pm/check-half-states.mjs` H43/H48 只读受管 H;超行无受管 PR 自读。
2123
- single-writer 路径 = `SINGLE_CLAIM_PATHS` 所枚举;共享其它路径是普通并发,后落地方解冲突。
2224
- 第 N 单派发前读 `scripts/pm/os-verify-lock.sh --status`:到达深度 ≥ `LOCK_DEPTH_HOLD`(= 2)即等。
2325
- 到达深度 = `queue N:` 行数 + 1(待派 dev 的运行算作到达);`state:` holder 与 `parked` 行不计。
@@ -177,12 +179,10 @@
177179

178180
- 你是记录在案的复核人:对 GitHub 核验,⛔ 不对报告的自述核验。
179181
- 逐项判据展开在 `references/review-checklist.md`,每份报告对着它过。
180-
- PR 改已有 `.changeset/*.md` ⛔ 不打 `skip-changeset`;确认件只认派发席记录(`landing-operations.md`)。
181182
- 绿色输出≠ 该绿证明了被测风险:拒收断言、全绿方向与时序、pin 翻转、边界后收益。
182183
- 触 `skills/**` 的 PR 加问整包价值密度:从整包加载的客户 agent 座位读,⛔ 不从作者座位读。
183184
- 超派发预算或小功能大扩写 ⇒ REWORK,⛔ 不因已经写好了放行。
184185
- 判决 ACCEPT:PR 评论 `## 席位核对`,清单结论+抽查读数+偏差,⛔ 不复述其叙事;卡留指针行。
185-
- `mcp_calls` 点名写工具(`settings.json` deny 清单 + `update_pull_request`)⇒ 拒收,⛔ 不带注放行。
186186
- 判决 REWORK:逐项反馈,同认领重派;补丁轮优先 SendMessage 续派原 dev;最多 2 轮,第三次升级。
187187
- 判决 ESCALATE:见〈升级与决策〉;熔断任一命中亦判,PR 暂停,答复前 ⛔ 不派下一轮。
188188
- 熔断三条:独立安全复审连续 2 轮不过;diff 超首次复核规模 2 倍;上轮修复引入新 HIGH。

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
- undraft 429 ⇒ 卡记 `resets at`,到点一次重试裸 op(`rest-channel.md`),⛔ 不重发评论、不报阻塞。
5555
- 落地遭分类器拒 ⇒ 停手、报维护者、卡上记命令与拒因;⛔ 不换拼法、不退回 ccr 绕过。
5656
- 落地评论 = 两个读数的探针表 + 一行状态变更(摘标/关卡/收口),⛔ 不复述 `## 席位核对`。
57-
- 转 ready/入队前跑 `check-governed-merges.mjs --pr N`:受管面照两层;>3000 行(含生成物)照 Tier H。
57+
- 转 ready/入队前跑 `check-governed-merges.mjs --pr N`,判定读全文 ⛔ 不 tail/head;四件套照 SKILL.md。
5858
- ⛔ 两层不由席位批准;清标即落地同受此闸,漏判会被队列守卫在 merge group 里拒收。
5959
- 挂 auto-merge 的同一动作里重测生成物漂移,⛔ 不复用更早的零;非零 ⇒ 按 A 的固定序。
6060
- ready + 全绿 ≠ 已入队:队列从不主动拉 PR,入队是显式动作。

0 commit comments

Comments
 (0)