Skip to content
Closed
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
37 changes: 37 additions & 0 deletions .claude/skills/pm-dispatch/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -514,6 +514,43 @@ notes 6 的对照反查),等读数回贴再派;⛔ 不因「查不了」就当
- 代价参照:#6034 首例在识别出签名之前静默停摆约 1 小时。工具行为在平台侧,仓内
能做的就是把签名与处方钉在这里,免得每个新 PM 会话重踩一遍。

**22. 踢出但 Actions 里找不到属于该 PR 自己的 merge_group run = 队列重建误伤,
受理一次带回执的重投;notes 21 的翻转处方在规模上成立。** services 车道
2026-08-10 单班续证两件事。其一,全绿 PR 的空字段武装签名 + 翻转一次,本班命中
该签名的每一例(6+)翻转后全部入队落地 —— 处方从「三例三中」升级为跨车道稳定
复现,可当默认动作。其二,新增一个踢出签名:PR 被移出队列,但 Actions 里
**没有属于它自己的 merge_group run**(同批同伴的 run 全 success)—— 这是队列
重建把它顺带取消的误伤,不是它红了(#7311 实测:翻转重投一次即落地)。处置:
PM 当场翻转重投**一次**,并在 PR 上留一条签名判读回执(读了哪些 run、为何判
重建误伤),供管家台账对账;同一 PR **第二次**被踢 ⇒ 停手移交队列管家
(#5810)走签名台账。⛔ 不无回执地反复重投 —— 无回执的重投在管家看来与
flaky 硬重试不可区分,污染它的查表。

**23. 同账号多会话的认领竞态 —— 仲裁只认 claim 评论里的会话 ID 与时间戳,
输方让出并留交接。** 所有座位共用一个 GitHub 身份,assignee 字段在两个会话
之间零信息量 —— 它同时「在双方名下」。#7145 实测:两个会话相隔 69 秒各自
assign + 贴 claim,唯一可判的先后是双方 claim 评论的时间戳与会话 ID ——
先贴者得,与 assignee 无关。输方的义务不止于撤手:把自己已做过的判读(同包
在飞 PR 的 region 声明、结对纪律等)整理成交接评论贴在卡上再走,让赢方不必
重扫一遍。这是 CLAUDE.md「re-read the comments」条款的 PM 对 PM 版:座位
之间同样会撞,撞了以评论时间戳裁,⛔ 不以「assignee 是我」续作。

**24. 生产者强制的面外文件是合法搭载,不是 REWORK —— 三判据齐备再收,收了
补跨席声明。** #7102(PR #7224)铸新错误码,ADR-0112 D3 要求错误码台账行与
铸码**同 PR** 落地,而台账在 `packages/spec` —— 派发面之外。受理判据三条
**齐备**才算:(1) dev 在报告与 PR 正文**高声申报**(落点、依据条款、为何无
替代);(2) 有 ADR/注册表条款把搭载定为**强制**,不是「顺手也改了」;(3) 不
存在不破坏原子性的拆分方案(拆开会让 main 出现悬空半态)。三条齐备 ⇒ ACCEPT,
PM 按 #6532 先例补跨席声明(spec 面恒归 spec 座位,声明不是走过场);缺任何
一条 ⇒ 按面外改动正常打回。与前文 #5586 的「生产者在别包」同族异型:那条管
**落点换包**,本条管**多出一个包**。

**25. 本执行环境的 Bash 每次调用重置 cwd —— 一切 git 操作一律
`git -C <绝对路径>`,⛔ 不依赖 `cd`。** 不止跨仓 grep(前文已有):本班实测
`cd` 之后的**下一条** Bash 调用已回到主目录,git 命令落在错误的仓/工作树上
并静默给出「干净」读数 —— 正是 notes 6「缺失类读数」的形状,且不报任何错。
每条 git 命令自带 `-C` 成本为零,消除整类误读。

The product spans three repos with a fixed dependency direction:
`objectstack` (backend; `packages/spec` is the single contract) →
`objectui` (frontend; its build flows back via `pnpm objectui:refresh`) and
Expand Down
Loading