From 2285fac45d26a4e7615a557787be13ddcab0ab4c Mon Sep 17 00:00:00 2001 From: os-zhuang Date: Tue, 25 Aug 2026 01:18:29 +0000 Subject: [PATCH] docs(pm-dispatch): seat-facing rows for the pm-state ONE-OF, the queue rot horizon and the contract-review dual carrier Paid by consolidation inside the file's 43-line ceiling (headroom 0, no raise). Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01RMTpSRF5CjMmQBFfPtPCwJ --- .../pm-dispatch/references/state-machine.md | 68 +++++++++---------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/.claude/skills/pm-dispatch/references/state-machine.md b/.claude/skills/pm-dispatch/references/state-machine.md index 1e4f038ee6..46e756035b 100644 --- a/.claude/skills/pm-dispatch/references/state-machine.md +++ b/.claude/skills/pm-dispatch/references/state-machine.md @@ -1,43 +1,43 @@ # 状态机细则(references —— 按需加载) -出处:主文件「状态模型」表(语义一行在表上,本表承载四个长状态的机制细则),做对应 -转换、放行或巡查的那一刻查阅;⛔ 不引用 issue 编号。 +出处:主文件「状态模型」表,做对应转换、放行或巡查的那一刻查阅;⛔ 不引用 issue 编号。 + +## 通则 —— 跨状态不变量(判定以 `check-half-states.mjs` H29/H30/H31 为权威) + +- **六态 ONE-OF**:`pm:{queue,dispatched,blocked,on-hold,awaiting-maintainer}` + + `needs-user-decision` 互斥;成因恒是半写的转换,故**一笔 replace**、⛔ 不 add。 +- **`pm:queue` 腐化视界 3 天**:队列是唯一「等待不是一种状态」的态,越界即欠**一次显 + 式转换**(派发 / 转 `needs-user-decision` / 停放 / 撤单 / 改写前提),⛔ 不是排期。 +- **`needs:contract-review` 双载体**:卡与交付 PR 两边都挂好、挂与清各一笔、两向都读 + 回(被剥不是红灯是放行);卡侧先挂而 PR 尚不存在是合法中间态,不是半写。 ## `pm:on-hold` —— 重启条件、触发文件与放行双查 - **合法性**:仅当正文或评论带机器可读行 `Restart-when: closed #N`(由 - `Blocked-by:` 的同一遍解锁扫描点火、同双通道契约 —— 正文或评论任一即为行,评论停 - 靠的出口曾静默过期两天)或 `Restart-when: <一行可执行判据>` 时才合法;hold 评论带 - 日期、理由、出处(维护者裁或座位定级,⛔ 不设第二个标签区分)。 -- **机会主义重启的触发文件**走同族正典行 **`Restart-touch: <仓内相对路径>`**(一行 - 一路径,大小写敏感、行锚定,与 `Blocked-by:`/`Restart-when:` 同双通道 —— 正文或评 - 论任一,H17 兼读 hold 评论;反引号/bullet 可容忍、值须为 tracked 文件)—— 喂巡查 - H17 的触发文件索引;存量 hold ⛔ 不迁移、不产 finding,散文锚词抽取兜底旧卡。 -- **放行双查(两查皆机械、零判断)**:① 只对**最近一次** `pm:on-hold`/`pm:blocked` - 转换评论所载条件放行,⛔ 永不对线程里更早的 blocker —— 已放行过的条件是花掉的,再 - 点火就把过期前提立成现行;② 该转换评论之后卡上有**更新的 merged PR** ⇒ 拒绝放行 - —— 那是条件写下后卡已前进的信号(引用的事实可以为真而不再是现行条件)。 + `Blocked-by:` 的同一遍解锁扫描点火)或 `Restart-when: <一行可执行判据>` 时才合法; + hold 评论带日期、理由、出处(维护者裁或座位定级,⛔ 不设第二个标签区分)。 +- **机会主义重启的触发文件**走同族正典行 **`Restart-touch: <仓内相对路径>`**(一行一 + 路径,大小写敏感、行锚定,与 `Blocked-by:`/`Restart-when:` 同双通道;值须为 tracked + 文件)—— 喂巡查 H17 的触发文件索引;存量 hold ⛔ 不迁移、不产 finding。 +- **放行双查(两查皆机械、零判断)**:① 只对**最近一次** `pm:on-hold`/`pm:blocked` 转 + 换评论所载条件放行,⛔ 永不对更早的 blocker —— 已放行过的条件是花掉的,再点火就把 + 过期前提立成现行;② 该转换评论之后卡上有**更新的 merged PR** ⇒ 拒绝放行。 ## `pm:blocked` —— 正典标记、完工停放(`Unlock-action:`)、上游已关 -- **正典标记 = 行首 `Blocked-by: #N`(跨仓 `owner/repo#N`)、无装饰**;2026-08-24 - 实测:四种普查拼法三种已解析,第四种句中提及**刻意拒收** —— 指令是行,提及是散文。 -- **工已完、PR 被外部门禁缺陷卡住的卡同用本态,⛔ 不设新标签**:`Blocked-by:` 指向 - 门禁缺陷卡,正文另加机器可读行 `Unlock-action: re-check PR #M` —— 解锁扫描据此把 - 解锁动作从「回队重派」换成「重查该 PR 落地」(回队前提检查见到已完工的 open PR 即 - 按落地工作处理,⛔ 永不给完工卡重派 dev);停放 PR 正文须点名门禁卡,让链路两端可读。 -- **上游已关 ⇒ 先重新推导再决定**:改判是否有**新**阻塞并改写该行,⛔ 不反射式放行; - 正文是正典家 —— 新 blocker 停评论、正文留已关旧目标,巡查报 stale 并要求迁回。 - -## `pm:awaiting-maintainer` —— 互斥与出口 - -与 `pm:queue`/`pm:dispatched`/`pm:blocked`/`pm:on-hold`/`needs-user-decision` **互 -斥**(并存即误标);出口 = 维护者完成该操作、座位摘标 + 证据评论同笔 —— **无机器出 -口,by construction**,在飞视图计停放库存(细节以 `check-half-states.mjs` 为权威)。 - -## `pm:retriage` —— 挂/摘两方机制 - -原定级在改判前仍是权威,并存让「排队但有异议」在列表上可见;挂标者 = 提出异议的席 -位,挂标与**异议评论同笔**(证据 + 建议定级),无证据评论的裸挂标不合法;摘标者 = -分诊 Routine,每 fire 高优先重判、重判后摘标 —— 挂/摘分属两方、各自的转换不相交,这 -是本行的安全性;标签须五仓存在(分诊五仓统一职责,首次应用时创建);老化兜底归 H18。 +- **正典标记 = 行首 `Blocked-by: #N`(跨仓 `owner/repo#N`)、无装饰**;句中提及**刻意 + 拒收** —— 指令是行,提及是散文。 +- **工已完、PR 被外部门禁缺陷卡住的卡同用本态,⛔ 不设新标签**:`Blocked-by:` 指向门禁 + 缺陷卡,正文另加机器可读行 `Unlock-action: re-check PR #M` —— 解锁扫描据此把解锁 + 动作从「回队重派」换成「重查该 PR 落地」(回队前提检查见到已完工的 open PR 即按落 + 地工作处理,⛔ 永不给完工卡重派 dev);停放 PR 正文须点名门禁卡,让链路两端可读。 +- **上游已关 ⇒ 先重新推导再决定**:改判是否有**新**阻塞并改写该行,⛔ 不反射式放行;正 + 文是正典家 —— 新 blocker 停评论、正文留已关旧目标,巡查报 stale 并要求迁回。 + +## `pm:awaiting-maintainer` 与 `pm:retriage` —— 出口、挂/摘两方 + +- **awaiting 出口** = 维护者完成该操作、座位摘标 + 证据评论同笔 —— **无机器出口, + by construction**,在飞视图计停放库存(互斥归上面的 ONE-OF 行)。 +- **retriage 挂/摘分属两方**:原定级在改判前仍是权威;挂标者 = 提出异议的席位,挂标与 + **异议评论同笔**(证据 + 建议定级),无证据评论的裸挂标不合法;摘标者 = 分诊 Routine, + 每 fire 高优先重判、重判后摘标;标签须五仓存在(首次应用时创建);老化兜底归 H18。