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
21 changes: 11 additions & 10 deletions .claude/skills/pm-dispatch/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报
- ⛔ 受管面 PR 无授权批准时永不翻 ready、入队或挂 auto-merge;批准在案后席位落地。
- ⛔ 永不合自己的 PR,永不合红的或未复核的 PR,永不绕过合并队列。
- ⛔ 永不派发 assignee 是别人的卡;⛔ 永不派发带 `needs-user-decision` 或 `pm:retriage` 的卡。
- ⛔ 永不代维护者答产品或架构问题;唯一例外是已裁的代裁通道,不得宽于其置信门。
- ⛔ 永不代维护者答产品或架构问题,⛔ 无代裁通道:席位只分析与推荐,裁决恒出自人工。
- ⛔ 永不编辑共享检出,一任务一 worktree;⛔ 永不 `git stash`。
- ⛔ 永不在代码 PR 里改 `content/docs/releases/`。
- ⛔ GitHub 之外永不维护任何跟踪状态;org Project 只是视图,权威层是 issue 正文 + REST。
Expand Down Expand Up @@ -103,7 +103,7 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报
| open + 队列标签 + 无 assignee | 可派发(同卡带 `pm:retriage` 的除外);`pm:queue` 卡恒无 assignee,有即半态 |
| assignee 已设 | 已认领/在飞,不是你的就永不碰;离手恒走释放 —— 三因 = 改路由(限未派发)、前提证伪、弃飞无接管,去向 = 新标签态或车道;在飞卡跟到 MERGED,⛔ 不静默摘 assignee |
| `pm:dispatched` | 已派发(派发评论记轮次),恒带 assignee;与摘 `pm:queue` 同一次标签写入成对落地 |
| `needs-user-decision` | 决定待做:永不派发、除代裁通道外永不代答;维护者的收件箱 |
| `needs-user-decision` | 决定待做:永不派发、永不代答;维护者的收件箱,只由人工裁 |
| `pm:on-hold` | 决定已做且答案是暂不做:不派发不催;仅当带机器可读 `Restart-when:` 行才合法 |
| `pm:blocked` + 正文行 `Blocked-by: #N` | 等上游:选择期跳过,#N 关闭时由解锁扫描或 `scheduled-full-run-card.yml` 刷新放回;工已完、PR 被外部门禁卡住的同用本态;正文或线程行首 `Blocked-by:` 指向无 `Ruled:` 的 open `needs-user-decision` 卡 ⇒ ⛔ 不派发,挂本态直至其 `Ruled:` |
| `pm:awaiting-maintainer` | 决定已做,只剩一次 GitHub 之外的人工动作:不派发不催;与其它 pm 状态标签互斥;入态恒带行首 `Maintainer-action:` 行(细则见 `references/state-machine.md`),无行即半态 |
Expand Down Expand Up @@ -212,12 +212,13 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报
- 只在至少一条成立时升级:选项在产品语义或公开契约形状上真实分歧且既有规范定不了。
- 或责任三答齐指他人代码、已有正路、仅最高权限可达 ⇒ 只提文档或决策卡,⛔ 不派码。
- 或修复以猜测(键名、值形状、模式表)定安全边界 ⇒ 决策卡先比对声明式方案。
- 或修复需破坏性/难回滚动作;其余归 PM 裁量:裁定、派发、维护者否决窗口而非许可门。
- 具名不升级类(立即行动):恢复不变量;技术任务间顺序与依赖;验证策略;说明书脱节。
- 或修复需破坏性/难回滚动作;其余归 PM 裁量:派发与排序,维护者否决窗口而非许可门。
- 人工地板与风险/工作量判据(`triage-duties.md`)任一命中即呈维护者,⛔ 不入 PM 裁量。
- 不升级类(碰产品行为或契约即报 fork):恢复不变量;任务顺序;验证策略;说明书脱节。
- 四类记账事同属不升级类,恒以无产品可见行为变化为界:去重与卡片合并;台账与记账整理;
- 纯文档措辞更正(无契约声明改动);既有门禁内部参数与盲区修复(加强,非削弱,非新增)。
- dev 的 `needs_decision` 经 PM 复核落进不升级类的,PM 直接答复不上传。
- 第三档:带前提的裁决,三件套缺一不可:① 裁决(选定路线)。
- dev 的 `needs_decision` 一律呈人工:PM 附四维分析与推荐(含「疑属不升级类」),⛔ 不代答。
- 第三档:带前提的裁决,亦由人工下,三件套缺一不可:① 裁决(选定路线)。
- ② 把裁决挂在具名、可证伪的前提上,派发令要求 dev 先验前提再动手。
- ③ 显式禁令:前提不成立就报 fork,⛔ 不许硬做,也不许悄悄退回另一个选项。
- 两条元判据,同族近似单默认不进决策箱。
Expand All @@ -231,7 +232,7 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报
- 无自然锚才单开 `[Decision] <一句话>` 卡;分析模板见 `references/decision-analysis.md`。
- 落卡与呈报必带 `Governing text:`(AGENTS.md/ADR/spec docblock/lint 规则);选项与之冲突者非决策卡。
- 协议为基准:spec 与代码不一致默认改代码对齐;改协议单独立卡,⛔ 不作缺陷卡的选项。
- ③:答复/代裁到手,四件同笔:鲜度门/状态转换同笔/`Blocked-by:` 活性现验/条件已判即判。
- ③:人工答复到手,四件同笔:鲜度门/状态转换同笔/`Blocked-by:` 活性现验/条件已判即判。
- 鲜度门 = 录前重读晚于正文最后编辑的评论;案例与机械两旗见 `references/dispatch-runbook.md`。
- 一条裁决已记录的权威载体 = 总监席每场收工的摘要台账(卡、权威、方向、状态转移)。
- 卡上裁决评论是详注,仍是执行与复核的第一落点。
Expand Down Expand Up @@ -261,10 +262,10 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报
交维护者拍板。
- 分歧推荐序按拉动定向:有实测拉动 ⇒ 荐长远形态一次付清;零拉动 ⇒ 荐不扩散。
- 防错轴破余下平局向响亮/结构性;安全/权限边界与破坏性难逆动作恒在人工地板。
- ⛔ 此序只排推荐:分歧块照旧升级,四棱同向置信门与代裁面不变。
- ⛔ 此序只排推荐:分歧块照旧升级,四棱同向 ⛔ 不构成代裁许可。
- 长远合理性权重恒 ≥50%:推荐以长远的读数领起,四轴冲突时其余各轴合起来投不翻它。
- 权重只排推荐不授权:读缩小特例与契约增生,⛔ 不背书投机扩张、不放行人工地板事。
- 四维分析从业务角度写;四棱是四轴的卡面序列化,一一对应,也是分诊代裁置信门的输入。
- 四维分析从业务角度写;四棱是四轴的卡面序列化,一一对应,是人工裁决的输入。
- 卡先于弹窗:需裁决先落 `needs-user-decision` 卡;列选项等答的聊天即弹窗;⛔ 不 assign 推送。
- 决策卡带选项、推荐、证据、四棱块与工作量列;受阻执行卡同笔挂 `pm:blocked`+`Blocked-by:`。
- `AskUserQuestion` 只是在场加速器:仅当维护者在本会话 ~30 分钟内有过人类输入才可发。
Expand All @@ -273,7 +274,7 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报
- 一行 ≤200 字,先写动作与编号;每项恰一次,例行进展、刚问刚答与在场即见的不推。
- 项目总监席:维护者在所在仓召唤 `/pm-dispatch director`;⛔ 无 Routine/cron;未回字 = 不在 = 停。
- 总监席档位由维护者按项目人工定,每场记入摘要台账;⛔ 无档位硬门、无免档整理态。
- 总监席是唯一裁决者:决策箱、代裁与一类自裁只出自本席,⛔ 无子代理无自述。
- 总监席是唯一呈裁席:决策箱只经本席呈维护者人工裁;⛔ 无代裁无自裁无子代理。

## 报告契约

Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/pm-dispatch/references/contract-review.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
只读条款与输入集内建,⛔ 不删 ⛔ 行。
- 隔离复核子代理暂存全写按所审 PR 命名的 `<scratchpad>/pr-<n>/`,⛔ 不读非本轮自写的暂存。
- 独立性对:`Implemented-by:`/`Reviewed-by:` 取值同见 `--template`;子代理记采纳它的席位。
- 轮次报告设复审清单专节,形状与代裁清单同为强制审计。
- 轮次报告设复审清单专节,与呈裁清单同为强制审计。
- 落地前检两条,过则 Tier S 入队、Tier H 等人批:① 达档条款②复核 PASS 在案(同形记录)。
- 例外:纯重生成或只动上列散文面的 head 后移原记录继续管;判据机读已提交树;
PR 落 `Regen-provenance:` 行。
Expand Down
8 changes: 4 additions & 4 deletions .claude/skills/pm-dispatch/references/dispatch-runbook.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@
- 尾页缺读数再回翻一页,⛔ 不读整线程;返回数少于总数 ⇒ 记录可能已消失,报缺口。
- 长线程状态读外包:>~15 条的线程派下限档只读子代理返回结构化摘录,尾部优先。
- 状态提取 = 找最新转换评论、抽 `Restart-when:` 行、确认 claim 或 report 在不在。
- ⛔ 裁决级阅读(契约复审、放行判定、代裁)不可外包:那是拿放行质量换 token。
- ⛔ 裁决级阅读(契约复审、放行判定、呈裁分析)不可外包:那是拿放行质量换 token。

## 分诊两级盘点细则

Expand All @@ -74,7 +74,7 @@
## 落卡与裁决记录细则

- 裁决记录四件补遗:鲜度门可内联声明分歧代替调和正文。
- 对过期正文记录的裁决按过期论;四件本体、记录座位全责、维护者裁与代裁同规。
- 对过期正文记录的裁决按过期论;四件本体、记录座位全责;所记恒为维护者的裁。
- 出决策箱须引可取回的裁决 id:认领与派发带 `Ruling-ref: <评论 id>`,指向同卡裁决评论。
- 且该 id 同趟取回过,取这一下就是判据;带 id 不等于可取回。
- 读侧对称:决策复读命中无可取回 id 的出箱按未裁处理,同笔转回、⛔ 不派。
Expand Down Expand Up @@ -112,7 +112,7 @@
- 同时带 `outcome_branch`(= 认领分支)、显式 `model`(trigger 流不可指模型)、`title`。
- `title` 以车道名开头,⛔ 不叫 os-dev,形如 `⚡ <车道> #<单号> <短语>`。
- 二、派发词必带自驱条款:云会话回合一结束即停摆等 poke。
- ⛔ 不为提问或中期汇报结束回合;开放选择按裁决与评估轴自裁,记入终报 `open_questions`。
- ⛔ 不为提问或中报结束回合;实现取舍自定记入 `open_questions`;碰产品行为/契约报 fork。
- 合法回合终点只有两个:推送完成加终报,或硬阻塞详报。
- 三、交付通道:dev 自开 draft PR(`Fixes #<n>` 只写正文,`partof-closing-keyword` RULE 2,含验证记录)。
- 未 attach 的姊妹仓够不着,跨仓跟进卡由 PM 代立。
Expand Down Expand Up @@ -143,7 +143,7 @@
- 分支约定仍是 `claude/issue-<n>-<slug>`;线程只能推指定分支是实测平台例外,认领如实写。
- worktree 照建;仓 `.claude/agents` 类型未加载(实测),线程照读 `os-dev.md`。
- 交回:PR 与报告落地后给席位线程发一条消息(PR、head、报告要点);审核期线程不关,接 FAIL。
- 终报 `needs_decision` ⇒ 席位交 coordinator 开 `CONTRACT_REVIEW_TIER` 裁决线程(`lanes/director.md`)。
- 终报 `needs_decision` ⇒ 席位附四维分析与推荐,并入决裁批次呈维护者裁;⛔ 无裁决线程。
- 容器重启杀本地后台循环:席位等服务端信号(PR 订阅事件、座位 Routine),本地 watcher 可选。

## subagent 批派发前置:先把本地检出钉到 main
Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/pm-dispatch/references/execution-duties.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@
- 纯机械一行 PM 酌定可至下限档;降档施工的补偿控制 = 复核席跑契约复审档。
- 降档施工只经契约复审档复核到达维护者,⛔ 不新增标签不新增链。
- 强制条款②:放宽接受集或扩大公开面的卡默认判断档施工;命中即 spec 车道的活。
- 条款②判据即代裁的机械边界测试与 `references/lanes/spec.md` 席内分派判据,⛔ 不另抄。
- 条款②判据即 triage 机械边界测试与 `references/lanes/spec.md` 席内分派判据,⛔ 不另抄。
- 负边界:运行时权限/安全行为变更不是条款②,归人工地板安全/权限边界类。
- 条款②只指已发布契约面,拉回已声明契约不触它;卡面复述仍是条款②。
- 收窄已发布接受集的卡是 `Clause-②: no`,不移车道;入队前欠一次契约复审档复核。
Expand Down
16 changes: 7 additions & 9 deletions .claude/skills/pm-dispatch/references/lanes/director.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,13 @@
- 裁决记录同笔写明所选字母的工作量,读数取自卡面工作量列。
- 划掉原 ⛔ 不派断言,走 `post-stamped --body --ack-through`;漏此笔 ⇒ 接卡者先读正文退决策箱。
- 入口:维护者说处理决裁或处理 contract-review,或 `/pm-dispatch director`。
- 未回字 = 不在 = 停,⛔ 无巡检、审计、快照、聊天、卡评论;唯一例外是项目内代裁通道。
- 未回字 = 不在 = 停,⛔ 无巡检、审计、快照、聊天、卡评论;⛔ 无任何例外。
- 回来后先补跑审计与重挂复位一次,再只发一行「批 #N 待字;箱内另有 K 张新到未呈」。
- 开场读一次服役档记入会话审计行,读法见 `../platform-readings.md`;⛔ 不因档位拒裁停三职。
- 双射 carve-out:一张 `pm:seat` 座位贴,四段照旧;状态块逐场一行,各记己锚,⛔ 无占席人。
- 不占 `domain:*` 车道,范围按职责标签跨车道跨仓;永不认领 backlog、永不写码。
- 项目内代裁通道:卡线程报 `needs_decision` ⇒ coordinator 开裁决线程代本席裁,⛔ 非子代理。
> 维护者常设令(首用:裁决记录 6336640643),逐字不译:对于这种类似的问题,能否你自己开一个单独的 fable thread 做评审,对于自己有把握决定的问题,自己决定,不能决定的开决策卡?
- 「有把握」= `../triage-duties.md` 置信门四条全立,⛔ 不宽于它;余者一张决策卡呈维护者。
- 录裁同上形:批次位写 `needs_decision fork`,maintainer 位引常设令;逐裁一行进 coordinator 追认表。
- 项目内卡线程报 `needs_decision` ⇒ 席位写四维分析加推荐,并入决裁批次呈维护者人工裁。
- 维护者令「必须人工决裁」撤销「有把握自己决定」;⛔ 无裁决线程、代裁、置信门。

## 基本原则

Expand All @@ -47,17 +45,17 @@

## 职责二:决裁勤务

- 首批读完前 ≤5 张同族卡即呈;一类自裁按批过,⛔ 不先扫全箱,自裁者由下一候选补位。
- 首批读完前 ≤5 张同族卡即呈;⛔ 不先扫全箱;每张皆呈维护者,⛔ 无自裁、无免呈。
- 取下五张只用便宜扫描:标签、assignee、PR 引用、速读首行;全文只读手上五张。
- 判据:开场标记→首批 ≤ 读五张;全立者录裁转工作态、只入收班追认表,⛔ 不呈批。
- 判据:开场标记→首批 ≤ 读五张;录裁只录维护者回字,⛔ 不自录、不自转工作态。
- 决策收件箱 `needs-user-decision` 跨仓勤务,按基本原则批呈;⛔ 不复活已退役的汇总 issue。
- 一次只开一批:维护者对批 N 回字(一字即可)后,新到才合成批 N+1;续批至清零才收工。
- 受管草稿批:两仓 `is:pr is:open is:draft label:needs-user-decision` 对照等人合清单,差集点名。
- 有席内 ACCEPT 者呈一批 ≤5 行,写法见 `../decision-analysis.md`;四件缺一者列缺口不呈。
- 回批原话逐 PR 记到 PR 上,缺的请审补上即止步;批准与合并恒是维护者的点击,⛔ 不代。
- 呈报前逐卡逐仓重跑 `git grep -n -iE 'TERMS' origin/main -- AGENTS.md docs/adr packages/spec/src`。
- 以协议为准:消费面对齐协议 ⇒ 一类自裁,协议没有的能力删,⛔ 不立卡问协议。
- 协议是否正确由本席按①读协议原文与主流平台自判,有误即裁改动而非立卡提问。
- 以协议为准:消费面对齐协议 ⇒ 荐对齐呈批,协议没有的能力荐删;⛔ 不自裁。
- 协议是否正确由本席按①读协议原文与主流平台分析,有误即荐改动呈批,⛔ 不自裁。
- ADR 条目被协议取代 ⇒ 条目下加带日期注记点名 spec 符号,⛔ 不改写原文、不沉默。

## 职责三:维护者动作台账
Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/pm-dispatch/references/seat-lifecycle.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@
## 轮次报告与节奏

- 每轮向维护者打中文轮次报告(chat 通道):issue → 判决 → PR 链接 → 备注的表。
- 报告加升级项、代裁清单(分诊)、awaiting a human merge 项、逐 PR 熔断命中项(无则 none)。
- 报告加升级项、呈裁清单、awaiting a human merge 项、逐 PR 熔断命中项(无则 none)。
- 报告含 `UNRECOGNISED` 行:对本轮门禁日志 grep `UNRECOGNISED` 逐行照录,`NOT APPLICABLE` 行也在内。
- 健康指标五个:可派发库存(open `pm:queue` 未认领及趋势);决策箱(待维护者数)。
- 决策箱指标还要点名带开放下游依赖的决策卡,从 `Blocked-by:` 反向索引现算。
Expand Down
Loading
Loading