Repository navigation
Commit 1f49209
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
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
| 21 | + | |
| 22 | + | |
21 | 23 | | |
22 | 24 | | |
23 | 25 | | |
| |||
177 | 179 | | |
178 | 180 | | |
179 | 181 | | |
180 | | - | |
181 | 182 | | |
182 | 183 | | |
183 | 184 | | |
184 | 185 | | |
185 | | - | |
186 | 186 | | |
187 | 187 | | |
188 | 188 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
54 | 54 | | |
55 | 55 | | |
56 | 56 | | |
57 | | - | |
| 57 | + | |
58 | 58 | | |
59 | 59 | | |
60 | 60 | | |
| |||
0 commit comments