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
34 changes: 17 additions & 17 deletions .claude/skills/pm-dispatch/references/contract-review.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -15,34 +15,34 @@
话:「中期把闸门迁到 PR review 的 Request Changes 上 我觉得没必要」):
闸门载体保持本标签,⛔ 不迁 PR review / Request Changes、不为迁移留门;挂与清皆按
标签纪律的 read-modify-write 硬步骤写。
- **重挂前先查裁决**:闸门标签缺失 ⇒ 先 grep 卡片评论找现行复审结论 —— PASS 评论 + 标
签缺失 + PR head 自复审后未动 = **已复审清标**,不是被剥;仅当 head 在结论之后移动、或根
本无结论时才重挂(复审载体是卡上一行结论,`get_reviews` 读空不是「未复审」的证据)。

## 复审资格与归属

- **资格** —— ① 跑在契约复审档位,硬条件,认定只认降档保险丝的机读;② 非该卡派发
席,已从资格条件放宽为路径偏好(维护者 2026-08-21,原
话:「你自己就是 Fable,自己就可以审核」):
经同一机读证实达档的派发席,可对自派的卡执行契约复审并清标(审的
是低档实现者的契约增量,非自身产物 —— 派发席不写代码);放宽豁免的是独立席位,不
是复审本身 —— 一行结论照样先落卡、后清标,主文件「⛔ 禁止自查放行」禁的是免复审
放,不禁本路径;低于契约复审档位的席照旧留标等待。
话:「你自己就是 Fable,自己就可以审核」): 经同一机读证实达档的派发席,可对自派的卡
执行契约复审并清标(审的是低档实现者的契约增量,非自身产物 —— 派发席不写代码);放
宽豁免的是独立席位,不是复审本身 —— 一行结论照样先落卡、后清标,主文
件「⛔ 禁止自查放行」禁的是免复审直放,不禁本路径;低于契约复审档位的席照旧留标等
待。
- **归属**:常设 = skills 席自绑小时钟(维护者 2026-08-23:「要不还是你挂个定时处理审核吧」),
每小时一轮即天然攒批;分诊席达档时(经同一机读证实)照旧可清。只审契
约增量 diff、结论一行写在卡上、PASS 双载体同笔清标(PR 与卡各按标签纪律硬步骤)并
清 review request 或留一条 review 评论,标清后卡方可入队。

## 降档保险丝(机读)

- 子轮开场**必调一次 `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 的实际服役
档位现无法对 `CONTRACT_REVIEW_TIER` 自证,条款②的 `mode:subagent` 派发因此恒保留
`needs:contract-review` 走复审链,「派发已在地板」的免审跳过仅座位自会话成立。
**⛔ 反模式:派更高档位子 agent 去执行契约复审** —— 看似满足档位,实为构造上不可
测量(多次实测:子代理读回父会话档位并拒绝出裁决)。
- 子轮开场**必调一次 `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 的实际服役档位现无法对 `CONTRACT_REVIEW_TIER` 自证,条
款②的 `mode:subagent` 派发因此恒保留 `needs:contract-review` 走复审链,「派发已在地板」的免审
跳过仅座位自会话成立。 **⛔ 反模式:派更高档位子 agent 去执行契约复审** —— 看似满足
档位,实为构造上不可测量(多次实测:子代理读回父会话档位并拒绝出裁决)。
- 契约复审 ⛔ 不适用额度耗尽豁免降档(豁免的对象是派发;复审的存在意义就是补偿一次
低于地板的派发)。
22 changes: 11 additions & 11 deletions .claude/skills/pm-dispatch/references/state-machine.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -8,8 +8,9 @@
`needs-user-decision` 互斥;成因恒是半写的转换,故**一笔 replace**、⛔ 不 add。
- **`pm:queue` 腐化视界 3 天**:队列是唯一「等待不是一种状态」的态,越界即欠**一次显
式转换**(派发 / 转 `needs-user-decision` / 停放 / 撤单 / 改写前提),⛔ 不是排期。
- **`needs:contract-review` 双载体**:卡与交付 PR 两边都挂好、挂与清各一笔、两向都读
回(被剥不是红灯是放行);卡侧先挂而 PR 尚不存在是合法中间态,不是半写。
- **`needs:contract-review` 双载体**:卡与交付 PR 两边都挂好、挂与清各一笔、两向都读回(被剥不
是红灯是放行);卡侧先挂而 PR 尚不存在是合法中间态,不是半写;**交接即标签** —— 只写
交接评论而不同笔挂标 = 空交接,收件箱只认标签。

## `pm:on-hold` —— 重启条件、触发文件与放行双查

Expand All@@ -19,18 +20,17 @@
- **机会主义重启的触发文件**走同族正典行 **`Restart-touch: <仓内相对路径>`**(一行一
路径,大小写敏感、行锚定,与 `Blocked-by:`/`Restart-when:` 同双通道;值须为 tracked
文件)—— 喂巡查 H17 的触发文件索引;存量 hold ⛔ 不迁移、不产 finding。
- **放行双查(两查皆机械、零判断)**:① 只对**最近一次** `pm:on-hold`/`pm:blocked` 转
换评论所载条件放行,⛔ 永不对更早的 blocker —— 已放行过的条件是花掉的,再点火就把
过期前提立成现行;② 该转换评论之后卡上有**更新的 merged PR** ⇒ 拒绝放行。
- **放行双查(两查皆机械、零判断)**:① 只对**最近一次** `pm:on-hold`/`pm:blocked` 转换评论的条
件放行,⛔ 永不对更早的 blocker;② 该评论之后卡上有**更新的 merged PR** ⇒ 拒绝放行。

## `pm:blocked` —— 正典标记、完工停放(`Unlock-action:`)、上游已关

- **正典标记 = 行首 `Blocked-by: #N`(跨仓 `owner/repo#N`)、无装饰**;句中提及**刻意
拒收** —— 指令是行,提及是散文。
- **工已完、PR 被外部门禁缺陷卡住的卡同用本态,⛔ 不设新标签**:`Blocked-by:` 指向门禁
缺陷卡,正文另加机器可读行 `Unlock-action: re-check PR #M` —— 解锁扫描据此把解锁
动作从「回队重派」换成「重查该 PR 落地」(回队前提检查见到已完工的 open PR 即按落
地工作处理,⛔ 永不给完工卡重派 dev);停放 PR 正文须点名门禁卡,让链路两端可读
- **正典标记 = 行首 `Blocked-by: #N`(跨仓 `owner/repo#N`)、无装饰**;句中提及**刻意拒收** —— 指
令是行,提及是散文。等「PR 合并」或「发布且 pin 覆盖」的卡同理:指一张在该刻关闭的
卡(等发布 = pin-bump 杂事卡),⛔ 不扩词表;`Part of` 型 PR 的跟踪卡不在该刻关闭,不可用。
- **工已完、PR 被外部门禁缺陷卡住的卡同用本态,⛔ 不设新标签**:`Blocked-by:` 指向门禁缺陷
卡,正文另加机器可读行 `Unlock-action: re-check PR #M`,解锁扫描把解锁动作从「回队重派」换
成「重查该 PR 落地」,⛔ 永不给完工卡重派 dev;停放 PR 正文须点名门禁卡。
- **上游已关 ⇒ 先重新推导再决定**:改判是否有**新**阻塞并改写该行,⛔ 不反射式放行;正
文是正典家 —— 新 blocker 停评论、正文留已关旧目标,巡查报 stale 并要求迁回。

Expand Down
Loading