Repository navigation
pm-dispatch(batch): a slot is a RUNNING subagent or card thread — waiting PRs occupy none; the round report counts running and un-landed separately; a soft ceiling of 5 accepted Tier H PRs awaiting a human - #27292
Conversation
…ing PRs occupy none - SKILL.md `batch:<n>` row: a countable definition — one slot = one subagent (`Agent`, `create_session`) or card thread running now; the report landing releases it; four waiting states (awaiting a human approval, in the merge queue, awaiting CI, awaiting a ruling) occupy none; `⛔ 只读不豁免` stays; p0 points at the `priority:p0` row instead of restating it. - dispatch-runbook 卡线程: hand-back releases the slot at once; the thread stays open through review occupying none; a REWORK patch round occupies one. - execution-duties 候选与批次: `batch` waiting points at the one definition; one new line for the soft ceiling (accepted Tier H PRs awaiting a human approval > 5 ⇒ no new Tier H dispatch), paid by the sub-issue-candidate line whose content lives at L11 + L41–42 and 〈Epic 子树车道〉. - seat-lifecycle 轮次报告: the report carries one fixed line 「在跑 N / batch · 待落地 PR M」, paid by the 坐席 `batch` default line whose content lives in the SKILL.md `batch` row and 收班 L41. Every file stays at its ceiling (319 / 188 / 245 / 96); every edited prose line is ≤120 bytes; the `batch` row is 324 B under the 341 B pin. Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QSeKYmhU5KEj1nukYhp1Tg
|
domain:skills#2 · os-justin · session_01QSeKYmhU5KEj1nukYhp1Tg Contract reviewServed-tier: Read at 2026-10-28T14:49Z by the ① Derived judgments
② Semver level
③ Boundary flags
④ Design judgment
Implemented-by: VERDICT: PASS |
|
domain:skills#2 · os-justin · session_01QSeKYmhU5KEj1nukYhp1Tg 维护者速读 — 席位终稿 · PR #27292 · head
|
Fixes #27117
Clause-②: no
Metadata-protocol: none
维护者速读
.claude/skills/pm-dispatch/SKILL.mdL60(batch 行,324 B,表行 pin 341);references/execution-duties.mdL20–21(指向唯一定义 + 新软顶行,付账删掉的是旧 L12 sub-issue 候选行);references/seat-lifecycle.mdL70(两数行,付账删掉的是旧 L15 坐席默认行)。pnpm check:pm-skill-ratchet—— 四个文件各印一行headroom 0,SKILL.md 最宽表行仍印 341;grep -c 在飞 .claude/skills/pm-dispatch/SKILL.md由 8 变 7(少的那一行就是 batch 行)。What changes
Four protocol files, every edit in place; no file gains or loses a line, no prose line exceeds 120 bytes, no re-wrap used as currency. Bytes are
wc -cwithout the newline. Base0d45c0e7, head90502cd4.SKILL.mdL60, thebatchrowAgent,create_session) or card thread running now; the report landing releases it; the four waiting states (等人批 · 在合并队列 · 等 CI · 等裁决) occupy none;dev、复核、普查皆计,⛔ 只读不豁免stays; the word 「在飞」 leaves the row; p0 is pointed at thepriority:p0row (p0 见 priority:p0 行), not restated.references/dispatch-runbook.mdL137references/execution-duties.mdL21 → L20batch等待不填槽,四态见 SKILL.md 该行;同批独立按文件面不相交判,⛔ 不按包或 check 名。」 — waiting points at the one definition; the 「封顶全部子代理」 half now lives in thebatchrow (dev、复核、普查皆计); 「不按包、不按 check 名」 is spelled 「不按包或 check 名」 to fit.references/execution-duties.mdL21 (new)references/execution-duties.mdL12 (deleted, pays the line above)pm:epic父单的子树除外。」 — home: the same file L11 (sub-issue inherits the parent's first touch) and L41–42 (a derived sub-issue is dispatched directly, bypassing triage);.claude/agents/os-dev.md基本规则 3 「归挂不散落 … sub-issue(自动进派发池)」; the epic exclusion lives inseat-lifecycle.md〈Epic 子树车道〉 (label:pm:epic即父子保留全集,域座位不取;其它 PM 候选获取跳过整棵子树).references/seat-lifecycle.mdL70 (new)references/seat-lifecycle.mdL15 (deleted, pays the line above)batch默认 3 起步;前任口径(串行、N、「不开新卡」)维护者对本会话重述才生效。」 — home: thebatchrow's default column (默认3) and the same file's 收班 line (now L40) 「派发口径失效,简报 ⛔ 不列作继承裁决」, which is the same rule from the outgoing side.The p0 clause is untouched: the
priority:p0row (SKILL.md L119) and execution-duties L24–26 as rewritten by PR #27266 stay byte-identical; thebatchrow only points at that row.Tests
No package is touched (
.claude/**only), so no build closure, no package test or typecheck, no changeset (skip-changesetdeclared atpr_create), and no ablation (protocol text, not tested behaviour). The gates are the test; see Verification.Acceptance notes
dispatch-gates --commandsderives 20 families for this diff, not 7 —check:pm-half-statesandcheck:pm-dispatch-gatesare NOT derived (they are CI's), while 15 further families that read.claude/**are (closing-keyword parity, comment-mask corpus, governed queue guard self-test, harness-current self-test, doc-formula-expressions, agent-test-spelling, cross-package-test-inputs, doc-authoring, driver-memory-census, gitlink-declared, nul-bytes, pm-expected-skips, pm-governed-merges, refd-timer-probe, watch-hint-literal). All 20 were run;check:skill-frame-freshnessis local-only and was run beyond the derivation.execution-duties.md并行纪律 ③ 「兄弟卡落地后再合一次」 sits beside AGENTS.md §10 「after the PR is open, merge main only on a GitHub-reported conflict, a main-caused CI red or a queue removal」 and runbook L223–225's four-sentence warning that says the same as AGENTS.md; the two readings differ on whether a sibling landing by itself triggers a merge.origin/mainmoved twice during this run (0d45c0e → abba2c4 → e9c88f7); the derivation reports none of the moved paths as an input of this card, and none of the new commits touch the four edited files (checked beforepr_create).Verification
All exits captured by redirecting first (
cmd > log 2>&1; EXIT=$?), never after a pipe. Head90502cd4.Derived gates (20/20 run, 0 NOT-MEASURED, 0 UNRUN) and the five named families
Ratchet verdict lines for the four files
Verify lock (the one build, for the refused gate's prerequisite)
Acceptance greps on head:
sed -n 60p SKILL.md | grep -c 在飞→ 0 (file-wide line count 8 → 7, the control);sed -n 137p dispatch-runbook.md | grep -c 或→ 0;check:nul-bytesOK over 22042 files; no raw control bytes in the four files.Generated by Claude Code