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