Skip to content

pm-dispatch 协调模型改版:纵向拆分(分诊/执行)+ 一人一车道双射 + 登记表正文即真相 + 座位 Routine 化(维护者 2026-08-05 拍板) #5472

Description

@os-zhuang

维护者 2026-08-05 拍板的协调模型改版,本单是 SKILL 条款的实施单。背景:#4604 三天累积 79 条登记评论,「现状」与「历史」同通道导致对账成本线性涨;全局在飞检查是 O(PM × 在飞) 的常备税且依赖自由文本申报;objectstack 仓最大,单 PM 认知吞吐不够,同仓多 PM 必须保留——改版目标是把多 PM 的协调税降为结构性防撞。

拍板的模型(五点)

  1. 纵向拆分:1 个分诊 PM(全仓唯一)+ N 个执行 PM。分诊 PM 只扫、只分类、只打标签(domain:* / pm:queue / finding / needs-user-decision)、只拆跨域 issue、只查重,永不认领派发;它是 domain:* 的唯一生产者,「未标签不可认领」从此有机械保障。执行 PM 信任标签、跳过分诊、只在本车道认领。
  2. 一人一车道双射:每个执行 PM 恰好持有一个 domain:* 车道。删除 borrowing 规则(突发积压 → 调高该域 Routine 频率或 batch;持续积压 → 拆域,改表走 PR)。「域 X 谁管 / PM Y 管什么」都恰好一个答案。
  3. 跨域例外路径(唯一越界通道):真拆不动的跨域单 PR,由分诊 PM 指定一个车道 PM 认领 + 认领评论申报文件面 + 定向在飞检查——全局在飞检查从常备税降级为仅此路径触发。
  4. 登记表协议改写([PM] 分片分工登记表 — 谁在管哪个仓库的队列 #4604):正文表格 = 唯一权威现状,就地编辑;行 = 座位(分诊 + 各域 + 姊妹仓),列 = 座位 | 范围 | 当前 PM | 说明;评论仅作交接审计,不承载状态。无急切心跳——活性惰性判定:Routine 座位查调度器(last_fired/next_run),会话座位查其最近产出评论;冲突时 >24h 无产出即可回收。
  5. 座位 Routine 化:每座位一个 cron Routine(fresh session per fire),频率随队列深度独立调(轻域每日、重域每小时),醒来读 [PM] 分片分工登记表 — 谁在管哪个仓库的队列 #4604 拿范围 → 从 labels 重建状态 → 跑一轮 → 结束。轮次互斥的具体机制(防上一 fire 未完成时重入)在实施中定型,倾向「fire 开始时查上一轮产出时间,间隔不足即自退」。试点单:分诊座位先行(见关联单)。

SKILL.md 待改条款

  • 「Multi-repo coordination」rule 4 与「Domain lanes」:改写为上述 1-3(borrowing 段删除;global in-flight check 段改为例外路径专用);
  • 登记表协议段(rule 4 末与 Domain lanes 的 registry 引用、Epic 车道的登记要求):按 4 改写,epic 登记退回 pm:epic 父单正文([PM] 分片分工登记表 — 谁在管哪个仓库的队列 #4604 不重复记,label:pm:epic 即索引);
  • 「One board, no second tracker」rule 5:补充 org Project 为视图层(auto-add workflow 按 pm:*/domain:*/repo:* 聚合三仓,无任何机器读它,GraphQL 成本不进循环热路径——登记表权威层坚持 issue 正文 + REST,依据 Operational note 3 的配额实测);
  • 「Dispatch backends」/「Collect」:补座位 Routine 化的运行形态。

域表重切(与 #5095 同 PR)

domain:engine 现覆盖 objectql + metadata* + platform-objects + core + 全部 driver-,双射下单 PM 吃不下,拆为 domain:engine-coredomain:drivers(建议线:objectql/metadata/platform-objects/core ↔ plugins/driver-*);#5095 的约 20 个漏网包同批归位。拆分即改 SKILL 域表 + #4604 加行。

同文件施工批次

同一 SKILL.md 的待改单:#5441(串行接力等六条运维缺口)、#5130(决策轴扩三条)、#5095(域表补包)。建议一个 dev 一批做完,changeset 一份。

验收

  • SKILL.md 上述条款落地,与本单描述一致;域表拆分后每包恰好一域;
  • [PM] 分片分工登记表 — 谁在管哪个仓库的队列 #4604 正文按新协议运行(已由拍板会话先行改写,见其审计评论),SKILL 引用与实态一致;
  • borrowing 字样从 SKILL 移除,跨域例外路径有明确的触发条件与检查范围。

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions