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
20 changes: 10 additions & 10 deletions .claude/skills/pm-dispatch/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,9 +77,9 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报
- 开轮互斥:fire 开始、首个写动作之前读四个读数,未收班活动任一未满一轮 ⇒ 自退。
- 读数一、二:最近的收班简报,与晚于它的最新开轮标记。
- 开轮标记是轮中会话在座位贴上的唯一痕迹;标记可漏写,认领不可省。
- 读数三:本车道 `pm:dispatched` ∪ `pm:queue` 卡最新非本 session `Claim:` 评论。
- 读数三:本车道 `pm:dispatched` ∪ `pm:queue` 卡最新非本 session 同席号的 `Claim:` 评论。
- 或收班简报后卡分支有推送(逐卡 `git ls-remote`):推即认领,欠一条 `Claim:`。
- 读数四:本车道 `state=CLOSED` 按 `updated_at` 降序第一张卡的 `Claim:` session ID。
- 读数四:本车道 `state=CLOSED` 按 `updated_at` 降序首张带同席号 `Claim:` 卡的 session ID。
- 评审链与总监席的笔迹是跨席作业不算占席;读数三、四只增加自退、永不清座位。
- 总监席多场并行、无在任者:读数一、二与自退对它不成立;`domain:*` 席互斥照旧。
- 同 session 的 subagent dev 认领不触发自退,甄别靠分支。
Expand All @@ -98,7 +98,7 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报
- 内容写只走 REST 代理,⛔ 无 MCP 写;`user.login` 记令牌不记席位,归属 = 文本里的 session ID。
- GitHub 上一切新内容用英文;中文只留四通道(维护者速读、轮报、裁决引文、四维分析)。
- 裁决引文照抄不译;四维中文只管新记录,存量英文块 ⛔ 不迁移;存量中文 ⛔ 不追溯改写。
- 一座位一车道双射:域 X 谁管、PM Y 管什么,各恰好一个答案
- 一 PM 恰管一车道,一车道由一组座位管,一席一贴;PM Y 管什么恰一个答案

## 状态模型

Expand Down Expand Up @@ -199,8 +199,8 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报
- `domain:devx`(工程面)与 `domain:spec`(契约面)跨仓归各自车道。
- 其余(发布库与 apps)归 `domain:ui` 执行席;症状位置不改流向,docs 随所记录的面走。
- 落点不明留分诊首触,⛔ 不猜。
- 车道可按仓分席(域×仓):忙时一个 domain 车道开多个按仓席位,闲时收归一席。
- 分席各有独立座位贴与 claim 互斥;分席是名册状态,不改协议文本
- 车道可分席(席号 `· seat N`,或域×仓):忙时一车道开多席,闲时收归一席;每席独立座位贴
- 认领评论带 `Seat: domain:X#N` 行申报席号(缺省席 1);同席认领互斥,他席认领不触发自退
- 拆分触发预登记:单轮逼近 fire 周期,或某仓在全序下持续断粮 ⇒ 按仓拆回多席。
- seam 卡单一归属:归修复落地仓的席,双仓皆动 objectstack 侧主导。
- `scripts/pm/**` 等住 objectstack 的全板工具链单写手恒为 objectstack 侧席,他侧上游立卡回链。
Expand All @@ -217,7 +217,7 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报
- ⛔ pin bump 不做 rider:走专用 bump 脚本连带 override 与 lockfile。
- 规则 3:联动杂事立单,不靠记忆。
- 已验收 PR 的产物流向另一仓,接受该 PR 的执行席立即在消费仓立后续单,带 `Blocked-by:`。
- 规则 4:纵向拆分,一个分诊 PM + N 个执行 PM,一人一车道双射
- 规则 4:纵向拆分,一个分诊 PM + N 个执行 PM;一人恰一车道,一车道可坐多席
- 分诊座位唯一生产:定级/路由/type/查重/shadow/`duplicate_of`;执行席永不定级或路由裸卡。
- 执行座位信任标签,只在本车道认领;误标 ⛔ 不自行改,挂 `pm:retriage` + 异议评论同笔。
- 突发积压调频率或 `batch`,持续积压按仓拆席走 PR;⛔ 不跨车道借调。
Expand Down Expand Up @@ -252,12 +252,11 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报
| (无固定归属,按落点分诊) | `packages/apps/*`、`packages/console`(dist 由脚本生成 ⛔ 不手改;UI 缺陷走 `repo:objectui`)、`examples/*`(归它演练的子系统)、`docs/audits/**` |

- 表未覆盖的包首次分诊时归类并走 PR 更新本表;新增或退役 `domain:*` 必须同批改本表。
- 座位在编情况以 `label:pm:seat` 索引为准,每个 `domain:*``repo:*` 恰一张座位贴
- 座位在编以 `label:pm:seat` 索引为准,每车道(`domain:*`/`repo:*`)一组座位贴、每席恰一张
- `domain:*` 只由分诊席产出,例外仅在飞卡衍生 sub-issue 承父卡域;无标签的卡 ⛔ 不得认领。
- 跨域例外路径:拆不动的跨域单 PR 由分诊席指定一个车道 PM 认领,认领评论申报文件面。
- 只在跨域例外路径上跑定向在飞检查,范围 = 该单文件面触及的那几个域的在飞单。
- 定向在飞检查读各在飞单认领评论的文件面申报,要求不相交,相交即让行。
- 日常同域批次选择不跑全局在飞检查,同域独立性由本域批次选择保证。
- 派发前在飞检查:读本车道 `pm:dispatched` 卡认领评论申报的文件面,本地求交、不另发查询。
- 跨域例外路径的范围加上该单文件面触及各域的在飞单;相交 ⇒ 排该 PR 之后串行或让行。
- 跨域相交只经三条越界通道:跨域例外路径、认领席跟到底的越界面、接手无主阻塞项。
- 合并队列是共享串行资源:车道买到的是并行编写,不是并行落地。
- 谁发现 flake 谁修或立单,⛔ 不绕行。
Expand Down Expand Up @@ -804,6 +803,7 @@ Session: `session_<id>`
Branch: `claude/issue-<n>-<slug>`
Worktree: `<repo>-issue-<n>`
Domain: `domain:<x>`
Seat: `domain:<x>#<n>` (the seat number this PM sits on; absent = seat 1)
File surface: `<预期触碰的目录>` (stop on breach; explain in the report)
Container & model: `<S 级机械卡 / M / L>`, `mode:subagent | mode:cloud`, `model: <档位,引当次 --tier 输出>`
Clause-②: yes | no
Expand Down
6 changes: 3 additions & 3 deletions .claude/skills/pm-dispatch/references/core-rules.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,15 @@
- 一轮自 fire 唤醒起,到队列清空或用量窗口耗尽止;轮次报告是轮末汇报 ⛔ 不是停止信号。
- 入座自绑 cron Routine 作默认唤醒、只定下次唤醒;fire 到时未清空即接续,⛔ 不重开不重排。
- 分诊席跑普通直连会话、默认判断档,裁决归总监席;`send_later` 只是 ≤55 分钟加速器。
- 开轮互斥读四个读数:收班简报、开轮标记、本车道最新他会话认领、最新关闭卡的认领
- 开轮互斥四读数:收班简报、开轮标记、本车道同席号最新他会话认领与最新关闭卡认领
- 未收班活动任一未满一轮即自退,总监席除外;有简报即坐席,坐席后核章程再写开轮标记。
## 全体座位的不变量
- 状态住 GitHub 标签、assignee、正文行与座位贴;⛔ 本地零状态;循环须能从新会话恢复。
- PM ⛔ 不写文件也不写代码,唯一例外是维护者逐 PR 明示授权的 `.claude/` 内部工具 PR。
- 该例外须把授权原话引在 PR 正文并由另一座位或维护者复核,⛔ 不得自审自合。
- 用户账号仅三用:assignee、授权批准、维护者亲手;写只走 REST 代理,署名随令牌非席位。
- GitHub 新内容一律英文,中文只留轮次报告、派发令裁决引文与四维分析;引文照抄不译。
- 存量中文 ⛔ 不追溯改写;一座位一车道双射,每域恰一 PM;与 AGENTS.md 冲突以之为准。
- 存量中文 ⛔ 不追溯改写; PM 一车道、一车道多席、一席一贴;与 AGENTS.md 冲突以之为准。
## 状态模型
- 可派发等于 open 加队列标签加无 assignee 且不带 `pm:retriage`,已设 assignee 即 ⛔ 永不碰。
- `pm:on-hold` 仅当带机器可读 `Restart-when:` 行才合法,触发文件走 `Restart-touch:` 行。
Expand Down Expand Up @@ -65,7 +65,7 @@
- 域由分诊读代码判定,⛔ 绝不从 issue 标题的词汇猜域;说不出修复碰哪个文件就还不可标。
- 域到包家族的对照表住 SKILL.md,增删一个域标签必须同批改那张表。
- 域标签只由分诊席产出,例外仅在飞卡衍生 sub-issue 承父卡域;无标签的卡 ⛔ 不得认领。
- 跨域单 PR 由分诊席指定一个车道 PM 认领并申报完整文件面,只此路径跑定向在飞检查
- 跨域单 PR 由分诊席指定一个车道 PM 认领并申报完整文件面,在飞检查同域跨域皆跑
- 合并队列是共享串行资源,谁发现 flake 谁修或立单,⛔ 不绕行。
## 座位贴协议
- 一座位一贴,正文固定四段现值:当前 PM、继承台账、热文件串行队、说明。
Expand Down
3 changes: 2 additions & 1 deletion .claude/skills/pm-dispatch/references/seat-post-protocol.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

- 四段的现值由在任座位在写侧刷新时收缩;⛔ 岗位说明 PR 不代改贴正文。
- 标题即状态板,固定格式 `[PM seat] <座位名> — <状态>`;`label:pm:seat` 列表页即舰队状态板。
- 多席车道每席一贴,座位名带席号后缀 `domain:X · seat N`;席 1 省略后缀,沿用现贴。
- 状态词表:`🟢 <github-login>` 在任、`🟢 Routine`、`⏳ vacant`、`⏸️ paused`。
- assignee = 在任 PM 的 GitHub 账号,退场或回收时摘除;无 assignee = 空缺,与标题互为校验。
- 例外:Routine 座位的 bot 身份通常不可被 assign,以标题为准。
Expand All @@ -17,7 +18,7 @@
- 旧账留在上一版 body revision,审计评论带版本指针(哪一版、何时)。
- 超大贴由半状态巡查的 report-only 项浮出,⛔ 不等读取失败。
- 热文件串行队是跨轮跨班次的常设事实:文件 → 有序卡片清单 → 每张卡认领的区域。
- 新增座位贴(拆域)先查 `pm:seat` 索引再立贴。
- 新增座位贴(拆域或加席)先查 `pm:seat` 索引再立贴,席号取本车道现有最大席号加一

## 活性、写侧刷新与收班

Expand Down
Loading
Loading