Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .claude/skills/pm-dispatch/SKILL.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -118,6 +118,7 @@ session 的 `Claim:` 评论(拼写见「认领」,车道盘点已取)—— 标
`git show origin/main:<path>`),⛔ 不用共享检出的工作树 —— 它的 HEAD由别的 agent 摆布。
- **零命中必须用确定存在的邻近词反查**,否则零命中不成立;仓不可达同理,⛔ 不因「查不了」当「查
过了干净」—— 在 issue 上贴出给对应座位的现成命令,等读数回贴再派。
- **GitHub 限流 ⇒ 先 `GET /rate_limit`(零配额)取精确 reset 与余量,⛔ 不盲等**;公开仓降级 WebFetch 读法与限流细则见 platform-readings。
- **定时器文本纪律(一切自设定时器适用)**:已删除的定时器仍会投递,投递时文本可能落后现实数
轮 —— 每一枪**以「幂等 —— 动手前先重读状态」开头**,只写关键判据(「若 X 则 Y」),其余指针化
(座位贴为唯一状态源);⛔ 不写结论、不含未经重读即可执行的祈使句。
Expand DownExpand Up@@ -519,7 +520,7 @@ os-zhuang 审核。我的手机github 应该会收到推送消息吧」;当日
- **`needs:contract-review` 复审链**:复审资格 —— ① 跑在契约复审档位,硬条件,认定只认降档保险丝的机读;② 非该卡派发席,已从资格条件放宽为路径偏好(维护者 2026-08-21,原话:「你自己就是 Fable,自己就可以审核」):经同一机读证实达档的派发席,可对自派的卡执行契约复审并清标(审的是低档实现者的契约增量,非自身产物 —— 派发席不写代码);放宽豁免的是独立席位,不是复审本身 —— 一行结论照样先落卡、后清标,上条「⛔ 禁止自查放行」禁的是免复审直放,不禁本路径;低于契约复审档位的席照旧留标等待。归属:常设 = 分诊席(Routine 模型由维护者在 Routines UI
钉在契约复审档位),分诊轮子轮清该标签仍是默认清标路径(达档席自清仅是后备)—— 只审契约增量 diff、结论一行写在卡上、PASS 双载体同笔清标(PR 与卡各按标签纪律硬步骤)并清 review request 或留一条 review 评论,标清后卡方可入队;每小时一轮即天然攒批;过渡期(分诊 Routine 未建成前)由 skills 席代行。**降档保险丝**:
子轮开场**必调一次 `get_session`**(claude-code-remote MCP,无参)读 `external_metadata.last_served_model`,⛔ 自述档位不是读数(静默降档腐蚀的恰是自述;实测与配置档陷阱见 platform-readings);读数 ≠ `CONTRACT_REVIEW_TIER` ⇒ 该子轮整体跳过、标签原样留置 —— 卡在队列外等待是安全态。
**保险丝只对座位自会话有效**:`mode:subagent` 里的 `get_session` 量的是**派发会话**(实测:钉在地板档的子代理读回父会话的档位,`session_context.model` 与 `last_served_model` 一致只是同一来源引用两次,⛔ 不作互证)—— subagent 的实际服役档位现无法自证,条款②的 `mode:subagent` 派发因此恒保留 `needs:contract-review` 走复审链,「派发已在地板」的免审跳过仅座位自会话成立。契约复审 ⛔ 不适用额度耗尽豁免降档(豁免的对象是派发;复审的存在意义就是补偿一次低于地板的派发)。**载体不迁移**(维护者 2026-08-18,原话:「中期把闸门迁到 PR review 的 Request Changes 上 我觉得没必要」):闸门载体保持本标签,⛔ 不迁 PR review / Request Changes、不为迁移留门;挂与清皆按标签纪律的 read-modify-write 硬步骤写。
**保险丝只对座位自会话有效**:`mode:subagent` 里的 `get_session` 量的是**派发会话**(实测:钉在地板档的子代理读回父会话的档位,`session_context.model` 与 `last_served_model` 一致只是同一来源引用两次,⛔ 不作互证)—— subagent 的实际服役档位现无法对 `CONTRACT_REVIEW_TIER` 自证,条款②的 `mode:subagent` 派发因此恒保留 `needs:contract-review` 走复审链,「派发已在地板」的免审跳过仅座位自会话成立。**⛔ 反模式:派更高档位子 agent 去执行契约复审** —— 看似满足档位,实为构造上不可测量(多次实测:子代理读回父会话档位并拒绝出裁决)。契约复审 ⛔ 不适用额度耗尽豁免降档(豁免的对象是派发;复审的存在意义就是补偿一次低于地板的派发)。**载体不迁移**(维护者 2026-08-18,原话:「中期把闸门迁到 PR review 的 Request Changes 上 我觉得没必要」):闸门载体保持本标签,⛔ 不迁 PR review / Request Changes、不为迁移留门;挂与清皆按标签纪律的 read-modify-write 硬步骤写。
- **碰生成物的 PR,入队前先同步 + 整体重生成**(os-regen 驱动零冲突标记地**静默丢掉一侧改动**):
四步序已机械化 `bash scripts/pm/os-regen-merge.sh`;陷阱、断言措辞与锚点禁令见 landing-operations A。
- **跟到 MERGED 为止;入队后的看护同归车道 PM 的落地窗口**:验收、首次入队 flip 定点、MERGED 两读
Expand DownExpand Up@@ -639,8 +640,7 @@ grep <branch>`),复升级时逐条**跑**一遍,零命中/变形的就地改写
的统一定义,禁令三条与离队出口同见该节;事后防线 = 审计清单,维护者不认识的条目 = 席位违规,立案回滚。
- **决定属于维护者:永不代维护者回答产品/架构问题**(唯一例外:分诊职责里已裁的代裁车道,边界恰
与其置信门重合,不得更宽);**永不派发 assignee 是别人的 issue;永不派发带 `needs-user-decision` 的 issue**。
- 每个 dev agent 都在**每仓专属的自有 worktree** 里干活(hook 强制;os-dev 定义重申);并行度
以 `batch` 封顶,同批**按构造文件面不相交**;**分诊座位永不认领、永不派发、永不写代码;执行
- 并行度以 `batch` 封顶,同批**按构造文件面不相交**;**分诊座位永不认领、永不派发、永不写代码;执行
座位只在自己那一个车道认领、不改标签,误标挂 `pm:retriage` + 异议评论同笔;`domain:*` 只有一个生产者**(豁免、例外两条与全部条件见「多仓协调 4」「域车道」「候选与批次」,⛔ 不另抄第二份)。

## 报告契约(Report contract,os-dev 返回什么)
Expand Down
1 change: 1 addition & 0 deletions scripts/pm/dispatch-gates.mjs
Original file line numberDiff line numberDiff line change
Expand Up@@ -2812,6 +2812,7 @@ export const MANDATORY_TIER_GLOBS = [
* reviewed, never a model (maintainer, 2026-08-16: 「needs:fable-review 这个标
* 签不好,下次模型升级怎么办」), and the PM skill's prose points at this
* constant instead of spelling a model name.
* Rulebook: `.claude/skills/pm-dispatch/SKILL.md` 「入队与落地」 — the clause-② gate and the `needs:contract-review` review-chain bullets.
*/
export const CONTRACT_REVIEW_TIER = 'claude-fable-5';

Expand Down
Loading