From a879b1e57393fc0b6fe7792f57e0e7a4058daff2 Mon Sep 17 00:00:00 2001 From: os-zhuang Date: Tue, 25 Aug 2026 03:50:52 +0000 Subject: [PATCH] =?UTF-8?q?pm-dispatch:=20triage=20fires=20run=20to=20empt?= =?UTF-8?q?y,=20quality=20held=20by=20=E2=89=A45-card=20same-family=20batc?= =?UTF-8?q?hes=20(#11972)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Maintainer ruling 2026-08-25 supersedes the per-round 3–5-card budget and the 15–20-per-batch parameter. Scheduled finding triage now clears every ungraded card per fire; the rubber-stamp risk is controlled by batch granularity (≤5 same-family cards, read one by one), not by capping the round total. A run of several hours is acceptable; a fire that cannot finish resumes next fire, with the off-label discipline of graded cards as the checkpoint. The `finding` >15 concentrated-round trigger is absorbed: with run-to-empty as the steady state a count above the old threshold is no longer a mode switch but an inflow alarm — it counts only once it survives consecutive COMPLETED run-to-empty fires, which is what separates inflow above triage capacity from an outage spike that the next fire clears. Ceilings paid by consolidation, no registry raised: SKILL.md 1008 → 1005 (the superseded budget and trigger prose funded the new text), dispatch-runbook.md unchanged at 274/274. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01RMTpSRF5CjMmQBFfPtPCwJ --- .claude/skills/pm-dispatch/SKILL.md | 25 ++++++++----------- .../references/dispatch-runbook.md | 16 ++++++------ scripts/pm/check-skill-line-ratchet.mjs | 8 +++++- 3 files changed, 26 insertions(+), 23 deletions(-) diff --git a/.claude/skills/pm-dispatch/SKILL.md b/.claude/skills/pm-dispatch/SKILL.md index 78388d5858..78fafc7392 100644 --- a/.claude/skills/pm-dispatch/SKILL.md +++ b/.claude/skills/pm-dispatch/SKILL.md @@ -423,20 +423,17 @@ sanitizer 截断的卡不 常就是根因,并在派发前改变卡的范围与域标签。 **发现分诊轮(队列的出水口)。** `finding` 恒 = 待首次定级、定级即离标(维护者 2026-08-13 意 -见;换标与 -hold 评论纪律见状态模型,hold 重验只在 `Restart-when:` 命中时发生 —— closed 形态随每轮解锁 -扫描,可 -执行判据由分诊 Routine 每日一个低频子轮批量执行(十几条一行判据逐小时跑是浪费,每日即 -消化节奏),命中 -同 closed 命中一个待遇:回队前 ref 重验再回队;⛔ 不设逐卡豁免评论)。**首触定级每轮 -跑**:预算 3–5 张、 -优先于一切旧卡重验,先过时前提检查再三选一 —— 晋级 / 关闭 not planned(维护者可否决重 -开,PM 不等批准) -/ hold;**判级发生在这里,不在立单时**。车道座位可附证据/前提重验,⛔ 不定级不改标(唯一 -例外:skills 车 -道 finding 由该席自分诊,全仓轮跳过)。**自动集中轮**(常设授权,维护者 2026-08-13):`finding` >15 -⇒ 下 -一 fire 跑域分批集中轮,sweep 打包晋级五条照用;原话、批量参数与五条细则见 +见;换标与 hold 评论纪律见状态模型,hold 重验只在 `Restart-when:` 命中时发生 —— closed 形态随 +每轮解锁扫描,可执行判据由分诊 Routine 每日一个低频子轮批量执行(十几条一行判据逐小时 +跑是浪费,每日即消化节奏),命中同 closed 命中一个待遇:回队前 ref 重验再回队;⛔ 不设逐卡 +豁免评论)。**每 fire 跑到清空**:⛔ 无每轮总量预算,当轮定完全部未定级 finding、优先于旧 +卡重验;质量靠**每批 ≤5 张同族卡逐张读**,不靠封顶总量(维护者 2026-08-25,原话不译): +「单轮跑数小时没关系啊。不读卡的批量盖章 可以通过每批5张这种约定来解决」 +—— 单轮数小时是可接受形态;窗口耗尽未跑完的,下一 fire 从断点续跑(定级即离标,⛔ 不重 +读,标签纪律即断点)。每批先过时前提检查再三选一 —— 晋级 / 关闭 not planned(维护者可否 +决重开,PM 不等批准)/ hold;**判级发生在这里,不在立单时**。车道座位可附证据/前提重验,⛔ +不定级不改标(唯一例外:skills 车道 finding 由该席自分诊,全仓轮跳过)。域分批与 sweep 打包晋 +级五条照用(常设授权,维护者 2026-08-13);原话、每批约定与积压告警见 `references/dispatch-runbook.md`。 **`pm:retriage` 重判每 fire 高优先处理**:按异议评论的证据与建议定级重裁,维持或改判皆由本 座位同笔摘标(挂标归异议席,见状态模型)。 diff --git a/.claude/skills/pm-dispatch/references/dispatch-runbook.md b/.claude/skills/pm-dispatch/references/dispatch-runbook.md index fb86212ab2..44983b5cbd 100644 --- a/.claude/skills/pm-dispatch/references/dispatch-runbook.md +++ b/.claude/skills/pm-dispatch/references/dispatch-runbook.md @@ -22,7 +22,7 @@ sweep 周期的半状态是治愈环自身的缺陷,不是库存;正文自报 P0/data-integrity 的命中即走本 节紧急通道;机械年龄告警在半状态巡查脚本(细节以脚本头为权威)。 -## 发现分诊轮细则(维护者 2026-08-13) +## 发现分诊轮细则(维护者 2026-08-13 / 08-25) 出处(逐字,未译),同日三段:「Finding 很多,是否建议集中分诊」…「按照你的建议」= 域分 批集中轮常设授权;「还有这个积压时常态,是否应该优化。」= 结构修复令;「积压数字本身有误 @@ -33,13 +33,13 @@ sweep 周期的半状态是治愈环自身的缺陷,不是库存;正文自报 P0 → `pm:on-hold`(域标签保留;hold 评论照既有纪律带日期/理由/具名重启条件,维护者裁 vs 座位定级的出处写进评论,⛔ 不设第二个标签区分);修法是**状态转换,不是豁免评论**(双 态混编曾让健康 hold 顶红裸计数、藏住未定级堆;逐卡豁免评论机制已废弃,⛔ 不复活)。 -- **首触定级补遗**:零定级评论的卡优先 —— 未定级卡前提准确性半衰期以天计,首触延 - 迟是单卡最大成本;旧 hold 重验不占预算;关闭 not planned 附理由并列入轮次报 - 告;立单 dev 只有局部视野,照实立单不压级。 -- **自动集中轮批量参数**:15–20 张、同族卡同上下文读;常设授权,⛔ 不逐次请示。 - **sweep 打包晋级五条**(维护者 2026-08-07 批准):同类才打包(全部命中同一判 - 据);逐项清单(落点 | before | after)是 PR 正文必备件;N 项之外零改动且 PR 自 - 证;范围外发现照旧单开;sweep 卡是认领对象,成员单保持标签但不再是可派发候选。 +- **首触定级补遗**:零定级评论的卡优先 —— 未定级卡前提半衰期以天计,首触延迟是单卡 + 最大成本;关闭 not planned 附理由并列入轮次报告;立单 dev 只有局部视野,照实立单不压级。 +- **每批约定**:≤5 张同族卡、同上下文逐张读(维护者 2026-08-25,取代 15–20/批);常设授权,⛔ + 不逐次请示。**sweep 打包晋级五条**(维护者 2026-08-07 批准):同类才打包(全部命中同一判 + 据);逐项清单(落点 | before | after)是 PR 正文必备件;N 项之外零改动且 PR 自证;范围外发现照 + 旧单开;sweep 卡是认领对象,成员单保持标签但不再是可派发候选。 +- **积压告警**(旧 >15 触发的去处):连续 COMPLETED 清空 fire 后仍 >15 ⇒ 入流 > 吞吐,报维护者。 ## 同趟成员卡写侧打包(维护者 2026-08-16 限流裁定的对价) diff --git a/scripts/pm/check-skill-line-ratchet.mjs b/scripts/pm/check-skill-line-ratchet.mjs index 44f701f752..e3bf812ece 100644 --- a/scripts/pm/check-skill-line-ratchet.mjs +++ b/scripts/pm/check-skill-line-ratchet.mjs @@ -168,7 +168,13 @@ export const CEILINGS = new Map([ // state-table rows and the clause-② review-chain bullets sank to the two new // references below, and the report-contract JSON is single-sourced from the // dev-agent definition. Landed count, headroom 0, same convention. - ['.claude/skills/pm-dispatch/SKILL.md', 1008], + // Lowered 1008 → 1005 by the run-to-empty triage ruling (maintainer + // 2026-08-25): the per-round 3–5-card budget and the `finding` >15 + // concentrated-round trigger both left the 发现分诊轮 paragraph, and the + // ≤5-same-family batch convention that replaces them costs less than they + // did. Landed count, headroom 0, same convention (lowering is always + // legitimate). + ['.claude/skills/pm-dispatch/SKILL.md', 1005], // Raised 223 → 244 by the triage reading-cost card (maintainer ruling // 2026-08-20, quoted in the raising PR): three mandated conventions land in // the runbook's triage sections. Landed count, headroom 0, same convention.