From 077c86a4154fe3fa5c88644b9ef4bf1f92f74425 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 2 Sep 2026 18:43:48 +0000 Subject: [PATCH] docs(pm-dispatch): make the stop-condition clause carry the executability criterion MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The dispatch-word construction section told PM seats to ask for evidence rather than a verdict, but said nothing about whether the addressee can execute the fence at all. A one-shot dev has no mid-run channel to ask on, so "report before acting" hands it a three-way choice — do and report / don't / decide alone — which is precisely what the author believed the fence had removed. The stop-condition bullet now merges the criterion into itself: a fence clause is executable by a one-shot dev only if the action it demands is terminal within the run, and the two executable rewrite forms follow with the reason they work (both close within one run). Criterion and templates sit in one bullet so neither can be copied without the other. The ratchet ceiling for the file goes 278 -> 280 at the landed count, with the maintainer ruling quoted verbatim and untranslated above the entry. Prose, not a table row: the widest-table-row pin stays at 0. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01LraLgQVGq8egUwfYZpbYt1 --- .../pm-dispatch/references/dispatch-runbook.md | 9 ++++++--- scripts/pm/check-skill-line-ratchet.mjs | 12 +++++++++++- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/.claude/skills/pm-dispatch/references/dispatch-runbook.md b/.claude/skills/pm-dispatch/references/dispatch-runbook.md index 34cdbe166b..f871aba95e 100644 --- a/.claude/skills/pm-dispatch/references/dispatch-runbook.md +++ b/.claude/skills/pm-dispatch/references/dispatch-runbook.md @@ -235,9 +235,12 @@ monitor 按自己的 deadline 触发;身份 = 三元组 `(issue, 分支, PR head `status: 'planned'` = 有 carrier、零消费者,`authorHint` 就是证词; 不读账本的派发让 dev 交出解析通过、校验通过、加载成功而**渲染为零**的元数据 —— 绿收据背书的假修复比诚实的缺陷更贵,代价是一次文件读对一整轮 agent 运行。 -- **停条件写法: - 要证据,不要判决**。派发令里的前提/停条件检查必须要 dev 回报**证据面**(搜了什么、 - 找到什么),分叉归 PM 判 —— 写成「发现消费者就停下」把判决权交回被停的一方。 +- **停条件写法:要证据不要判决,且动作须在本轮内终局**。前提/停条件检查要 dev 回报**证 + 据面**(搜了什么、找到什么),分叉归 PM 判 —— 写成「发现消费者就停下」把判决权交回 + 被停的一方。可执行性判据:一次性 dev 无中途提问的通道,「先问再继续」预设了不存在的 + 续接,把照做并报告/不做/自行裁断三选一(非二选一)整个交给本想被围住的人。两种改写 + 都在一轮内闭合:允许做 ⇒「只做**最小**编辑,并在报告里单列该判断与回退方式」;不许 + 做 ⇒「⛔ 不要动该文件,让门禁红着并在报告里点名该站点」。 - **派发那刻现取、随派发词下发的两份读数**(条款主文在主文件; 判据同一:PM 已有的读数下发一次,⛔ 不让 N 个 dev 各重跑同样贵的 GraphQL 读): ① **门禁清单**单班之内即过期;全 farm 归 CI 跑一次,⛔ 不让 dev 枚举全 farm; diff --git a/scripts/pm/check-skill-line-ratchet.mjs b/scripts/pm/check-skill-line-ratchet.mjs index 395c6a595f..ae6c58d71a 100644 --- a/scripts/pm/check-skill-line-ratchet.mjs +++ b/scripts/pm/check-skill-line-ratchet.mjs @@ -209,7 +209,17 @@ export const CEILINGS = new Map([ // one ruling sized to the merged end-state of the three stacked PRs on this file. The +4 is // the measured residual of the ⑦-method section after compression to its reasoned floor and // real-deletion cuts were exhausted; re-wrap funding was refused per the 2026-08-17 rule. - ['.claude/skills/pm-dispatch/references/dispatch-runbook.md', 278], + // 278 -> 280 (maintainer ruling, 2026-09-02, live PM chat with the director seat, replying to + // decision batch #4 in which this card was item 2 — verbatim and untranslated: + // 「13973 帮我综合分析,并参考主流平台的方案,并给我解释为什么不能都用日期类型。其他同意」 + // — 「其他同意」 adopts option A): the stop-condition bullet becomes the MERGED bullet, carrying the + // executability criterion — a fence clause is executable by a one-shot dev only if the action it + // demands is TERMINAL within the run — plus the two executable rewrite forms, so neither can be + // copied without the other. Prose, never a table row: the widest-table-row pin below stays at 0, + // which is what forecloses the compact two-row table the card and its triage both used. Funding + // the growth by deleting sibling rationale was refused by the same ruling (option D). Landed + // count, headroom 0, same convention. + ['.claude/skills/pm-dispatch/references/dispatch-runbook.md', 280], // Whole-text restructuring round (maintainer ruling 2026-08-23, Q1 = A): // mechanism detail extracted from SKILL.md — the four long state-table rows // (state-machine.md) and the clause-② review-chain operational detail