docs(pm-dispatch): 收班 = 状态 flush + 看护显式移交 — decouple shift-end from in-flight-zero - #8453
Merged
Conversation
…n-flight-zero Define hot handover in seat-post-protocol.md: a seat may close out in minutes once per-card collection notes are posted, the seat post is current, and every in-flight item names its successor watcher (next seat by default; queued PRs go to the queue steward). Scope SKILL.md's 波次收工点 step 1 to session-internal in-flight zero so cloud cards no longer hold the seat, and soften the exit checklist's step 2 from zero-out to per-item disposition with hot handover as the fallback. Constraints kept binding in the text: an in-session create_trigger Routine gets no GitHub tools (not an escape hatch); the queue steward's authority stays landing-only (hot handover hands review to the next seat, never skips it). Cloud-session delivery is via a poke trigger bound to the session ID, not SendMessage direct (per dispatch-runbook). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01139NJ9Wg5pFeZi1Zh8WLg6
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
Contributor
Author
|
PM review: ACCEPT — skills seat (#7623), session
Completion note (this PR's dev agent did not return a report): it was terminated mid-task by the account-level Fable 5 limit, after opening this draft PR but before applying Merge path unchanged: stays draft, ADR-class — the maintainer lands it by hand. Generated by Claude Code |
This was referenced Aug 13, 2026
hotlong
marked this pull request as ready for review
August 13, 2026 13:51
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #8428
What
The skill text coupled shift-end to in-flight-zero (波次收工点 ① 收工点 = 在飞归零; the exit checklist's step ② demanded 在手工件清零). That coupling is right for subagent devs (they die with the session) but wrong for cloud cards and merge-queue tails — durable, GitHub-anchored processes that need a watcher, not a particular session. One slow L-size cloud card mid-verification held an otherwise-clean seat (and the maintainer) hostage. Maintainer complaint that prompted the card, verbatim and untranslated: 「你因为一个卡片没结束,每次我要等你好费时间,有没有更好的交接方案。」
Changes
references/seat-post-protocol.md: new principle bullet — 收班 = 状态 flush + 看护显式移交,⛔ 不等于在飞归零 (维护者 2026-08-13 拍板). Hot handover = three pieces, closable in minutes: ① per-card collection note (review criteria, landing steps, current state); ② seat post refreshed to now; ③ every in-flight item names its successor watcher — next seat by default, queued PRs to the queue steward. The exit checklist's step ② softens from zero-out to per-item disposition (能收则收,收不完走热移交 — never wait just to zero out).SKILL.md波次收工点 block: step ① scoped to 会话内在飞归零 (cloud cards no longer block; hot handover per the seat-post protocol reference). Zero net lines — SKILL.md stays at exactly 686, the ratchet ceiling.Constraints kept binding in the text
create_triggerRoutine gets no GitHub tools — explicitly ⛔ not an escape hatch (cross-referenced to the 座位 Routine 创建细则 section that records the platform fact).Deliberate deviation from the card's proposal
The card's point 2 said a successor reaches a running cloud session via cross-session
SendMessageby session ID. That is contradicted byreferences/dispatch-runbook.md: delivery uses a poke trigger bound to the session (create_triggerwithpersistent_session_id), andSendMessagedirect is not-reachable by design (维护者 2026-08-11 裁定). The landed text carries the corrected mechanism and points at the runbook.Verification
All six derived gate families green locally (
check:doc-authoring,check:doc-formula-expressions,check:nul-bytes,check:pm-skill-id-lint,check:pm-skill-ratchetat 686/686 headroom 0,check:skill-frame-sync);scripts/pm/dispatch-gates.mjsre-derivation over the changed paths surfaced no additional families. Region is disjoint from the one declared on #8433 (#8433 remains open; not addressed here).skip-changeset
.claude/-only diff — internal agent tooling, ships nothing user-visible, releases nothing.Merge path
ADR-class three-piece: this PR stays draft; ⛔ no auto-merge, no merge queue, no ready-flip by any AI seat — the maintainer lands it by hand.
Generated by Claude Code