|
| 1 | +# PM 核心条款(人读摘要) |
| 2 | +每行一条有约束力的规则,按 PM 语料自身的章节分组,供人工复核。 |
| 3 | +细节参数、事实表与操作配方仍以 SKILL.md 与同目录其它 references 为准;本文不新增规则。 |
| 4 | +## 入口与角色 |
| 5 | +- 座位角色由 `/pm-dispatch` 参数认定;无角色参数按执行姿态跑,车道由座位贴认定。 |
| 6 | +- 开轮第一个动作是一次最便宜的车道盘点查询,⛔ 在它之前不读任何长文本。 |
| 7 | +- 队列空、无在飞、无待复核、决策箱无新答复,本轮即自退。 |
| 8 | +- 一轮自 fire 唤醒起,到队列清空或用量窗口耗尽止;轮次报告是轮末汇报 ⛔ 不是停止信号。 |
| 9 | +- 自设定时器只定下次唤醒、不定轮长;新 fire 到时上一轮未清空即接续,⛔ 不重开不重排。 |
| 10 | +- 分诊席跑普通直连会话,达档职责改派显式传档位的子代理;自排下次唤醒不超过 55 分钟。 |
| 11 | +- 开轮互斥读四个读数:收班简报、开轮标记、本车道最新他会话认领、最新关闭卡的认领。 |
| 12 | +- 未收班活动任一未满一个轮次即自退;有收班简报可直接坐席,坐席后先写开轮标记。 |
| 13 | +## 全体座位的不变量 |
| 14 | +- 所有状态住 GitHub 的标签、assignee、正文行与 `pm:seat` 座位贴,⛔ 本地不留跟踪状态。 |
| 15 | +- 循环必须能从全新会话恢复。 |
| 16 | +- PM ⛔ 不写文件也不写代码,唯一例外是维护者逐 PR 明示授权的 `.claude/` 内部工具 PR。 |
| 17 | +- 该例外须把授权原话引在 PR 正文并由另一座位或维护者复核,⛔ 不得自审自合。 |
| 18 | +- GitHub 上的新内容一律英文,中文只留轮次报告、派发令里的裁决引文与决策四维分析。 |
| 19 | +- 裁决引文照抄不译;存量中文 ⛔ 不追溯改写。 |
| 20 | +- 一座位一车道双射,每个域恰好一个 PM;与 AGENTS.md 冲突时以 AGENTS.md 为准。 |
| 21 | +## 状态模型 |
| 22 | +- 可派发等于 open 加队列标签加无 assignee 且不带 `pm:retriage`,已设 assignee 即 ⛔ 永不碰。 |
| 23 | +- `pm:dispatched` 与摘 `pm:queue` 恒在同一次标签写入里成对落地。 |
| 24 | +- `needs-user-decision` 是决定待做:⛔ 永不派发,除代裁通道外 ⛔ 永不代答。 |
| 25 | +- `pm:on-hold` 仅当带机器可读 `Restart-when:` 行才合法,触发文件走 `Restart-touch:` 行。 |
| 26 | +- hold 放行须双查:只放最近一次转换评论的条件,其后有更新的 merged PR 即拒。 |
| 27 | +- 没有可点火出口的卡 ⛔ 不 hold,直接关 not planned 并把理由与出处写进关单评论。 |
| 28 | +- 缺陷卡 ⛔ 不可自行关闭或藏进 hold:可复现回队列、未兑现走 enforce-or-remove、余下进箱。 |
| 29 | +- `pm:blocked` 配正文行 `Blocked-by:`,工已完而卡在门禁的同用此态并写 `Unlock-action:` 行。 |
| 30 | +- `pm:awaiting-maintainer` 只剩站外人工动作;`pm:blocking` 是反向索引推导的缓存 ⛔ 不手工挂。 |
| 31 | +- `pm:retriage` 并存 ⛔ 不摘原标且跳过派发;`finding` 恒等于待首次定级、定级即离标。 |
| 32 | +- 插队标签可超 `batch` 立即派发,⛔ 不豁免同文件串行与认领协议。 |
| 33 | +- 五个 pm 状态标签加 `needs-user-decision` 共六态互斥,转换恒一笔 replace,队列卡逾三天欠转换。 |
| 34 | +- 关闭即在同一笔摘掉 pm 状态标;状态变更不过夜,半状态在结束会话前补齐或回滚。 |
| 35 | +- 等待别的座位也是状态、写在卡上才存在;代他人指令的关闭须带指令、原话与出处三件。 |
| 36 | +- 标签写恒为读现值、增删目标、写合并集、回读比对四步,缺项即重挂,闸门标签同此。 |
| 37 | +## 平台读数纪律 |
| 38 | +- 判据取命令输出,⛔ 不取 API 字段字面值、不取本地工作树、不取看着相邻的日志。 |
| 39 | +- 核验 main 用先 fetch 后的 `origin/main`,⛔ 不用共享检出的工作树。 |
| 40 | +- 零命中必须用确定存在的邻近词反查才成立;仓不可达时 ⛔ 不得当成查过且干净。 |
| 41 | +- 板面、树与队列读数一律自带 UTC 取数时刻,无时间戳的读数按未取处理。 |
| 42 | +- 失效修法按序取:先删掉容许出错的构造,再让正确形态成为唯一拼写,最后才加检查。 |
| 43 | +- 自设定时器的文本以先重读状态开头,只写关键判据,⛔ 不写可直接执行的祈使句。 |
| 44 | +- PM 写进 GitHub 的文本 ⛔ 不用尖括号占位符,携带易损片段的评论发出后回读。 |
| 45 | +- 放行认承载门禁族的 job 结论 ⛔ 不认聚合读数,advisory 红着进 main 即止血并立单。 |
| 46 | +- 子代理自死不等于维护者中止,需显式信号;立单前查重的空结果须有控制词背书。 |
| 47 | +- 默认读序 git、payload、REST、MCP;REST 可达性逐会话探一次;派发前读配额不够就减批。 |
| 48 | +## 多仓协调 |
| 49 | +- 依赖方向固定:objectstack 提供唯一契约,objectui 与 cloud 消费它。 |
| 50 | +- 多车道仓的域标签、类型与定级只由中央分诊生产,单车道仓自理三务但 ⛔ 不产域标签。 |
| 51 | +- 跨仓查重与 shadow 检查恒归中央 ⛔ 不下放,在飞卡 ⛔ 不中途转仓。 |
| 52 | +- issue 住在修复落地的仓,抽掉 objectstack 仍成立的当场转仓;缝卡须带仓标签并点名读者。 |
| 53 | +- 跨仓 feature 拆成父单加每仓一张子单,下游带 `Blocked-by:`,上游未关闭 ⛔ 不派发。 |
| 54 | +- pin 消费的仓派发前核 pin 是否已覆盖那个提交,发布包消费的仓判据是消费方可安装。 |
| 55 | +- 上游未发版时转 hold ⛔ 不回队列;已验收产物流向另一仓由接受席立即立后续单。 |
| 56 | +- 任何跨座位请求都是工作,一律立卡进目标车道队列,等待方同笔把自卡翻 `pm:blocked`。 |
| 57 | +- 凡触 `packages/spec` 一律转 `domain:spec` 座位,不论谁需要它。 |
| 58 | +## 域车道 |
| 59 | +- 每个包恰好属于一个域,域标签等于修复落地的那个包所属的域,由分诊读代码判定。 |
| 60 | +- ⛔ 绝不从 issue 标题的词汇猜域;说不出修复碰哪个文件就还不可标。 |
| 61 | +- 域到包家族的对照表住 SKILL.md,增删一个域标签必须同批改那张表。 |
| 62 | +- 域标签只由分诊席产出;打标签不等于认领,未打标签的 issue ⛔ 任何人不得认领。 |
| 63 | +- 跨域单 PR 由分诊席指定一个车道 PM 认领并申报完整文件面,只此路径跑定向在飞检查。 |
| 64 | +- 合并队列是共享串行资源,谁发现 flake 谁修或立单,⛔ 不绕行。 |
| 65 | +## 座位贴协议 |
| 66 | +- 一座位一贴,正文固定四段现值:当前 PM、继承台账、热文件串行队、说明。 |
| 67 | +- 贴正文由在任 PM 独家编辑且为权威,标题只放慢状态、与 assignee 同为派生视图同笔更新。 |
| 68 | +- 岗位说明与常设承诺版本化在 `references/lanes/` 下,贴内只放指针,升级走技能 PR。 |
| 69 | +- 写侧刷新点是轮次边界,读侧只读正文加晚于它的评论;热文件串行队是正文具名段。 |
| 70 | +- 活性靠惰性判定,超过一天无自有产出即可降级回收;⛔ 永不从更新时刻或标题推死活。 |
| 71 | +- 收班是状态 flush 加在飞安置而非归零,简报是最终一笔;留守只写简报点名的项。 |
| 72 | +- 换班报告默认零建议,只收原则错缺、可机械化项与平台事实变化三类。 |
| 73 | +- 交接按收尾清单逐步走完并清点自设定时器;归档自己派出的会话是不可移交的义务。 |
| 74 | +## 分诊座位职责 |
| 75 | +- 执行席 ⛔ 跳过分诊动作,读到标签当既成事实。 |
| 76 | +- 两级盘点是小时轮读增量加每日全量对账,枚举须比对总数、不等即报不完整并点名缺口。 |
| 77 | +- sweep 扫全裸卡、队列卡缺域标签、域标签卡缺 pm 状态,排除跟踪、停放与协议载体卡。 |
| 78 | +- 首触定级跑到清空 ⛔ 无总量预算、未跑完断点续跑;清得空最新优先,否则最老优先。 |
| 79 | +- 裸卡超过十五张则下一轮改域分批集中模式,每批不超过五张同族卡。 |
| 80 | +- 有落点或可复现的具体缺陷与范围明确的工具修复进 `pm:queue`。 |
| 81 | +- 设计卡、契约形状提案、碰迁移形状或删已发布能力的进决策箱,落卡即带四棱块。 |
| 82 | +- 观察类记录打 `finding` 待首次定级;正文被截断的卡先发修复指令再跳过,不可派发。 |
| 83 | +- 类型字段由分诊席唯一生产,违背已声明契约是缺陷、扩大接受面是功能、其余是任务。 |
| 84 | +- 缺陷卡无具名落点或复现路径不入队列 ⛔ 不回填存量;每张卡留一条英文审计评论。 |
| 85 | +- 路由是分诊的技术判断 ⛔ 永不升级哪个仓的问题;父单是协调节点、永不派发。 |
| 86 | +- 发版板判据二元:不修它当前候选版能不能发 ⛔ 不做渐变,拆票时标签随工作走。 |
| 87 | +- 发版阻塞四类:用户今天撞上的已发布面缺陷、契约声明未兑现、迁移形状、要道歉的。 |
| 88 | +- 代裁只由达档者产出 ⛔ 永不凭自述,不达档则通道整体跳过、卡走维护者路径。 |
| 89 | +- 人工地板恒交维护者:功能新增、ADR、协议与公开契约变化、破坏性或难回滚动作。 |
| 90 | +- 人工地板同样含安全与权限边界、门禁削弱、花费配额与模型档位、新增运行时依赖。 |
| 91 | +- 代裁车道只覆盖行为不变的重构与缺陷修复,边界测试是接受面有没有扩大。 |
| 92 | +- 置信门五条全立才可代裁:四棱同向、不在地板、不推翻既有裁决、否决窗口执行、达档。 |
| 93 | +- 代裁即换标签、贴四棱块与结论、打自动裁决标记、轮报设专节;发现契约要动则回箱。 |
| 94 | +- 方向性授权覆盖整条执行链,需裁事项攒批呈报,运维细节 ⛔ 不弹给维护者。 |
| 95 | +## 执行座位职责 |
| 96 | +- 每轮巡检先读半状态巡查锚上点名本车道的行并逐行处置,未处置 ⛔ 不开新派发。 |
| 97 | +- 候选整车道一次读全再本地求交,每张读全文与全部评论并把裁决逐字引入派发词。 |
| 98 | +- 派发前做前提过时检查,动作面、卡引用面与工作项面三面都对树核验。 |
| 99 | +- 一批内任两单不得碰同一个包、注册表、barrel 或 spec schema;同文件的单跨轮硬串行。 |
| 100 | +- 家族派发须过五门:同缺陷同修法、同包区域、成员皆已裁、逐成员可核、点名排除清单。 |
| 101 | +- 两张以上排队卡共享热文件时,必须以五门为判据显式回答折叠还是串行。 |
| 102 | +- 取卡全序:插队卡、有下游依赖者的卡、发版板上项、缺陷卡、其余,同级按卡龄。 |
| 103 | +- 认领原子对:一次标签写入完成认领与状态对调,随后留 `Claim:` 开头的评论并重读全线程。 |
| 104 | +- 更早的他会话认领即让行并交出已诊断的一切;认领逾一天且无合并证据即疑死。 |
| 105 | +- 回收前先救工作树,有提交的活分支 ⛔ 永不回收。 |
| 106 | +- 一单一次派发调用,档位逐卡显式传参,协议语义面与契约变更卡恒走契约复审档。 |
| 107 | +- 派发词 ⛔ 不整段粘贴 issue 正文,只带增量,并要求子代理自查正文完整性。 |
| 108 | +- 派发词分三区:裁决不可重裁、机制假设须实测、建议路线可换,⛔ 不把假设写成裁决。 |
| 109 | +- 标准非协商条款 ⛔ 不抄进派发词,清单、路径与行号在派发那一刻从树上取。 |
| 110 | +- 危害断言必须有读数,测不了写成问题 ⛔ 不写成栅栏;技能包卡必带净增行数预算。 |
| 111 | +- 收集先扫 GitHub 且报告缺席 ⛔ 永不读作成功;探活每轮先重挂定时器。 |
| 112 | +- 45 分钟是发探针的门槛而非判死门槛,判死只认探针回包、宿主信号或超实测基线。 |
| 113 | +- 停摆永不自愈,按梯度复位、三次即判不可靠重派;报告丢失时按草稿 PR 直接验收。 |
| 114 | +- 复核对 GitHub 核验 ⛔ 不对自述核验,逐项过清单并亲核形态、范围与整包价值密度。 |
| 115 | +- CI 收敛读数只属于复核侧;判决三种:验收落卡、返工最多两轮、升级走决策通道。 |
| 116 | +- 验收后先取 PR 路径面,一条命中受管面即分叉,⛔ 不翻正式、不入队、不挂自动合并。 |
| 117 | +- 受管面 PR 留 draft 并向两个授权批准账户请审;档位不足的契约卡 ⛔ 禁止入队。 |
| 118 | +- 入队资格是每一个检查全绿 ⛔ 不是必查子集;碰生成物的 PR 入队前先同步再重生成。 |
| 119 | +- 跟到合并为止并每轮读队列成员资格与 `origin/main`;踢出按签名台账四分支处置。 |
| 120 | +- 每轮打中文轮次报告,含判决表、升级项、代裁清单、等人合项、受管合并审计与五指标。 |
| 121 | +- 收工点是会话内在飞归零、存档后立即派下一波 ⛔ 不等人闸;清空转待命而不是退场。 |
| 122 | +## 断粮与跨墙恢复 |
| 123 | +- 权威的用量墙信号是失败本身,重置时刻只在撞墙那一刻可得,拿到就记下来。 |
| 124 | +- 拿到重置时刻挂一发定点定时器、否则挂每小时循环 ⛔ 不用延时链,成功后删掉循环。 |
| 125 | +## 升级与决策 |
| 126 | +- 升级只有两条门槛:公开契约或产品语义真实分歧且规范定不了,或动作破坏性难回滚。 |
| 127 | +- 其余都是 PM 的裁量,给维护者的是否决窗口而不是许可门。 |
| 128 | +- 具名不升级类:恢复不变量的修复、技术任务之间的顺序与依赖、验证策略。 |
| 129 | +- 带前提的裁决三件缺一不可:选路线、挂具名可证伪前提、前提不成立必须报分叉。 |
| 130 | +- 同族近似单默认并入既有拒收集;两个实现不一致时带治理的一侧胜出并删另一侧。 |
| 131 | +- 落卡先刷新前提,每条前提行自带一条 re-check 命令;决策默认锚在所属 issue。 |
| 132 | +- 裁决记录四件同笔:鲜度门、状态转换、依赖行活性现验、条件已知即就地判掉。 |
| 133 | +- 出决策箱须引一个同趟取回过的裁决 id,⛔ 时间戳加回忆不算引用。 |
| 134 | +- 方案逐轴过升级与决策段的四轴:业务需求、长远合理性、防 AI 写错、创业阶段聚焦。 |
| 135 | +- 逐轴分析不是可选项;推荐须逐轴给理由,长远合理性权重不低于一半、其余投不翻它。 |
| 136 | +- 有实测拉动时荐长远终态一次付清,零拉动时荐不扩散,防错轴打破余下平局。 |
| 137 | +- 每张决策卡落卡即带标准四棱块;卡先于弹窗,被阻塞的执行卡同笔转 `pm:blocked`。 |
| 138 | +- 项目总监席由人工召唤,四职是复核审计、决裁勤务、维护者动作台账、受管合并审计。 |
| 139 | +## 护栏 |
| 140 | +- PM 不写任何文件;⛔ 永不合自己的、红的或未复核的 PR,合并只经合并队列发生。 |
| 141 | +- 版本发布必须人工,发现未经人工的发布痕迹按事故立案,⛔ 不代跑补救性发布。 |
| 142 | +- 版本包 PR 默认永不催,唯一例外是重要修复已合 main 在等发布且提醒点名用户后果。 |
| 143 | +- 受管面由维护者人工合并且合并即审核记录,⛔ 席位永不以任一账号对受管面 PR 批准。 |
| 144 | +- ⛔ 永不代维护者回答产品或架构问题,唯一例外是已裁的代裁车道。 |
| 145 | +- ⛔ 永不派发 assignee 属于别人的 issue,⛔ 永不派发带决策标签的 issue。 |
| 146 | +- 并行度以 `batch` 封顶,同批按构造文件面不相交。 |
| 147 | +## 报告契约 |
| 148 | +- 终报 JSON 的权威形状住 `.claude/agents/os-dev.md`,⛔ 本协议不另存第二份。 |
| 149 | +- 前提被证伪且无 PR 是合法终报,当再分诊输入复核,⛔ 永不当失败派发。 |
| 150 | +- 报 needs_decision 时 open_questions 非空;范围外发现须已立卡,PM 核验并对读同轮报告。 |
0 commit comments