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
40 changes: 20 additions & 20 deletions .claude/skills/pm-dispatch/references/contract-review.md
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,15 @@
# 契约复审链细则(references —— 按需加载)

出处:主文件「入队与落地」条款②闸门(原则、双肢定义与 `CONTRACT_REVIEW_TIER` 档位
单源住那里);本表是 `needs:contract-review` 复审链的操作细则,挂标、复审、清标那一
刻查阅;⛔ 不引用 issue 编号。
出处:主文件「入队与落地」条款②闸门(原则、双肢定义与 `CONTRACT_REVIEW_TIER` 单源住那
里);本表是 `needs:contract-review` 复审链细则,挂标、复审、清标时查阅;⛔ 不引用 issue 编号。

## 载体纪律(挂与清)

- **PR 与卡双载体同笔挂**(维护者
2026-08-22:「简化一点是否可以直接挂 PR 侧」「两边都挂好」;
PR 一存在即挂,报告先于 PR 到达则先挂卡侧、ACCEPT 时补齐 PR 侧),同笔在该 PR 上
向复审席账号 request review(同裁决:「也可以直接要求复审」—— 仅通知,载体仍是标
签)、停手。
- **载体不迁移**(维护者 2026-08-18,原
话:「中期把闸门迁到 PR review 的 Request Changes 上 我觉得没必要」):
闸门载体保持本标签,⛔ 不迁 PR review / Request Changes、不为迁移留门;挂与清皆按
- **PR 与卡双载体同笔挂**(维护者 2026-08-22:「简化一点是否可以直接挂 PR 侧」「两边都挂好
」; PR 一存在即挂,报告先于 PR 到达则先挂卡侧、ACCEPT 时补齐 PR 侧),同笔在该 PR 上向复审
席账号 request review(同裁决:「也可以直接要求复审」—— 仅通知,载体仍是标签)、停手。
- **载体不迁移**(维护者 2026-08-18,原话:「中期把闸门迁到 PR review 的 Request Changes 上 我觉得
没必要」): 闸门载体保持本标签,⛔ 不迁 PR review / Request Changes、不为迁移留门;挂与清皆按
标签纪律的 read-modify-write 硬步骤写。
- **重挂前先查裁决**:闸门标签缺失 ⇒ 先 grep 卡片评论找现行复审结论 —— PASS 评论 + 标
签缺失 + PR head 自复审后未动 = **已复审清标**,不是被剥;仅当 head 在结论之后移动、或根
Expand All@@ -22,16 +18,20 @@
## 复审资格与归属

- **资格** —— ① 跑在契约复审档位,硬条件,认定只认降档保险丝的机读;② 非该卡派发
席,已从资格条件放宽为路径偏好(维护者 2026-08-21,原
话:「你自己就是 Fable,自己就可以审核」): 经同一机读证实达档的派发席,可对自派的卡
执行契约复审并清标(审的是低档实现者的契约增量,非自身产物 —— 派发席不写代码);放
宽豁免的是独立席位,不是复审本身 —— 一行结论照样先落卡、后清标,主文
件「⛔ 禁止自查放行」禁的是免复审直放,不禁本路径;低于契约复审档位的席照旧留标等
待。
席,已从资格条件放宽为路径偏好(维护者 2026-08-21,原话:「你自己就是 Fable,自己就可以审
核」): 经同一机读证实达档的派发席,可对自派的卡执行复审并清标(审的是低档实现者的
契约增量,非自身产物 —— 派发席不写代码);放宽的是独立席位,不是复审本身,主文件「⛔
禁止自查放行」禁的是免复审直放,不禁本路径;低于档位的席照旧留标等待。
- **归属**:常设 = skills 席自绑小时钟(维护者 2026-08-23:「要不还是你挂个定时处理审核吧」),
每小时一轮即天然攒批;分诊席达档时(经同一机读证实)照旧可清。只审契
约增量 diff、结论一行写在卡上、PASS 双载体同笔清标(PR 与卡各按标签纪律硬步骤)并
清 review request 或留一条 review 评论,标清后卡方可入队。
每小时一轮即天然攒批;分诊席达档时(经同一机读证实)照旧可清。只审契约增量 diff、结
论一行写在卡上、PASS 双载体同笔清标(PR 与卡各按标签纪律硬步骤)并清 review request 或留
一条 review 评论,标清后卡方可入队。
- **清标即落地**(维护者 2026-08-25,原话:「审核通过你应该直接负责合并吧,还要等原始的项
目经理吗」):非受管 code PR 由**复审链同笔收口**:清标后按 `landing-operations.md` 走落地前
检(`mergeable_state` 先读、闭合关键词扫描、true-green 核 job 结论、ready 先于 auto-merge 不可
反)→ 转 ready → 挂 auto-merge/入队;车道 PM 窗口与 half-states 孤儿巡检退为**兜底**,⛔ 停手即
复现「就绪却无人落地」。**三样不变**:受管面照旧 draft-only + 人工/受托合并、⛔ 链永不
入队;FAIL / REWORK 路径原样;降档保险丝原样 —— 低于档位的席清不了标,故落不了地。

## 降档保险丝(机读)

Expand Down
28 changes: 14 additions & 14 deletions .claude/skills/pm-dispatch/references/landing-operations.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -26,20 +26,20 @@

## B. 跟到 MERGED 为止;入队后的看护归车道 PM 落地窗口

车道 PM 的权责:验收(复核清单);**首次入队** —— ACCEPT 后挂 6–9 分钟 flip
点,到点核门禁 job 结论(承载门禁族的 job `completed: success`),绿即转 ready +
挂 auto-merge,未绿阶梯重挂;CI success webhook 不可靠,⛔ 不坐等不忙轮询;定点文
本照定时器写法纪律(幂等开头、只写判据);确认 **MERGED** —— 每轮同时读队列分支与
`origin/main` 两个读数。ready 与 auto-merge 顺序不可反(转回 draft 会同时掉
auto-merge 与队列成员资格)。

**转 ready / 挂 auto-merge 之前先读 `mergeable_state`**:`dirty` ⇒ 先 merge
`origin/main`(生成物在面上按 A 的固定序)再挂;`unknown`重读一次(惰性计算,事实行见平台读
数)。**ready + 全绿 ≠ 已入队 —— 队列从不主动拉 PR,入队是显式动
。**零 `enqueued` 事件按序查:① `mergeable_state` 是否 `dirty`;②
enable-auto-merge 调用根本没落地(GraphQL、吃配额、回显两向不可靠,按既有陷阱行
重发一次,以 timeline 事件验证,⛔ 不看 `auto_merge` 字段);③ PR
`.github/workflows/**` 而 token 缺 workflows 权限。
车道 PM 的权责:验收(复核清单);**首次入队** —— ACCEPT 后挂 6–9 分钟 flip 定点,到点核门禁
job 结论(承载门禁族的 job `completed: success`),绿即转 ready + 挂 auto-merge,未绿阶梯重挂;
CI success webhook 不可靠,⛔ 不坐等不忙轮询;定点文本照定时器写法纪律(幂等开头、只写判
);确认 **MERGED** —— 每轮同时读队列分支与 `origin/main` 两个读数。ready 与 auto-merge 顺
序不可反(转回 draft 会同时掉 auto-merge 与队列成员资格)。**契约复审链 PASS 落地的 PR 到窗
口时已 ready + auto-merge 在挂**(清标与落地同一笔,见 `contract-review.md`)—— 窗口自身权责
不变:跟到 MERGED、踢出处置、落地后对账。

**转 ready / 挂 auto-merge 之前先读 `mergeable_state`**:`dirty`先 merge `origin/main`
(生成物在面上按 A 的固定序)再挂;`unknown` ⇒ 重读一次(惰性计算,事实行见平台读数)。
**ready + 全绿 ≠ 已入队 —— 队列从不主动拉 PR,入队是显式动作。**零 `enqueued` 事件按序查:
① `mergeable_state` 是否 `dirty`;② enable-auto-merge 调用根本没落地(GraphQL、吃配额、回显
两向不可靠,按既有陷阱行重发一次,以 timeline 事件验证,⛔ 不看 `auto_merge` 字段);③ PR
`.github/workflows/**` 而 token 缺 workflows 权限。

**确认 MERGED 的同一动作里给 `Part of` 卡收口**(`Fixes` 卡 GitHub 代关、标签随
卡离开在飞视图):`Part of` 卡开着不摘 `pm:dispatched`,就把无在飞物的卡永远算在
Expand Down
Loading