@@ -54,7 +54,7 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报
5454| ` triage ` | 以分诊座位身份运行(只扫/分类/路由,永不认领) | — |
5555| ` <domain> ` (如 ` spec ` 、` skills ` ) | 以该 ` domain:* ` 车道的执行座位身份运行 | — |
5656| ` epic:#<n> ` | 以父单 #n 的 epic PM 身份运行(见 Epic 子树车道 节) | — |
57- | ` director ` | 以项目总监席身份运行(人工召唤;四职见 升级与决策 节与 ` references/lanes/director.md ` ) | — |
57+ | ` director ` | 以项目总监席身份运行(人工召唤;三职见 升级与决策 节与 ` references/lanes/director.md ` ) | — |
5858| ` label:<name> ` | backlog 过滤标签;` label:all ` = 全部 open 未认领 | ` pm:queue ` |
5959| ` repo:<owner/name> ` | 扫哪个仓的 backlog(单 issue 的落地仓看它自己的 ` repo:* ` 标签) | ` objectstack-ai/objectstack ` |
6060| ` batch:<n> ` | 同时在飞的 dev 上限 | 默认 ` 3 ` ;` n ` 的维护者天花板 ` 5 ` |
@@ -114,6 +114,7 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报
114114| ` pm:blocking ` | 有 open 下游依赖者(自 ` Blocked-by: ` 索引推导的缓存,⛔ 不手工挂);进选择全序 |
115115| ` pm:retriage ` | 向分诊提问(改判、跨域 PR 指定车道、改路由、拆卡、裁 dev 报告留下的分叉),定车道与改路由限未派发卡,异议评论写明所求;与现行 ` pm:* ` 并存、⛔ 不摘原标;带本标签的 ` pm:queue ` 卡跳过派发 |
116116| ` finding ` | 立卡三类内待首次定级,定级即离标;三类外关 not planned;不占队列不进收件箱 |
117+ | ` tooling ` | 修复落在门禁/脚本/workflow/技能/席位协议/PM 工具面而非产品包;分诊首触打,与 ` domain:* ` 同笔;四具名读者 = 候选查询排除、首触即关、舰队一张在飞、普查半态行 |
117118| ` target:<major> ` | 发版阻塞:每个 backlog 恰好一个生产者 |
118119| ` pm:epic ` (父单或 sub-issue) | 已由 epic PM 保留;其它 PM 永不取;⛔ 永不与 ` pm:queue ` 同挂 |
119120| ` pm:seat ` | 座位登记贴:协议载体,不是待分诊的工作 |
@@ -170,6 +171,8 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报
170171- 仓不可达 ⛔ 不当查过了干净:在 issue 上贴出给对应座位的现成命令,等读数回贴再派。
171172- 读数与认领等座位文本恒带 UTC 取数时刻 ` YYYY-MM-DDThh:mmZ ` ;树读数另带 ref/tip,无者按未取。
172173- 失效修法按序取:先删容许出错的构造,再让正确形态成唯一拼写,最后才加检查。
174+ - 门禁两次误报(假红、实测假绿、处方句点名不存在路径)⇒ 删肢或删门禁,PR 引两次测量。
175+ - 只有护产品落地或用户可见契约的门禁才立修复卡;门禁上「稳定 > 功能」= 更少零件。
173176- 自设定时器的文本以先重读状态开头,只写关键判据(若 X 则 Y),其余指针化。
174177- 定时器文本 ⛔ 不写结论、不含未经重读即可执行的祈使句。
175178- 放行认门禁 job 的结论(` completed: success ` ),⛔ 不认聚合读数。
@@ -337,7 +340,8 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报
337340- 分类动作每张三选一,外加一个修复通道。
338341- ⛔ 不挂 ` needs:contract-review ` :随 draft PR 或 ` Clause-②: yes ` 认领;裁定写方向、给六态之一。
339342- 方向在 ADR/本卡裁决/不可重裁规则:贴 ` check-prior-rulings.mjs ` 的 ` Prior rulings read: ` 行,或不点。
340- - ` pm:queue ` = 有具名落点或复现的具体缺陷,或范围明确的工具/门禁修复,无可问之事。
343+ - ` pm:queue ` = 有具名落点或复现的具体缺陷,无可问之事;⛔ 工具/门禁修复不由此进。
344+ - ` tooling ` 入 ` pm:queue ` 仅当首行带 ` Unblocks: #N ` (open 产品卡)或点名所护的已发布面。
341345- ` pm:queue ` 也收恢复不变量的 finding、test-only pin,与实现未被裁错的说明书脱节(修文档)。
342346- ` needs-user-decision ` = 设计卡、feature/契约形状提案、需要 appetite 的多周程序。
343347- 碰迁移形状或删已发布能力也进决策箱;说明书脱节不进:有裁定出处才是 (b),否则改文档。
@@ -346,6 +350,7 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报
346350- ` finding ` = 三类内待定级:(a) 可复现缺陷(复现或失败探针);(b) 违背已声明契约(引契约文);
347351- (c) AI 写元数据会被运行时拒收或静默丢弃的陷阱;其余进 PR ` ## Acceptance notes ` ,⛔ 不立卡。
348352- (a) 的分界是不完整 vs 错误,不是文档 vs 代码:示例照抄即失败是 (a),漏列成员不是。
353+ - 门禁头注、self-test 文案与 ` check-* ` 处方句 ⛔ 非已声明契约;(b) 须用户或已发布包读得到。
349354- (c) 元数据 = 由写它的人以外的人存储并再作者化的键: React prop 不是,存储的视图配置是。
350355- 把作者引向运行时会兑现却让事情更糟的元数据的警告不在 (c) 内;记为边界,⛔ 不扩类。
351356- (a) 须今天可达,(c) 须具名生产者;观察、休眠、零拉动 ⛔ 不立卡、不进汇总卡、无配额。
@@ -360,9 +365,11 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报
360365- 判据:违背已声明契约 ⇒ ` Bug ` ,扩大接受集/公开面越出已声明 ⇒ ` Feature ` ,其余 ⇒ ` Task ` 。
361366- ` Bug ` 无具名落点或复现路径不入 ` pm:queue ` (标记补复现)。
362367- ⛔ 不回填存量 backlog 的 type;新卡即时打、存量卡下次碰到补。
363- - 定级按北极星「优先级」1、2 条;首行 ` Path: <定义项> | <清单项 id/缺项> | P<路步> | none ` 。
368+ - 定级按北极星「优先级」1–3 条;首行 ` Path: <定义项> | <清单项 id/缺项> | P<路步> | none ` 。
364369- 定义项取北极星「做出来的是什么」或仪器卡的车队决定;无则关;` none ` 非分诊缺口。
365370- 清单项会 fail 才算断,继承其 ` priority ` ;缺项先补账本;⛔「有人在等」不是定级判据。
371+ - 「无则关」= 首触即关 not_planned,带理由与入队两条件,⛔ 不定 p3、不 hold;下行同此。
372+ - 产品仓 P0/P1 开着时,无解锁对象的 p2/p3 ` tooling ` 卡同样关。
366373- 路由是分诊的技术判断,⛔ 永不升级哪个仓的问题;父单是协调节点,永不派发。
367374- 父单已有子结构的:父单队列标签即可,分诊逐个展开路由、补 ` Blocked-by: ` 排序。
368375- 每张留一条英文审计评论(` Triage: lands in …; rationale: … ` ),可选带 ` Size/model suggestion: ` 行。
@@ -426,7 +433,7 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报
426433### 候选与批次
427434
428435- 整车道一次读全,本地求交:` list_issues ` 带 ` labels: [domain:X] ` + 最小字段拿回全车道 open 集。
429- - 候选 = open、未 assign、无 ` needs-user-decision ` 、无 ` pm:retriage ` 。
436+ - 候选 = open、未 assign、无 ` needs-user-decision ` 、无 ` pm:retriage ` ;⛔ 排除两行皆无的 ` tooling ` 卡 。
430437- 已排队父单的 open sub-issue 自动是候选,` pm:epic ` 父单的子树除外。
431438- 每张候选读全文 + 全部评论,写派发词前做决策复读:评论读到最后一页。
432439- 维护者裁决逐字引入派发词裁决分区作约束,无则写明无裁决。
@@ -438,6 +445,7 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报
438445- 工作项面:卡片与分诊评论列的每条工作项逐条对树核验是否仍未完成,⛔ 不对卡核验。
439446- 每条工作项写进派发令时都是 dev 首先证伪的前提。
440447- 并行度以 ` batch ` 封顶,等待不填槽;同批独立按文件面不相交判,⛔ 不按包、不按 check 名。
448+ - 舰队至多一张 ` tooling ` 卡带 ` pm:dispatched ` ,第二张等;带 ` Unblocks: ` 者继承产品级不计数。
441449- single-writer 路径 = ` SINGLE_CLAIM_PATHS ` 所枚举;共享其它路径是普通并发,后落地方解冲突。
442450- 第 N 单派发前读 ` scripts/pm/os-verify-lock.sh --status ` :到达深度 ≥ ` LOCK_DEPTH_HOLD ` (= 2)即等。
443451- 到达深度 = ` queue N: ` 行数 + 1(待派 dev 的运行算作到达);` state: ` holder 与 ` parked ` 行不计。
@@ -671,9 +679,7 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报
671679### 轮次报告与节奏
672680
673681- 每轮向维护者打中文轮次报告(chat 通道): issue → 判决 → PR 链接 → 备注的表。
674- - 报告加升级项、代裁清单(分诊)、awaiting a human merge 项、governed 合并审计清单。
675- - 审计清单实跑 ` node scripts/pm/check-governed-merges.mjs --since <上轮> ` ,⛔ 不凭记忆汇总。
676- - 车道审计是早警;权威合并窗口与认定/回滚处置归总监席,见 ` references/lanes/director.md ` 。
682+ - 报告加升级项、代裁清单(分诊)、awaiting a human merge 项。
677683- 报告含 ` UNRECOGNISED ` 行:对本轮门禁日志 grep ` UNRECOGNISED ` 逐行照录,` NOT APPLICABLE ` 行也在内。
678684- 健康指标五个:可派发库存(open ` pm:queue ` 未认领及趋势);决策箱(待维护者数)。
679685- 决策箱指标还要点名带开放下游依赖的决策卡,从 ` Blocked-by: ` 反向索引现算。
@@ -764,7 +770,7 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报
764770- ` AskUserQuestion ` 只是在场加速器:仅当维护者在本会话 ~ 30 分钟内有过人类输入才可发。
765771- 每问必带推荐项,被 Skip 或长挂即转卡通道,⛔ 不重弹。
766772- 项目总监席:维护者在所在仓召唤 ` /pm-dispatch director ` ;⛔ 无 Routine/cron;未回字 = 不在 = 停。
767- - 四职 = ` needs:contract-review ` 事后审计、决裁勤务、维护者动作台账、governed 合并审计 。
773+ - 三职 = ` needs:contract-review ` 事后审计、决裁勤务、维护者动作台账。
768774- 每场召唤把带席内 ACCEPT 的受管草稿呈为一批 ≤5 行决裁;批准与合并仍是维护者的点击。
769775- 总监席档位由维护者按项目人工定,每场记入摘要台账;⛔ 无档位硬门、无免档整理态。
770776- 总监席是唯一裁决者:决策箱、代裁与一类自裁只出自本席,⛔ 无子代理无自述。
@@ -786,7 +792,7 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报
786792| ` scripts/pm/check-skill-line-ratchet.mjs ` | 本文件行数只降不升(` pnpm check:pm-skill-ratchet ` );抬上限需维护者裁决引用在 PR 正文;⛔ re-wrap 不得用作筹行,新增以删减付账;不买内容的密度修复允许 |
787793| ` scripts/pm/check-skill-id-lint.mjs ` | 本技能与 os-dev 定义的操作文本 ⛔ 不引用 issue 编号(` pnpm check:pm-skill-id-lint ` ) |
788794| ` scripts/pm/check-half-states.mjs ` | label/assignee/PR 半状态的 report-only 巡查(含已复核就绪却无人落地的孤儿 PR 检测) |
789- | ` scripts/pm/check-governed-merges.mjs ` | governed 面合并清单的 report-only 审计(事后防线;轮报载体, 本地枚举零 API,仅归因走查询) |
795+ | ` scripts/pm/check-governed-merges.mjs ` | governed 面合并清单的 report-only 审计(事后防线;本地枚举零 API,仅归因走查询) |
790796| ` scripts/pm/dispatch-gates.mjs ` | 文件面 → 该跑的门禁族(派发令取数) |
791797| ` scripts/pm/git-history.mjs ` | 窗口化 commit 计数:回答或 REFUSE(浅 clone 对窗口化 ` git log ` /` rev-list ` 以 exit 0 无警告答错);` historyHorizon() ` 是只读谓词 |
792798| ` scripts/pm/os-regen-merge.sh ` | 碰生成物 PR 的 merge 四步序(防静默吞并与锚点倒退) |
0 commit comments