From 6fb2d7ebd6ff0227d5651c221136a73a232d15fe Mon Sep 17 00:00:00 2001 From: os-warren Date: Mon, 26 Oct 2026 15:19:46 +0000 Subject: [PATCH 1/2] docs(pm-dispatch): the seat that sees a main-red files and dispatches it MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit landing-operations.md §B: 约定① names the seat that sees a full-battery red on main or a merge-queue build as the actor — anchor lookup first, then a p0 anchor card (filing class ①) carrying the failing surface's lane domain, claimed and dispatched without waiting for triage first-touch or the maintainer's word; the first stanch is the revert of the commit that introduced the red, root cause on its own card; triage first-touch follows and may change the domain, never the action. The p0 fix-forward and hand-merge conventions stay, compressed to one line; 约定② is unchanged. Paid line for line by retiring the two Tier S / Tier H lines already stated in SKILL.md 路径分叉 and contract-review.md. execution-duties.md: the candidate rule names main-red as its second exception beside the sub-issue clause, and the dispatched-past-triage line now covers both. triage-duties.md: the in-flight main-red anchor still gets its first touch, as a recorded grade that may change the domain and never the action; paid by retiring the human-ruling line already stated as a SKILL.md 红线. SKILL.md: the domain-production and queue/level lines name two exceptions instead of one, edited in place. Claude-Session: https://claude.ai/code/session_01LqKsGyMNFwwnbF5FTAqyPn Co-authored-by: Claude --- .claude/skills/pm-dispatch/SKILL.md | 4 ++-- .claude/skills/pm-dispatch/references/execution-duties.md | 4 ++-- .../skills/pm-dispatch/references/landing-operations.md | 8 ++++---- .claude/skills/pm-dispatch/references/triage-duties.md | 4 ++-- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.claude/skills/pm-dispatch/SKILL.md b/.claude/skills/pm-dispatch/SKILL.md index c334d6de0de..713121607a5 100644 --- a/.claude/skills/pm-dispatch/SKILL.md +++ b/.claude/skills/pm-dispatch/SKILL.md @@ -167,8 +167,8 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报 - 表未覆盖的包首次分诊时归类并走 PR 更新本表;新增或退役 `domain:*` 必须同批改本表。 - 退役 `domain:*` 只退流通,对象保留;`domain:engine`/`domain:services`/`domain:cli` 读作 `domain:server`。 -- `domain:*` 只由分诊席产出,例外一:在飞卡衍生 sub-issue 承父卡域;无标签的卡 ⛔ 不得认领。 -- 预贴标签只是建议,队列与级别只由分诊落笔(例外一同承);无分诊审计评论 ⛔ 不得认领。 +- `domain:*` 只由分诊产出,两例外:sub-issue 承父卡域、main-red 锚卡;无标签的卡 ⛔ 不得认领。 +- 预贴标签只是建议,队列与级别只由分诊落笔;无分诊审计评论 ⛔ 不得认领;两例外豁免。 - 跨域例外路径:拆不动的跨域单 PR 由分诊席指定一个车道 PM 认领,认领评论申报文件面。 - 派发前在飞检查:读 `pm:dispatched` 卡认领评论申报的文件面,本地求交、不另发查询。 - 跨域例外路径的范围加上该单文件面触及各域的在飞单;相交 ⇒ 排该 PR 之后串行或让行。 diff --git a/.claude/skills/pm-dispatch/references/execution-duties.md b/.claude/skills/pm-dispatch/references/execution-duties.md index 6ee36da89a3..c1177636710 100644 --- a/.claude/skills/pm-dispatch/references/execution-duties.md +++ b/.claude/skills/pm-dispatch/references/execution-duties.md @@ -7,7 +7,7 @@ - 整车道一次读全,本地求交:`list_issues` 带 `labels: [domain:X]` + 最小字段拿回全车道 open 集。 - 候选 = open、未 assign、无 `needs-user-decision`、无 `pm:retriage`;⛔ 排除三门皆无的 `tooling` 卡。 - `tooling` 卡至多占一轮派发的 10%,溢出留积压、⛔ 不入 `pm:queue`;⛔ 无门禁无脚本强制。 -- 无分诊审计评论的卡不是候选,预贴 `pm:queue` 视同无;例外一的 sub-issue 承父卡首触。 +- 无分诊审计评论即非候选;例外:sub-issue 承父卡首触,main-red 锚卡见 `landing-operations.md`。 - 已排队父单的 open sub-issue 自动是候选,`pm:epic` 父单的子树除外。 - 每张候选读全文 + 全部评论,写派发词前做决策复读:评论读到最后一页。 - 维护者裁决逐字引入派发词裁决分区作约束,无则写明无裁决。 @@ -37,7 +37,7 @@ - 阻塞解除后延后单重定价:前一单派发词必答 #X 变简单、变难、不必要或无影响。 - 派发后一单前用该回答重读它的选项与成本,⛔ 不沿用立单时那份。 - 在飞卡衍生三分:不修它验收过不过;in-scope ⇒ 父卡 sub-issue,认领席自有、优先级继承。 -- 该 sub-issue 带父卡域与优先级直接派发,绕过分诊;sweep 事后扫,重复关 `duplicate`。 +- 该 sub-issue 与 main-red 锚卡各带域与级直接派发,绕过分诊;sweep 事后扫,重复关 `duplicate`。 - 排队卡含他车道项 ⇒ 发现席自拆:新卡无 `domain:*`,首行 `carries item k of #N; #N keeps items …`。 - 分诊首触定域可改判;拆出卡 ⛔ 不承父卡域(承域只及本车道 sub-issue),父卡余项照 `Fixes`。 - 自在飞派发升级出的卡首行一句:本卡承哪一半、父卡留哪一半;缺此行不入队不入箱。 diff --git a/.claude/skills/pm-dispatch/references/landing-operations.md b/.claude/skills/pm-dispatch/references/landing-operations.md index 6a1d4a6032e..b21f8e4ddfa 100644 --- a/.claude/skills/pm-dispatch/references/landing-operations.md +++ b/.claude/skills/pm-dispatch/references/landing-operations.md @@ -58,8 +58,6 @@ - 落地评论 = 两个读数的探针表 + 一行状态变更(摘标/关卡/收口),⛔ 不复述 `## 席位核对`。 - 契约复核 PASS 落地的 PR 到窗口时已 ready 且 auto-merge 在挂,见 `contract-review.md`。 - 转 ready/入队前跑 `check-governed-merges.mjs --pr N`:受管面照两层;>3000 行(含生成物)照 Tier H。 -- 受管路径全在 `.claude/**` 者 Tier S:席内达档复核过落地前检两条即转正式入队。 -- Tier H(其余受管面)者:四件套留 draft 等人批,⛔ 不翻正式不入队;获授权批准后认领席落地。 - ⛔ 两层不由席位批准;清标即落地同受此闸,漏判会被队列守卫在 merge group 里拒收。 - 再读 `mergeable_state`:`dirty` ⇒ 先 merge `origin/main` 再挂;生成物在面上按 A 的固定序。 - 挂 auto-merge 的同一动作里重测生成物漂移,⛔ 不复用更早的零;非零 ⇒ 按 A 的固定序。 @@ -79,8 +77,10 @@ - MERGED 或关闭即退订,同刻把 `mode:cloud` 派的会话 `archive_session`。 - 触发条件是卡终局且报告已收复核;⛔ 合并前不归档,误归档可 unarchive 但容器现场已失。 - 暂停或交接时把在挂订阅清点进座位贴,⛔ 不留孤儿订阅。 -- main-red 约定①:p0 fix-forward 允许跳队,限 p0、机械、根因已核实的止血 PR。 -- 也可按既有 governed 例外由维护者人工直合一行修复;仅限 main-red 修复。 +- main-red 约定①:见主干/队列全量红的席位先找锚卡,无则立 p0 锚卡(门类 ①),域随失败面。 +- 认领并派止血,⛔ 不等分诊首触、不等维护者;首触事后补,可改域、⛔ 不改动作。 +- 首道止血 = 回退引入红的提交(主干末绿与首红之间找),根因另立卡。 +- p0 fix-forward 止血跳队,限机械、根因已核实;维护者可按 governed 例外人工直合一行修复。 - main-red 约定②:一个失败 check 只锚一张卡,先立者赢,后见者评论到锚卡,⛔ 不另立。 ## C. 依赖前棒才能转绿的 PR:draft 停放 + 签名级预期红清单 diff --git a/.claude/skills/pm-dispatch/references/triage-duties.md b/.claude/skills/pm-dispatch/references/triage-duties.md index 4060b679bbb..e17831f6dce 100644 --- a/.claude/skills/pm-dispatch/references/triage-duties.md +++ b/.claude/skills/pm-dispatch/references/triage-duties.md @@ -22,6 +22,7 @@ - 裸卡数 >15 ⇒ 下一 fire 整轮改域分批集中模式,每批 ≤5 张同族卡,照样跑到清空。 - 紧急卡直接分诊:维护者点名或 p0 嫌疑 ⇒ 立即起默认判断档分诊子代理,不等定时轮。 - 紧急分诊的授权面 = 分诊本身,⛔ 不写码不认领;产出落卡,与定时轮分诊同格式同效力。 +- main-red 锚卡由席位先立先派,首触事后补作记录级:可改域,⛔ 不改动作,在飞照补。 - 分类动作每张三选一,外加一个修复通道;裁定写方向、给六态之一。 - 方向在 ADR/本卡裁决/不可重裁规则:贴 `check-prior-rulings.mjs` 的 `Prior rulings read:` 行,或不点。 - `pm:queue` = 有具名落点或复现的具体缺陷,无可问之事;⛔ 工具/门禁修复不由此进。 @@ -67,7 +68,7 @@ - 三类外首触关闭只清门前存量,关 not planned(不等批准可否决重开);三类内无证据拒收。 - 三类内再过时前提检查,三选一:晋级 / 关闭 not planned / hold;判级只在此轮,不在立单时。 - ⛔ 写入前对每张卡现读当前状态;任何列表快照读数一律作废。 -- ⛔ 带 `pm:dispatched`/assignee/open 或 merged PR 引用的卡不动;例外仅下三行:敲门在先。 +- ⛔ 带 `pm:dispatched`/assignee/open 或 merged PR 引用的卡不动;例外:下三行、main-red 锚卡首触。 - 在飞活性复查:认领逾一天无自有产出(commit/PR/评论)⇒ 敲门一次,首行键 `Owned-24h re-check:`。 - 敲门后 `RECLAIM_AFTER_HOURS = 12` 小时无答复 ⇒ `label-write.mjs --release` 一笔中继释放,贴不动。 - 释放:`Release:` 评论(出处三件)+ `Resume-from:` 行 + `pm:dispatched`→`pm:queue` + 清 assignee。 @@ -75,7 +76,6 @@ - 域分批与 sweep 打包晋级五条照用;每批约定与积压告警见 `references/dispatch-runbook.md`。 - `pm:retriage` 每 fire 先答异议评论所求,答后同笔摘标;须维护者答的进收件箱,标照摘。 - retriage 的异议判据认内容(有评论写明所求)⛔ 不认形状(有一条异议评论)。 -- 裁决恒归维护者人工:分诊只分析、推荐、入箱;⛔ 无代裁车道、置信门与 `auto-adjudicated`。 - 人工地板(恒呈维护者):功能新增;ADR;协议/公开契约变化;破坏性或难回滚动作。 - 人工地板同含:安全/权限边界;门禁削弱(降阈/删必查/抬上限/跳测);新增运行时第三方依赖; - 花费/配额/舰队形态/默认模型档位;新增必需门禁/hook/棘轮(卡具名所守契约与预期捕获)。 From a289a0552b48ec886522fd6d6d03de61b620041c Mon Sep 17 00:00:00 2001 From: os-warren Date: Mon, 26 Oct 2026 15:54:44 +0000 Subject: [PATCH 2/2] docs(pm-dispatch): name the main-red anchor as the fourth cross-lane channel MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit SKILL.md line 175, in place: the closed list of channels through which a seat may work across a domain gains the main-red anchor beside the cross-domain exception path, the claiming seat's follow-through surface and the unowned blocker. Without it the seeing seat files the anchor and then stops at the own-lane-only claim line, which is the gap the ruling ordered away; the contract review measured this clause as the cheapest carrier. SKILL.md stays at 319 lines, the line at 117 bytes; 红线 line 34 untouched. Claude-Session: https://claude.ai/code/session_01LqKsGyMNFwwnbF5FTAqyPn Co-authored-by: Claude --- .claude/skills/pm-dispatch/SKILL.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.claude/skills/pm-dispatch/SKILL.md b/.claude/skills/pm-dispatch/SKILL.md index 713121607a5..b1bb99c1d7a 100644 --- a/.claude/skills/pm-dispatch/SKILL.md +++ b/.claude/skills/pm-dispatch/SKILL.md @@ -172,7 +172,7 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报 - 跨域例外路径:拆不动的跨域单 PR 由分诊席指定一个车道 PM 认领,认领评论申报文件面。 - 派发前在飞检查:读 `pm:dispatched` 卡认领评论申报的文件面,本地求交、不另发查询。 - 跨域例外路径的范围加上该单文件面触及各域的在飞单;相交 ⇒ 排该 PR 之后串行或让行。 -- 跨域相交只经三条越界通道:跨域例外路径、认领席跟到底的越界面、接手无主阻塞项。 +- 越界只四通道:跨域例外路径、认领席跟到底的越界面、接手无主阻塞项、main-red 锚卡。 - 合并队列是共享串行资源:车道买到的是并行编写,不是并行落地。 - 谁发现 flake 谁修或立单,⛔ 不绕行。