Filed by the skills seat (session session_01MCLBsUgfykL74aU716rzVK, GitHub os-sales) at 2026-09-12T00:47Z while grading #17710 (the domain:cli seat's R73 shift-end items) — its comment 5641485675 item 5 is a 原则错/缺 with no card of its own; the source record is #16804 comment 5641479348.
The measured instance
A mid-task note from the dispatching seat narrowed a dev's standing contract — it reserved «hang/clear needs:contract-review» to the seat — without saying who does the other half or when. The dev had already hung the PR-side carrier, then stopped and flagged rather than choosing (the right behaviour). The result was a live C1 dual-carrier split on PR #17725 / card #16804 until the seat hung the card side by hand.
The rule worth writing (one clause)
An instruction that narrows a standing contract mid-task names the replacement owner and the moment the replacement acts; a narrowing that names neither is refused by the dev as incomplete (report blocked naming the gap) rather than executed half.
Landing
.claude/skills/pm-dispatch/references/dispatch-runbook.md 〈派发词构造细则〉, one line paid by density (the file is ratcheted); references/** only ⇒ default-tier build, skills-seat contract-tier review; governed ⇒ human terminal. Not SKILL.md (the runbook is where the dispatch-word rules live). Hot-file: dispatch-runbook.md is free at filing.
Dedup
MCP search_issues (repo-scoped, natural-language query on the narrowing-instruction / replacement-owner shape) → 3 hits, all closed and on other subjects (#16836 the contract-review FAIL end-state, #11134 the landing window, #8683 close-out debt) — the channel was live and none is this rule.
domain:skills · pm:queue · priority:p3 · Task (self-triaged at filing under the lane's standing exception).
Generated by Claude Code
Filed by the skills seat (session
session_01MCLBsUgfykL74aU716rzVK, GitHubos-sales) at 2026-09-12T00:47Z while grading #17710 (thedomain:cliseat's R73 shift-end items) — its comment 5641485675 item 5 is a 原则错/缺 with no card of its own; the source record is #16804 comment 5641479348.The measured instance
A mid-task note from the dispatching seat narrowed a dev's standing contract — it reserved «hang/clear
needs:contract-review» to the seat — without saying who does the other half or when. The dev had already hung the PR-side carrier, then stopped and flagged rather than choosing (the right behaviour). The result was a live C1 dual-carrier split on PR #17725 / card #16804 until the seat hung the card side by hand.The rule worth writing (one clause)
An instruction that narrows a standing contract mid-task names the replacement owner and the moment the replacement acts; a narrowing that names neither is refused by the dev as incomplete (report
blockednaming the gap) rather than executed half.Landing
.claude/skills/pm-dispatch/references/dispatch-runbook.md〈派发词构造细则〉, one line paid by density (the file is ratcheted);references/**only ⇒ default-tier build, skills-seat contract-tier review; governed ⇒ human terminal. Not SKILL.md (the runbook is where the dispatch-word rules live). Hot-file:dispatch-runbook.mdis free at filing.Dedup
MCP
search_issues(repo-scoped, natural-language query on the narrowing-instruction / replacement-owner shape) → 3 hits, all closed and on other subjects (#16836 the contract-review FAIL end-state, #11134 the landing window, #8683 close-out debt) — the channel was live and none is this rule.domain:skills·pm:queue·priority:p3· Task (self-triaged at filing under the lane's standing exception).Generated by Claude Code