Commit 5acb93a
* docs(pm-dispatch): 协调模型改版 —— 分诊/执行纵向拆分 + 一人一车道双射 + 登记表正文即真相 + 座位 Routine 化 (#5472)
维护者 2026-08-05 拍板的 PM 协调模型改版,落到 `.claude/skills/pm-dispatch/SKILL.md`
(唯一文件面)加一份 changeset。前提已对 origin/main 核过:同文件今天已合的 #5130
(决策轴)与 #5095(域表 22 包)成果全部保留,engine 域拆分与本单其余条款在 main
上均未落地,按增量施工。
- Multi-repo rule 4 重写为「纵向拆分 + 双射」:1 个分诊 PM(全仓唯一,只扫/分类/
打标签/拆跨域/查重,永不认领派发,`domain:*` 的唯一生产者)+ N 个执行 PM(信任
标签、跳过分诊、只在本车道认领)。旧的分片阶梯 / 同队列禁令 / Borrowing 三段
删除,只留一处「越界许可已删除」的墓碑句。
- 跨域例外路径成为唯一越界通道:分诊座位指定单一车道 PM 认领 + 申报文件面 +
定向在飞检查(写明触发条件与检查范围);全局在飞检查从每轮常备税降级为该路径专用。
- 座位表协议(#4604):正文表格即唯一权威现状,行=座位 / 列=座位|范围|当前 PM|说明,
接管即就地编辑该行 + 审计评论;评论不承载状态;无心跳,活性惰性判定,>24h 无产出
可回收。epic 登记退回 `pm:epic` 父单正文(`label:pm:epic` 即索引),座位表不重复记。
- rule 5 补 org Project 的分层定位:视图层、无任何机器读它、GraphQL 配额不进循环
热路径;权威层坚持 issue 正文 + REST。
- 域表重切:`domain:engine` 拆为 `domain:engine-core`(objectql / metadata* /
platform-objects / core / formula / plugin-pinyin-search)与 `domain:drivers`
(`plugins/driver-*`),附存量标签迁移与座位表加行要求;拆分后每包恰好一域。
- 座位 Routine 化的运行形态(Dispatch backends / Collect / step 9):每座位一个
cron Routine、fresh session per fire、频率随队列深度独立调、读 #4604 拿范围 →
从 labels 重建状态 → 跑一轮 → 结束;轮次互斥取「fire 开始查上一轮产出时间,
间隔不足即自退」。⛔ 如实记录 #5474 试点实测:CCR 会话内 create_trigger 创建的
Routine 不携带 GitHub 连接器,fired session 无 mcp github 工具即静默零产出,
座位 Routine 须由维护者从 claude.ai Routines UI 带连接器创建并先烟测。
- round loop 新增职责划分表(step 0 / step 2 分类半边属分诊座位,step 1、3-9 属
执行座位)+ step 0 三处扫描排除 + Guardrails 两条新 binding。
刻意未动:`.claude/agents/os-dev.md`(在飞 #5441 的领地)、`content/docs/releases/`、
已发布目录 `skills/objectstack-pm-dispatch/`、#4604 正文本身(运行态登记由 PM 落地)。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01N3uGFF8teXbpgtbEJ1aYXu
* docs(pm-dispatch): 与 #5501 的语义合并 —— 座位 Routine 与停摆纠偏/串行接力的层级互引 (#5472)
#5501(#5441 的实施)已于 2026-08-05T15:02:23Z 合入 main,本分支终轮 git merge
origin/main 无冲突(两 PR 的落点区段互不相交)。机械合并之后补两处**语义**叠加,
使两侧意图相加而不是并排放置:
- step 6 Collect:#5501 的停摆纠偏靠 SendMessage 唤醒一个还活着的对面,而座位
Routine 的 fire 结束后没有可唤醒的 subagent —— 停摆与「会话已销毁」在 GitHub
上是同一个读数。补一段:验证管线可能超过一个 fire 的活,一开始就走 mode:cloud,
把恢复权交给下一轮的 GitHub 读数。
- 座位 Routine 化一节:补跨 fire 长流程的可行性依据 —— 串行接力(一棒一整圈 +
棒间 PM 复核)必然跨多个 fire,能跨过去是因为交接物全是 GitHub 读数(draft/
ready、auto-merge 是否挂上、预期红停放那份签名级清单写在 PR body 里);因此
对长流程只加一条要求:接力/停放的每一项都要落成 GitHub 上可读的文本,不许把
「下一棒该干什么」留在会话记忆里。
未改 #5501 的任何原文(含其「飞行中范围重叠拦截」段 —— 它说的是 PM 为**自己**
在飞的 agent 复查 main,双射之下天然就是本车道范围,与本单删掉的跨 PM 全局在飞
检查不是同一个机制,无需改写)。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01N3uGFF8teXbpgtbEJ1aYXu
---------
Co-authored-by: Claude <noreply@anthropic.com>
1 parent 60e430b commit 5acb93a
2 files changed
Lines changed: 327 additions & 133 deletions
File tree
- .changeset
- .claude/skills/pm-dispatch
Lines changed: 52 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
0 commit comments