diff --git a/.claude/skills/pm-dispatch/SKILL.md b/.claude/skills/pm-dispatch/SKILL.md index aa806662db..83b4400cee 100644 --- a/.claude/skills/pm-dispatch/SKILL.md +++ b/.claude/skills/pm-dispatch/SKILL.md @@ -344,8 +344,19 @@ issue 任何人不得认领** —— 那意味着分诊还没走到,不是「可 ②③ 只取 `updated_at` 早于 ~2 分钟的卡且不是可选项 —— 半标注卡是协议自己按设计生产的 (一次标签写入即把老卡打成半标注),只带路由或状态机其一的卡对两个视图同时不可见。 排除:`tracking`、`status:parked`(其正常形状恰是「带域标签无 pm-state」)、 -全部 `pm:seat` 贴、`qa-run` 记录(协议载体非工作);存量大时每轮限量 —— 新入卡①优先最新, -半状态治愈积压②③**最老优先、P0 嫌疑先行**,⛔ 优先最新不适用(细则见 runbook)。 +全部 `pm:seat` 贴、`qa-run` 记录(协议载体非工作);存量大时每轮限量 —— 半状态治愈积压 +②③**最老优先、P0 嫌疑先行**,⛔ 优先最新不适用(细则见 runbook)。 +**析取①的排空条款(与发现箱同构:指标 + 跑到清空 + 阈值;本总体另加排序一条)。 +首触定级每轮必做,跑到清空**:⛔ 无每轮总量预算,清得动就多清、清不动不欠; +窗口耗尽未跑完的,下一 fire 从断点续跑。裸卡单位成本高于 finding +(全文读 + 路由 + 定级 + 打 `type`),所以裸卡轮天然更长 —— 单轮数小时同为可接受形态, +⛔ 不是封顶总量的理由。**排序:队列每轮清空时最新优先,清不空的那一刻起改最老优先** +—— 最新优先只在入流 ≤ 吞吐时最小化首触延迟,积压下它按构造饿死队尾, +而队尾正是隐藏严重度老化最久处。**裸卡数 >15 ⇒ 下一 fire 整轮改域分批集中模式**: +每批 ≤5 张同族卡,同样跑到清空或断点续跑(见 runbook)。**阈值与跑到清空成对生效,理由:** +跑到清空排空稳态,阈值吸收突发(实测 40 分钟到 13 张 ≈ 稳态四倍,审计式倾倒形态)—— +没有阈值,倾倒只能按到达顺序摊进常规轮,失掉同族同上下文一次读完的批次红利, +队尾同期继续增长;⛔ 二者不可互相替代。 **紧急卡直接分诊** (维护者 2026-08-13):维护者点名或 p0 嫌疑 ⇒ 立即起 `claude-fable-5` 分诊子代理,不等定时轮次;授权面 = 分诊本身(定级/路由/标签/既有评论格式), ⛔ 不写码不认领;产出落卡,与定时轮分诊同格式同效力(细则见 `references/dispatch-runbook.md`)。 @@ -790,11 +801,13 @@ a human merge 项、governed 合并审计清单(实跑 `node scripts/pm/check-go ⛔ 不凭记忆汇总;此为车道早警,权威合并窗口与认定/回滚处置归总监席, `references/lanes/director.md`)、**`UNRECOGNISED` 行**(对本轮门禁日志 grep `UNRECOGNISED`, 逐行照录,`NOT APPLICABLE` 行也在内 —— 缺行读作「无未识别项」,实则可能是没人 grep)。 -健康指标四个(总 open 数刻意不在其中 —— 债密区发现快于关闭是循环在工作): +健康指标五个(总 open 数刻意不在其中 —— 债密区发现快于关闭是循环在工作): **可派发库存**(dispatchable inventory;open `pm:queue` 未认领及趋势);**决策箱**(decision inbox; 待维护者数,分诊简报还要点名带开放下游依赖的决策卡 —— 从 `Blocked-by:` 反向索引现算); **finding 数与中位年龄**(裸标签数即未定级数,hold 已换标不在内; -老化 = 首触欠账);**发版阻塞**(release blockers;三仓 `target:`之和,归零 = 三张板都空)。 +老化 = 首触欠账);**裸卡数与中位年龄**(sweep 析取①;老化 = 首触欠账, +读法与 finding 不同族见 runbook);**发版阻塞**(release blockers;三仓 `target:`之和, +归零 = 三张板都空)。 **波次收工点(维护者 2026-08-09 裁定)。** ① 收工点 = 会话内在飞归零(⛔ 不在复核中途压缩; 云卡不挡 —— 热移交见座位贴协议细则); diff --git a/.claude/skills/pm-dispatch/references/dispatch-runbook.md b/.claude/skills/pm-dispatch/references/dispatch-runbook.md index fd1b1edb4a..34cdbe166b 100644 --- a/.claude/skills/pm-dispatch/references/dispatch-runbook.md +++ b/.claude/skills/pm-dispatch/references/dispatch-runbook.md @@ -89,7 +89,8 @@ fire 附带一次: 出处原话逐字住主文件「两级盘点」条。实测全量四仓 ~50k token/轮, `since` 等价 ~8k。小时层三读法:sweep 析取①②③ = `list_issues` + `since`(标签变更刷新 `updated_at`, 半标注照样入窗);解锁扫描反演 = 逐仓 `state=CLOSED` + `since` 与 `Blocked-by:` 反向索引求交, -命中走既有回队双查;健康指标 = 逐标签 `perPage: 1` 只读 `totalCount`。 +命中走既有回队双查;健康指标 = 逐标签 `perPage: 1` 只读 `totalCount` —— +裸卡数例外(标签缺席无计数可读),取本轮析取①枚举,⛔ 不另发查询。 每日层(当日首 fire)= 四仓全量对账 + 归集本就日频的职责(finding 集中轮、 `Restart-when:` 判据批扫、决策箱回填)。成本靶:干活轮 ≤50k, 空转轮守既有探针预算。每条枚举都比对返回数与 `totalCount`:不等 ⇒ 本轮没读完,