Skip to content

Commit 2fe2d4f

Browse files
committed
docs(pm-dispatch): add Operational notes 22-25 from 2026-08-10 services shift
- 22: kick-with-no-own-merge_group-run = queue-rebuild transient; one receipted flip re-queue, second kick goes to the queue steward (#5810); flip prescription confirmed at scale this shift - 23: same-account claim-race arbitration by claim-comment session ID + timestamp only; loser yields with a handoff comment (#7145) - 24: producer-forced out-of-surface rider (ADR-0112 D3 ledger row in packages/spec riding the minting PR, #7102/PR #7224): three acceptance criteria, cross-seat declaration per #6532, not REWORK - 25: Bash cwd resets every call in this environment; always git -C Maintainer-authorized .claude/ tooling change (Guardrails exemption).
1 parent 7cdbcbb commit 2fe2d4f

1 file changed

Lines changed: 37 additions & 0 deletions

File tree

.claude/skills/pm-dispatch/SKILL.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -514,6 +514,43 @@ notes 6 的对照反查),等读数回贴再派;⛔ 不因「查不了」就当
514514
- 代价参照:#6034 首例在识别出签名之前静默停摆约 1 小时。工具行为在平台侧,仓内
515515
能做的就是把签名与处方钉在这里,免得每个新 PM 会话重踩一遍。
516516

517+
**22. 踢出但 Actions 里找不到属于该 PR 自己的 merge_group run = 队列重建误伤,
518+
受理一次带回执的重投;notes 21 的翻转处方在规模上成立。** services 车道
519+
2026-08-10 单班续证两件事。其一,全绿 PR 的空字段武装签名 + 翻转一次,本班命中
520+
该签名的每一例(6+)翻转后全部入队落地 —— 处方从「三例三中」升级为跨车道稳定
521+
复现,可当默认动作。其二,新增一个踢出签名:PR 被移出队列,但 Actions 里
522+
**没有属于它自己的 merge_group run**(同批同伴的 run 全 success)—— 这是队列
523+
重建把它顺带取消的误伤,不是它红了(#7311 实测:翻转重投一次即落地)。处置:
524+
PM 当场翻转重投**一次**,并在 PR 上留一条签名判读回执(读了哪些 run、为何判
525+
重建误伤),供管家台账对账;同一 PR **第二次**被踢 ⇒ 停手移交队列管家
526+
(#5810)走签名台账。⛔ 不无回执地反复重投 —— 无回执的重投在管家看来与
527+
flaky 硬重试不可区分,污染它的查表。
528+
529+
**23. 同账号多会话的认领竞态 —— 仲裁只认 claim 评论里的会话 ID 与时间戳,
530+
输方让出并留交接。** 所有座位共用一个 GitHub 身份,assignee 字段在两个会话
531+
之间零信息量 —— 它同时「在双方名下」。#7145 实测:两个会话相隔 69 秒各自
532+
assign + 贴 claim,唯一可判的先后是双方 claim 评论的时间戳与会话 ID ——
533+
先贴者得,与 assignee 无关。输方的义务不止于撤手:把自己已做过的判读(同包
534+
在飞 PR 的 region 声明、结对纪律等)整理成交接评论贴在卡上再走,让赢方不必
535+
重扫一遍。这是 CLAUDE.md「re-read the comments」条款的 PM 对 PM 版:座位
536+
之间同样会撞,撞了以评论时间戳裁,⛔ 不以「assignee 是我」续作。
537+
538+
**24. 生产者强制的面外文件是合法搭载,不是 REWORK —— 三判据齐备再收,收了
539+
补跨席声明。** #7102(PR #7224)铸新错误码,ADR-0112 D3 要求错误码台账行与
540+
铸码**同 PR** 落地,而台账在 `packages/spec` —— 派发面之外。受理判据三条
541+
**齐备**才算:(1) dev 在报告与 PR 正文**高声申报**(落点、依据条款、为何无
542+
替代);(2) 有 ADR/注册表条款把搭载定为**强制**,不是「顺手也改了」;(3) 不
543+
存在不破坏原子性的拆分方案(拆开会让 main 出现悬空半态)。三条齐备 ⇒ ACCEPT,
544+
PM 按 #6532 先例补跨席声明(spec 面恒归 spec 座位,声明不是走过场);缺任何
545+
一条 ⇒ 按面外改动正常打回。与前文 #5586 的「生产者在别包」同族异型:那条管
546+
**落点换包**,本条管**多出一个包**
547+
548+
**25. 本执行环境的 Bash 每次调用重置 cwd —— 一切 git 操作一律
549+
`git -C <绝对路径>`,⛔ 不依赖 `cd`** 不止跨仓 grep(前文已有):本班实测
550+
`cd` 之后的**下一条** Bash 调用已回到主目录,git 命令落在错误的仓/工作树上
551+
并静默给出「干净」读数 —— 正是 notes 6「缺失类读数」的形状,且不报任何错。
552+
每条 git 命令自带 `-C` 成本为零,消除整类误读。
553+
517554
The product spans three repos with a fixed dependency direction:
518555
`objectstack` (backend; `packages/spec` is the single contract) →
519556
`objectui` (frontend; its build flows back via `pnpm objectui:refresh`) and

0 commit comments

Comments
 (0)