Description 背景(事故驱动)
规则包(维护者已批,2026-08-16 会话)
入队闸门(SKILL.md) :PR 实际 diff 触及契约面(packages/spec/src/**,含 error-code-ledger、*.zod.ts 契约 schema)且派发档位低于契约复审档位 ⇒ ⛔ 禁止入队。派发席职责止于:卡上记一行认定、挂 needs:contract-review、停手;⛔ 禁止自查放行。
资格双条件 :复审席必须同时满足 ① 跑在契约复审档位;② 非该卡派发席。犯规席在结构上无资格补救自己的犯规。
复审归属 :常设 = 统一分诊席(Routine 模型由维护者在 Routines UI 钉在契约复审档位);分诊轮新增子轮清 needs:contract-review——只审契约增量 diff,结论一行写在卡上,清标签后卡方可入队。每小时一轮即天然攒批。过渡期(分诊 Routine 未建成前)由 skills 席代行。
降档保险丝 :分诊轮开场自检当前模型,非契约复审档位 ⇒ 该子轮整体跳过、标签原样留置。卡在队列外等待是安全态;契约复审⛔不适用配额豁免降档——它的存在意义就是补偿一次低于地板的派发。
档位单一来源 :标签语义命名 needs:contract-review(命名审的对象,不含模型名——维护者指出:标签硬编码模型名,模型升级即全量标签迁移);档位仅在 dispatch-gates.mjs 定义常量 CONTRACT_REVIEW_TIER(现值 claude-fable-5),SKILL.md 行文写「契约复审档位以 dispatch-gates 常量为准」。模型升级 = 改一行一个文件。
派发时提示(dispatch-gates.mjs) :新增 SUSPECT_TIER_GLOBS(packages/spec/src/**),--tier 命中时输出「条款②嫌疑面:尽力从卡片内容判档;无论派什么档,入队前按 diff 过闸门」。措辞明确是提示不是裁定。
实施面
.claude/skills/pm-dispatch/SKILL.md:入队闸门 + 复审链(上 1–5 条)。行数在现天花板内(当前 682),不提顶。
scripts/pm/dispatch-gates.mjs:SUSPECT_TIER_GLOBS + CONTRACT_REVIEW_TIER 常量 + --tier 输出行 + 自测(嫌疑命中 / 不命中 / 输出措辞三向覆盖)。
references/dispatch-runbook.md:视需要补一行闸门操作序(可选)。
排序与档位
授权链(维护者原话)
「分诊 Routine 钉 fable 是没问题的」
「目前是 Fable,除非你有更好的方案」
「needs:fable-review 这个标签不好,下次模型升级怎么办」(→ 第 5 条:标签改名 + 常量单源)
Reactions are currently unavailable
You can’t perform that action at this time.
背景(事故驱动)
packages/spec/src/api/error-code-ledger.zod.ts新增错误码并令hydrateOverlayIntoRegistry由接受转拒绝——按条款②(维护者 2026-08-12:凡改变契约接受/拒绝行为或扩大公开面的卡一律claude-fable-5)须按该档派发,实际按低档派发。派发席自报,维护者转达至 skills 席。dispatch-gates.mjs --tier只推导条款①(路径可推导);条款②依赖派发席在派发时刻做内容判断,无机器兜底。工具输出已诚实声明此限制。本卡不试图机器化内容判断,而是把强制关卡挪到入队前按 diff 判定——diff 是事实,卡片语义是预测。规则包(维护者已批,2026-08-16 会话)
packages/spec/src/**,含 error-code-ledger、*.zod.ts契约 schema)且派发档位低于契约复审档位 ⇒ ⛔ 禁止入队。派发席职责止于:卡上记一行认定、挂needs:contract-review、停手;⛔ 禁止自查放行。needs:contract-review——只审契约增量 diff,结论一行写在卡上,清标签后卡方可入队。每小时一轮即天然攒批。过渡期(分诊 Routine 未建成前)由 skills 席代行。needs:contract-review(命名审的对象,不含模型名——维护者指出:标签硬编码模型名,模型升级即全量标签迁移);档位仅在dispatch-gates.mjs定义常量CONTRACT_REVIEW_TIER(现值claude-fable-5),SKILL.md 行文写「契约复审档位以 dispatch-gates 常量为准」。模型升级 = 改一行一个文件。SUSPECT_TIER_GLOBS(packages/spec/src/**),--tier命中时输出「条款②嫌疑面:尽力从卡片内容判档;无论派什么档,入队前按 diff 过闸门」。措辞明确是提示不是裁定。实施面
.claude/skills/pm-dispatch/SKILL.md:入队闸门 + 复审链(上 1–5 条)。行数在现天花板内(当前 682),不提顶。scripts/pm/dispatch-gates.mjs:SUSPECT_TIER_GLOBS+CONTRACT_REVIEW_TIER常量 +--tier输出行 + 自测(嫌疑命中 / 不命中 / 输出措辞三向覆盖)。references/dispatch-runbook.md:视需要补一行闸门操作序(可选)。排序与档位
mergeable_statereading + the zero-enqueued-events triage ladder — a dirty PR read as "queue refuses me" cost a lane a stall #9178 之后执行。.claude/skills/pm-dispatch/**)。授权链(维护者原话)