From 0dbafd72e2f11bfa0ae94549d5d16425876393dc Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 3 Sep 2026 09:39:28 +0000 Subject: [PATCH 01/10] docs(pm-dispatch): replace non-operative ruling quotes in SKILL.md with date pointers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Execute the X0 quote policy on the PM skill's main file: at every pointer-eligible site the verbatim maintainer quotation (and the lead-in that only introduced it) becomes the date pointer `(YYYY-MM-DD 裁定)`, with the rule stated by the surrounding text. The five KEEP sites whose words are themselves the operative criterion keep their quotes; the frame paragraph sites are untouched; the one undated quote is kept (NODATE). No issue number, comment id or URL is written; check-skill-id-lint keeps enforcing the 2026-08-12 convention. 989 -> 964 lines, shrink-only, no untouched line re-wrapped. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01LraLgQVGq8egUwfYZpbYt1 --- .claude/skills/pm-dispatch/SKILL.md | 125 +++++++++++----------------- 1 file changed, 50 insertions(+), 75 deletions(-) diff --git a/.claude/skills/pm-dispatch/SKILL.md b/.claude/skills/pm-dispatch/SKILL.md index 825912b964..159c4a5e51 100644 --- a/.claude/skills/pm-dispatch/SKILL.md +++ b/.claude/skills/pm-dispatch/SKILL.md @@ -20,9 +20,8 @@ metadata: 一单一 agent、一 agent 一 worktree。PM 的工作是循环:**选卡 → 认领 → 派发 → 收集 → 复核 → 报告 → 下一批**。维护者只在两个点进入循环:轮次报告,和 `needs-user-decision` 决策卡。 -本文只写**原则、状态机与查表数据**(维护者 2026-08-12 裁定:「现有的项目经理skills -应该大幅简化,只需要说原则,不需要写细节」;「处理 issue 时犯的错应该总结成经验, -保留 issue id没有意义」)。每条经验自含失效模式与边界,⛔ 操作文本不引用issue 编号, +本文只写**原则、状态机与查表数据**(2026-08-12 裁定)。 +每条经验自含失效模式与边界,⛔ 操作文本不引用issue 编号, 不期待读者去翻原始 issue;裁决保留**日期 + 原话**;凡钩子 /门禁 /脚本已机械强制的只留一句原则,细节以脚本头为权威;按需查阅的事实表住在 `references/`。 @@ -56,8 +55,8 @@ fable 子agent,然后自己默认定时1小时,除非人工要求。」): 走显式传 `model` 的 fable 子代理,逐份裁决过转录核验采信(细则见 `references/contract-review.md`); 自排定时默认**收班时挂、延时 ≤55 分钟**(1 小时 prompt-cache TTL 减分钟级抖动, 整班守一条缓存链;用量超额 TTL 降至 5 分钟收益归零、compaction 轮照旧重写,皆不改默认), -维护者明示可改。**开轮互斥读法**(宁少跑,不让两个同座位会话并行写标签;维护者 -2026-08-27 裁「落协议」:近期窗口只管**未收班**活动):fire 开始、首个写动作之前读四个读数, +维护者明示可改。**开轮互斥读法**(宁少跑,不让两个同座位会话并行写标签; +(2026-08-27 裁定)近期窗口只管**未收班**活动):fire 开始、首个写动作之前读四个读数, 未收班活动任一未满一个轮次 ⇒ 自退 —— 最近收班简报;晚于它的最新「开轮」 标记(轮中会话在座位贴上唯一的痕迹);本车道 `pm:dispatched` 卡最新非本 session 的 `Claim:` 评论(拼写见「认领」,车道盘点已取;只计**认领本席车道派发**的 —— @@ -81,8 +80,7 @@ PR 的会话被读作「清」)。**收班简报 = 前任「不再写」的显 —— 授权原话引用在 PR 正文,复核需另一座位或维护者 walkthrough,⛔ 不得自审自合。 - **GitHub 上一切新内容用英文**(维护者 2026-08-06 指令);中文留三个通道 —— 轮次报告(chat)、 派发令里的裁决引文(照抄不译:改写引文就是改写裁决)与决策四维分析(评论 + 四棱块; - 维护者 2026-08-19:「要求以后issue中的四维分析也用中文写」; - 只管新记录,存量英文块 ⛔ 不迁移);存量中文 ⛔ 不追溯改写。 + (2026-08-19 裁定);只管新记录,存量英文块 ⛔ 不迁移);存量中文 ⛔ 不追溯改写。 - **先认领后动工;assignee 不是你 ⇒ 已被认领,永不碰。** **一座位一车道,双射**:「域 X 谁管」「 PM Y 管什么」各恰好一个答案。与 AGENTS.md 冲突时,**AGENTS.md胜**。 @@ -98,7 +96,7 @@ PR 的会话被读作「清」)。**收班简报 = 前任「不再写」的显 | `pm:blocked` + 正文行 `Blocked-by: #N` | 等上游 —— 选择期跳过,#N 关闭时由解锁扫描放回。工已完、PR 被外部门禁缺陷卡住的卡**同用本态,⛔ 不设新标签**(`Unlock-action: re-check PR #M` 行改写解锁动作 —— **只认此一值**,别的写法静默回落默认重派,细则见 `references/state-machine.md`) | | `pm:awaiting-maintainer` | 决定**已做**,剩余动作是一次 GitHub 之外的人工维护者操作(如 Routines UI 变更)—— 不派发、不催;跨仓台账与出口归**项目总监席**,各席只入态;与其它 pm 状态标签**互斥**;互斥面、出口与巡查细则见 `references/state-machine.md` | | `pm:blocking` | 有 open 下游依赖者(分诊 sweep 自 `Blocked-by:` 索引推导的缓存,⛔ 不手工挂);进选择优先级全序 | -| `pm:retriage` | 等分诊改判(维护者 2026-08-19/20 裁定:「同意 并存」)—— 与现行 `pm:*` 标签**并存,⛔ 不摘原标**;带本标签的 `pm:queue` 卡**跳过派发**(异议未决不派,即可派发行的除外项);挂/摘两方机制见 `references/state-machine.md` | +| `pm:retriage` | 等分诊改判(2026-08-19/20 裁定)—— 与现行 `pm:*` 标签**并存,⛔ 不摘原标**;带本标签的 `pm:queue` 卡**跳过派发**(异议未决不派,即可派发行的除外项);挂/摘两方机制见 `references/state-machine.md` | | `finding` | 观察类记录,恒 = **待首次定级**(定级即离标:晋级换 `pm:queue` / 关闭 / hold 换 `pm:on-hold`;裸标签数即健康读数)—— 不占队列不进收件箱 | | `target:` | 发版阻塞 —— 每个 backlog 恰好一个生产者,见「发版板」 | | `pm:epic`(父单) | 子树已委托 epic PM(会话与领地在父单正文;`label:pm:epic` 即全量索引)—— 其它 PM 不把其 sub-issue 当候选 | @@ -111,8 +109,8 @@ PR 的会话被读作「清」)。**收班简报 = 前任「不再写」的显 - `needs-user-decision` vs `pm:on-hold` = **决定待做 vs 已做**,挂错招来重复升级或永久沉默;hold 没有可点火的出口 = 谁都无法合法退出的状态,`manual — <理由>` ⛔ 不是合法出口 —— - 没有机制能唤醒的卡不 hold,按「暂时不准备开发 ⇒ 直接关闭」(维护者 2026-08-16 原话: - 「我建议有些暂时不准备开发的应该直接关闭。」)关 not planned,理由与出处写进关单评论: + 没有机制能唤醒的卡不 hold,按「暂时不准备开发 ⇒ 直接关闭」(2026-08-16 裁定) + 关 not planned,理由与出处写进关单评论: 卡即记录、重开免费、维护者可否决。**关闭默认不适用 `type:Bug` 的 hold**, 三分支:可复现且用户可达 ⇒ 回 `pm:queue`(被 hold 的 Bug 就是被藏起的缺陷);declared≠enforced 观察类 ⇒ 转 enforce-or-remove 通道(不 hold 不裸关);真 won't-fix 候选 ⇒ 逐卡进决策箱 —— @@ -194,8 +192,8 @@ PR 的会话被读作「清」)。**收班简报 = 前任「不再写」的显 **新仓登记是一张清单**:座位贴、标签、类别归属、门禁盘点; 准入判据一句 —— 这个仓真的需要常设席位吗。逐仓事实照实设(objectos 无 changeset 流、 无 `packages/`,合并队列已上线;hotcrm 收卡判据与宪章见 `references/lanes/hotcrm.md`)。 -**objectui 卡按修复落点分流三流**(维护者 2026-08-21 裁定,`domain:ui` 唯一新增标签, -命名定稿原话:「按 domain:ui 定稿」):`domain:devx`(工程面)/`domain:spec`(契约面)跨仓归各自车道, +**objectui 卡按修复落点分流三流**,`domain:ui` 唯一新增标签(2026-08-21 裁定): +`domain:devx`(工程面)/`domain:spec`(契约面)跨仓归各自车道, 其余 —— 发布库与 apps —— `domain:ui` 归 objectui 执行席;症状位置不改流向,docs 随所记录的面走,落点不明留分诊首触 ⛔ 不猜。**车道可按仓分席(域×仓)**:忙时一个 domain 车道开多个按仓席位(如 devx@objectstack / devx@objectui;触发即规则 4 预登记的拆分条件), @@ -254,10 +252,10 @@ objectstack 带 `repo:*` + 具名读者(顺带解掉请求方无目标仓写权 | 标签 | 包家族 | |:--|:--| -| `domain:engine` | `packages/objectql`、`packages/core`、`packages/formula`(CEL / `matches-filter` / RLS 谓词求值)、`plugin-pinyin-search`(落点在编译/查询核心);`packages/metadata*`(加载、注册、持久化、缓存、目录)、`packages/platform-objects`;`packages/drivers/driver-*` —— 车道合并(维护者 2026-08-19:「engine-core + metadata + drivers -> engine, identity + services → services 怎么样?」),原 `domain:engine-core` / `domain:metadata` / `domain:drivers` 三标签**退役**(只退出流通;GitHub 标签对象保留 —— 删标签会剥光已关卡、毁掉存档,止住流通的是本表) | +| `domain:engine` | `packages/objectql`、`packages/core`、`packages/formula`(CEL / `matches-filter` / RLS 谓词求值)、`plugin-pinyin-search`(落点在编译/查询核心);`packages/metadata*`(加载、注册、持久化、缓存、目录)、`packages/platform-objects`;`packages/drivers/driver-*` —— 车道合并(2026-08-19 裁定),原 `domain:engine-core` / `domain:metadata` / `domain:drivers` 三标签**退役**(只退出流通;GitHub 标签对象保留 —— 删标签会剥光已关卡、毁掉存档,止住流通的是本表) | | `domain:services` | `packages/services/*`、`packages/connectors/*`、`packages/triggers/*`、`plugin-approvals`、`plugin-webhooks`、`plugin-email`、`plugin-reports`、`embedder-openai`、`knowledge-*`;`plugin-auth`、`plugin-security`、`plugin-sharing`、`plugin-audit`(2026-08-19 并入,原 `domain:identity` 标签**退役**,同上只退流通不删对象) | | `domain:devx` | `packages/lint`、`packages/sdui-parser`、`content/docs/**`、`apps/docs`、`scripts/`(门禁类;与 `domain:skills` 的分界按门禁的 SUBJECT:治理 agent 指令面/governed 面的归 skills,治理代码/文档质量的归本域)—— 与 `domain:spec` 相交的三面按「是否围着 spec 契约转」切分 | -| `domain:skills` | 两个技能根:`.claude/skills/**`(含本文件)+ `skills/**`(维护者 2026-08-11 裁定单设座位,与维护者走专题讨论;skills 更新 ADR-class,见 Guardrails);指令架构文件:根 `AGENTS.md` + 根 `CLAUDE.md`(所有面向 agent 的宪法文本);governed 面(统一定义见 ACCEPT 路径分叉)的治理执行文件:`.github/CODEOWNERS`(治理路由半边)+ SUBJECT 是 governed 面本身的门禁/审计(现为 `scripts/pm/check-governed-merges.mjs`,一句话见守卫索引;未来同类同判)—— 维护者 2026-08-18 裁决:「skills 相关的应该都归你管,为什么派给了 devx」 | +| `domain:skills` | 两个技能根:`.claude/skills/**`(含本文件)+ `skills/**`(维护者 2026-08-11 裁定单设座位,与维护者走专题讨论;skills 更新 ADR-class,见 Guardrails);指令架构文件:根 `AGENTS.md` + 根 `CLAUDE.md`(所有面向 agent 的宪法文本);governed 面(统一定义见 ACCEPT 路径分叉)的治理执行文件:`.github/CODEOWNERS`(治理路由半边)+ SUBJECT 是 governed 面本身的门禁/审计(现为 `scripts/pm/check-governed-merges.mjs`,一句话见守卫索引;未来同类同判)(2026-08-18 裁定) | | `domain:spec` | `packages/spec` 整包唯一契约,语义/文本/机器三面同席:schema 形状、`contracts/**`、退役行为半边、strictness 台账;describe/JSDoc/墓碑散文/错误 guidance 与 alias 表;`packages/spec/scripts/**`、`packages/spec/docs/**` 及围着 spec 契约转的工具链(门禁/生成器/lint 规则/报错散文/references 管线)—— 一般开发工具面留 `devx`(维护者 2026-08-09 裁决);席内分派判据见 `references/lanes/spec.md` | | `domain:cli` | `packages/cli`、`runtime`、`verify`、`qa`、`types`、`packages/rest`、`packages/mcp`、`packages/observability`、`packages/client*`、`cloud-connection`、`create-objectstack`、`packages/adapters/*`、`plugin-hono-server`、`plugin-dev` | | (无固定归属,按落点分诊) | `packages/apps/*`、`packages/console`(dist 由脚本生成 ⛔ 手改;UI 缺陷走 `repo:objectui`,pin/刷新脚本归 `scripts/` 行)、`examples/*`(归它演练的子系统) | @@ -285,15 +283,14 @@ issue 任何人不得认领** —— 那意味着分诊还没走到,不是「可 正文固定**四段**现值(当前 PM / 继承台账 / 热文件串行队 / 说明)、 **只由在任座位 PM 编辑**、正文为权威,标题与 assignee 是派生视图、三者同笔更新; 接管/移交 = 改正文 + 审计评论(**评论只作审计不承载状态**),接管压缩是标准步骤。 -**范围与常设承诺是岗位说明不是状态,版本化在 `references/lanes/.md`**(维护者 -2026-08-19 裁定:「所以我认为每一种项目经理的岗位说明应该进 skills,类似分诊」)—— +**范围与常设承诺是岗位说明不是状态,版本化在 `references/lanes/.md`** +(2026-08-19 裁定)—— 贴内指针指向其车道文件,升级走技能 PR,⛔ 手抄接力(逐任手抄正是本条要退役的失效模式; 存量贴的四段收缩细则在 seat-post-protocol)。**写侧刷新点 = 轮次边界**, 读侧只读贴正文 + 晚于正文最后编辑的评论(维护者 2026-08-12 批准;更早的已被吸收, 是存档不是现状),中途状态由卡上 claim/ACCEPT 评论承载。**热文件串行队是正文具名段** (区域写不清就只能整文件串行)。无心跳,活性惰性判定;竞态三招 —— 动手前重 fetch -正文、审计评论时间戳先到先得、写后回读。**换班报告默认零建议**(维护者 2026-08-12 裁定, -原话:「还有各车道下班时会提交 skills 建议有必要吗?就是那些搞得后来skills越来越乱。」): +正文、审计评论时间戳先到先得、写后回读。**换班报告默认零建议**(2026-08-12 裁定): 强制建议清单已退役,离任报告只收三类 —— 原则错/缺(→ skills 席专题)、可机械化项 (→ 门禁/脚本卡,⛔ 不是散文)、平台事实变化(→ references 事实表改一行)—— 以 `finding` 入 skills 车道由该席分诊,三类之外默认关 not planned;「经验教训」散文不再入技能文本 @@ -328,8 +325,7 @@ issue 任何人不得认领** —— 那意味着分诊还没走到,不是「可 空转轮 ~12 万 token,~8 万是这张门票);可验判据: 空转轮 ~4 万以内。只约束分诊 fresh session 的开局,执行座位与 dev(需全工具面)不受此约束。 -**两级盘点(two-tier inventory;维护者 2026-08-20: -「每次都需要 四仓全量 open issue 盘点 … 吗?建议分诊多久执行一次」→「立卡」)**: +**两级盘点(two-tier inventory)**(2026-08-20 裁定): 小时轮以 `since` 窗口读增量 —— 锚 = 座位贴上一份收班简报的时间戳(互斥守卫同一读数, 零新状态;标签写入刷新 `updated_at`,窗口锚在简报而非上次 fire, 漏 fire 积压自动入窗);每日一 fire 跑全仓全量对账并归集日频职责; @@ -375,7 +371,7 @@ sanitizer 截断的卡不可派发,评论修复指令后跳过;停摆指令判 事后证伪同处公开作废。**决策箱勤务(常设)**:落卡入箱时校验/补全标准四棱卡面块 (块形状见「升级与决策」);存量卡低频子轮回填,语言按不变量。 -**原生 issue 类型 Bug/Feature/Task 是分诊的固定产出**(维护者 2026-08-12 裁定「同意」): +**原生 issue 类型 Bug/Feature/Task 是分诊的固定产出**(2026-08-12 裁定): 分诊座位是 `type` 字段的唯一权威生产者(立单者可预填, 分诊校正 —— 与 `domain:*` 同一纪律);判据即代裁的机械边界测试(⛔ 不另抄): 违背已声明契约 ⇒ `Bug`,扩大接受集/公开面 ⇒ `Feature`,其余 ⇒ `Task`。 @@ -398,8 +394,7 @@ sanitizer 截断的卡不可派发,评论修复指令后跳过;停摆指令判 (十几条一行判据逐小时跑是浪费,每日即消化节奏),命中同 closed 命中一个待遇: 回队前 ref 重验再回队;⛔ 不设逐卡豁免评论)。**每 fire 跑到清空**:⛔ 无每轮总量预算, 当轮定完全部未定级 finding、优先于旧卡重验;质量靠**每批 ≤5 张同族卡逐张读**, -不靠封顶总量(维护者 2026-08-25,原话不译):「单轮跑数小时没关系啊。 -不读卡的批量盖章 可以通过每批5张这种约定来解决」 —— 单轮数小时是可接受形态; +不靠封顶总量(2026-08-25 裁定)—— 单轮数小时是可接受形态; 窗口耗尽未跑完的,下一 fire 从断点续跑(定级即离标,⛔ 不重读,标签纪律即断点)。 **fire 到达时上一轮未清空 ⇒ 接续处理,轮次可跨 fire**(维护者 2026-08-31 裁):fire 是接续触发 不是重开义务,存量按最老优先继续消化,⛔ 不因新 fire 重排,跨 fire 未清空不当矛盾立卡。 @@ -417,13 +412,7 @@ pin 前置等运维细则见 `references/seat-post-protocol.md`)。** 判据二 ④ 发布说明里要为它道歉的。拆分/分票时 `target:*` 随工作走,对每一半重跑二元判据, 默认继承,不继承按四类写明理由。**每张板同归本座位生产**(每板恰好一个生产者)。 -**高置信决策卡的分诊代裁(维护者 2026-08-12 裁定)。 -** 出处原话:「让他帮我从实际业务需求出发,从平台长远合理性出发, -从避免ai写代码犯错的角度出发,从创业阶段不扩散需求的角度出发综合分析…… -很多时候ai会有明确的建议,大部分建议我都会接受,这个是不是可以让分诊就处理掉。 -他没把握的才找我」;「我同意你的意见,并补充功能新增类的,adr类别的, -协议变化类别的,还是需要人工决裁,如果是代码整理或者bug修改, -具体的代码细节其实ai看的比我清楚,让我判断我也判断不了」。 +**高置信决策卡的分诊代裁**(2026-08-12 裁定)。 - **人工地板(不论四棱是否同向,恒交维护者)**:功能新增类;ADR 类;协议/公开契约变化类; 破坏性或难回滚动作(存量数据迁移形状、删除已发布能力、force 操作);**安全/权限边界** @@ -440,7 +429,7 @@ pin 前置等运维细则见 `references/seat-post-protocol.md`)。** 判据二 为工作态 → 卡上贴四棱块 + 结论 + `auto-adjudicated` 标记 → 轮次报告设**代裁清单**专节 (聚合漂移的刹车);⑤ 本节首段的档位硬门达标(未达 ⇒ 本 fire 代裁整体跳过、 卡原样留在决策箱走维护者路径,恒安全)。 -- **一类自裁门(维护者 2026-08-29 裁:「把「一类」判据写进代裁通道(skills 席立卡固化)」)**: +- **一类自裁门**(2026-08-29 裁定): 召唤中总监席可免呈自裁一张决策卡,当且仅当三判据全立: ① 既有维护者裁定/在案类规则/成文纪律**机械决定方向**(席位只应用不发明; 裁决评论必须点名所用权威 —— 在案裁定的日期/引文、类规则或纪律的家); @@ -454,7 +443,7 @@ pin 前置等运维细则见 `references/seat-post-protocol.md`)。** 判据二 二类(边界:带一个可报点)与三类(地板)照旧现场呈报,走常设决裁批流程与详细写法纪律。 - **回翻条款**:代裁卡实施中发现契约终究要动 ⇒ dev 停手, 卡回`needs-user-decision` —— 报告分叉,⛔ 永不静默重裁。 -- **请示纪律(维护者 2026-08-25:「不要不停的弹出来让我确认,很浪费时间」)**:①方向性授权 +- **请示纪律**(2026-08-25 裁定):①方向性授权 (如「接受你的建议」「帮我合并」)覆盖整条执行链一并做完,⛔ 不逐项回问; ②需裁事项**攒批**(≤5 项/批,每项一行带推荐),一句同意即全链执行;③中间状态与限流 /重试类运维细节只进座位贴和触发器,⛔ 不弹给维护者——汇报只在里程碑、 @@ -500,7 +489,7 @@ pin 前置等运维细则见 `references/seat-post-protocol.md`)。** 判据二 ③ **每张成员都已裁/已定级,⛔ 决策箱内一张不许**(承重门:防借折叠把未裁卡洗进已裁 PR); ④ 每成员独立可核(每成员一个具名判据,批次不能静默少交);⑤ 派发令点名**排除清单** —— 长得像家族而不是的成员及理由(承重门:盲扫「同类」正是要防的错编辑)。 -**fold-or-serial 是必答题**(维护者 2026-08-19 原话:「你自己定的工作方式你也会忘。」):凡 +**fold-or-serial 是必答题**(2026-08-19 裁定):凡 ≥2 张排队卡共享热文件,串行队条目和/或链首认领必须以五门为判据显式答折叠还是串行 —— 不答而默认串行是漏答不是安全选项 (零余量棘轮文件上的串行还翻倍付账搜刮与人工合并次数)。 @@ -581,23 +570,20 @@ closes-list:部分交付 PR 特意写 Refs 而非 Fixes 时它恰为空,正是 一单一次 `Agent` 调用,`subagent_type: "os-dev"`,后台并行。 -**模型分档(model tiering;维护者 2026-08-10 三档裁定,本节覆盖一切更旧档制)。 -** 授权原话:「项目经理技能还需要考虑的是派任务时使用什么模型,也应该项目经理决定, -最低下限sonnet,最高可以 fable」;「比如 更新 项目经理技能 必须要使用 Fable 5」。 +**模型分档(model tiering;本节覆盖一切更旧档制)**(2026-08-10 裁定)。 **派发模型是 PM 的逐卡显式决定** —— 下限 `sonnet`(机械卡: 正确性由门禁农场机械判定,失败在漏跑门不在判断);默认判断档 `opus`(M/L、 裁决实施、任何带设计判断的卡;拿不准就升一档 —— 错派低档的返工贵过省下的额度); 上限 `fable`(最重协议/流程/编排卡,按卡取用非新默认)。**⛔ 强制条款两条**:① 凡改 **协议语义面**的卡一律 `CONTRACT_REVIEW_TIER` 档(`--tier` 输出)—— 面 = 本 `SKILL.md` 主文件、 -决策框架拷贝所在文件(以 `check:skill-frame-sync` 强制处为准)与 `.claude/agents/os-dev.md`(2026-08-20 -收窄,维护者原话:「接受你的建议」—— fable 当审计师用,不当施工队用); +决策框架拷贝所在文件(以 `check:skill-frame-sync` 强制处为准)与 `.claude/agents/os-dev.md` +(2026-08-20 裁定)(收窄 —— fable 当审计师用,不当施工队用); 仅 `references/**` 面、或任一 pm-dispatch 治理面上一行级机械文本改动的卡降为 **opus 施工** (纯机械一行 PM 酌定可至 sonnet 地板),**补偿控制即既有技能面复核档要求**(ACCEPT 路径分叉 ①:复核席跑契约复审档位)—— opus 施工的治理面改动只经 fable 档复核到达维护者, ⛔ 不新增标签不新增链;② 凡**改变契约接受/拒绝行为或扩大公开面**的卡(`domain:spec` 语义面;判据即分诊代裁的机械边界测试与 spec 席内分派判据 —— `references/lanes/spec.md`, -⛔ 不另抄第二份)一律 `CONTRACT_REVIEW_TIER` 档(维护者 2026-08-12 裁定, -原话:「同意,就按语义面收窄,立卡并通知 spec 席」)—— 契约错毒化一切下游, +⛔ 不另抄第二份)一律 `CONTRACT_REVIEW_TIER` 档(2026-08-12 裁定)—— 契约错毒化一切下游, 全仓最贵(条款②闸门见「入队与落地」)。**负边界(维护者 2026-08-28 裁定)**: 运行时权限/安全**行为**变更不是条款② —— 归人工地板「安全/权限边界」 类(控制是裁决本身,不走契约复核);条款②只指**已发布契约面**(两独立席位曾同错读, @@ -605,8 +591,8 @@ closes-list:部分交付 PR 特意写 Refs 而非 Fixes 时它恰为空,正是 而被读的正是复述):额度耗尽豁免及其 `needs:contract-review` 补偿一并及于它; 豁免够不到的地板只有维护者裁决能设。**席位档策略(同 2026-08-20 裁决)**:skills 车道外执行 PM 席与分诊席默认 `opus` 会话,fable 保留给裁决/复审子代理、skills 席与条款②工作 —— -各自档位归既有条款(本行只记策略)。降档出口两条:**额度耗尽豁免**(维护者 2026-08-13 原话: -「fable 如果用完了,可以用 opus」):仅当 fable 实测不可用(限流/墙杀中途,重派同样可降) 才落 +各自档位归既有条款(本行只记策略)。降档出口两条:**额度耗尽豁免**(2026-08-13 裁定): +仅当 fable 实测不可用(限流/墙杀中途,重派同样可降) 才落 `opus`,⛔ 不再往下;与**主动预降**(余量吃紧可预先降档),两者档位与理由皆记入认领评论 「Container & model」行。明确不变:spec 文本面照旧 sonnet/opus;机器面与下游适配默认 opus, 门禁语义设计升 fable,拿不准升档照旧。**档位逐次派发显式传参, @@ -641,8 +627,7 @@ opus, 门禁语义设计升 fable,拿不准升档照旧。**档位逐次派发 - **触 `skills/**`(对外发布的技能包)的卡,派发词必带 PM 定的净增行数预算**(按 feature 大小定, 小功能给小数);dev 装不下 ⇒ 停手回报, ⛔ 不自行扩写、不自行抬预算(抬预算是维护者裁决)。 - **原则:对外发布的技能包是平台最大的对外价值,评估恒整包整体**(维护者 2026-08-21: - 「对外发布的 skills 是整个平台的最大价值,尤其要整体考虑和评估。」)。 + **原则:对外发布的技能包是平台最大的对外价值,评估恒整包整体**(2026-08-21 裁定)。 - **文件面写两句**(预期落点 + 生产者在别包时报备后按生产者侧修, ⛔ 不在消费者侧打补丁);**same-day churn 行**(当天合并 ⇒ 先核对当前 main); **在飞重叠拦截**(每轮求交,相交即发四句警告,被完全覆盖就停下回报 ⛔ 不硬造 diff)。 @@ -727,21 +712,20 @@ dev**:先试 SendMessage 复活,不可用才走接手协议(四条增量见 runb 最多 2 轮,第三次升级);**ESCALATE**(见「升级与决策」)。 **ACCEPT 之后的路径分叉(动手之前先分,不是事后对照)。** 翻 ready / 挂 auto-merge / 入队前, -先取一次 PR 的路径面(`get_files`,⛔ 不看报告自述)。governed 面统一定义(维护者 -2026-08-18「同意」):`docs/adr/**` + `.claude/**`(全量,含 agents/hooks/settings)+ `skills/**` + `AGENTS.md` + -`CLAUDE.md`;agent 指令文件按此跨仓同判 —— objectui、cloud、objectos 一并在内(维护者 2026-08-18: -「任何对 agents.md 等文件的修改…包括 objectui cloud仓库」→「同意」;objectos 指令面 PR -照样 draft/人工合并)。路径面**一条命中** ⇒ ACCEPT 换终局四件套:① 复核结论照常写在 issue +先取一次 PR 的路径面(`get_files`,⛔ 不看报告自述)。governed 面统一定义(2026-08-18 裁定): +`docs/adr/**` + `.claude/**`(全量,含 agents/hooks/settings)+ `skills/**` + `AGENTS.md` + +`CLAUDE.md`;agent 指令文件按此跨仓同判 —— objectui、cloud、objectos 一并在内(2026-08-18 裁定) +(objectos 指令面 PR 照样 draft/人工合并)。路径面**一条命中** ⇒ ACCEPT 换终局四件套: +① 复核结论照常写在 issue 上(不能合 ≠ 不复核;技能面 PR 的复核席须跑在契约复审档位,档位单源见条款②闸门);② PR 留给维护者,**看得见地悬着**,终局两条:**人工直合即审核记录**(兜底);或**授权人工批准钉 -head ⇒ 队列放行**(2026-08-27 裁:「os-zhuang hotlong 批准算数」;批准人集合与判定单源 +head ⇒ 队列放行**(2026-08-27 裁定)(批准人集合与判定单源 = 队列守卫常量 `GOVERNED_APPROVERS`(`scripts/pm/check-governed-queue-guard.mjs`):APPROVED 且 `commit_id` = PR 当前 head 才算,批准后再推提交即过期转红)。未钉批准 ⛔ 不翻 ready、不入队、不挂 -auto-merge;③ 在 draft PR 上**向两个授权批准账户 `os-zhuang` 与 `hotlong` 都 request review**(维护者 -2026-08-27:「需要批准的主动推送到这两个账户。」主动推,永不等被发现;通道出处 2026-08-19: -「还是应该在 pr 的审核流程,发给 os-zhuang 审核。我的手机github 应该会收到推送消息吧」, -当日实测推送到达(「推送到了」),同日裁定:「只有需要我审核的pr -推给我。」)—— 「等人合」清单从此活在 GitHub 的 Review-requested 队列,合并自动消项。 +auto-merge;③ 在 draft PR 上**向两个授权批准账户 `os-zhuang` 与 `hotlong` 都 request review** +(2026-08-27 裁定)—— 主动推,永不等被发现;通道出处(2026-08-19 裁定), +当日实测推送到达(「推送到了」); +「等人合」清单从此活在 GitHub 的 Review-requested 队列,合并自动消项。 **能请审则请审;PR 作者身份即两账户之一的席位,对该账户请审必失败**(GitHub 拒绝向 PR 作者请审,author-identity 422)—— 该账户改为把 PR **assign** 给它替代通知(另一账户照常请审), 并在轮次报告点名说明走了 assignee 兜底。**请审走免碰 draft 位的专用 REST 端点,MCP @@ -749,8 +733,7 @@ auto-merge;③ 在 draft PR 上**向两个授权批准账户 `os-zhuang` 与 `ho merge」(「等人来合」与「被忘了」在 GitHub 上长得一模一样)。混合 diff 一条命中就分叉, ⛔ 不按比例判;要拆就让 dev 单独开 PR;已入队才读到本条 ⇒ 转 draft 与 disable 都做, 出队以阳性探针答、ref 缺席只旁证不承载结论(探针与两向相反实测住 platform-readings)。 -**skills 车道自有 PR 再按 diff 内容分流**(维护者 2026-08-26 裁定,原话:「skills -中的 pr,只有包含md文件时需要推给我审核,其他代码文件你直接自己审核。」):diff 含任一 +**skills 车道自有 PR 再按 diff 内容分流**(2026-08-26 裁定):diff 含任一 `.md` 文件 ⇒ 上述终局四件套照旧;纯代码面(`scripts/pm/` 工具、`.claude/` hooks/workflows/settings、 `skills/**` 非 md 产物)⇒ skills 席按契约复审档自审(清单不减)后直接落地(ready → 入队), ⛔ 不推维护者;分流只及 skills 车道自有 PR,其它车道 governed 面照旧。路径面干净的才转 @@ -828,8 +811,7 @@ a human merge 项、governed 合并审计清单(实跑 `node scripts/pm/check-go ## 断粮与跨墙恢复(5 小时用量墙) -出处:维护者 2026-08-11 提问(「首先项目经理能不能查到相关的数据,其次是到达时间窗口工作就会停, -是否应该设置一个1小时的定时以监测时间窗口已经解锁」)。检测读数、盲区与恢复 playbook 细则见 `references/platform-readings.md`;常驻原则: +(2026-08-11 裁定)检测读数、盲区与恢复 playbook 细则见 `references/platform-readings.md`;常驻原则: - **检测**:**权威的墙信号是失败本身**——撞墙报文里的重置时刻在那一刻可得、 事前查不到,把它记下来(`ccusage blocks` 等工具读数与其盲区在事实表)。 @@ -907,28 +889,24 @@ finding 定级换结果态,永不留挂)/ `Blocked-by:` 活性现验(合并一 重是推荐规则不是授权规则:50% 不把人工地板的事变成可派发的事,安全/权限边界与破坏性 难逆动作照旧恒交维护者。 **标准四棱卡面块是落卡与升级的必备件**(四棱维护者 2026-08-11 接受; -标准块 2026-08-18 裁定「同意」;同裁定的摘要视图/批量决裁通道已退役, +标准块(2026-08-18 裁定);同裁定的摘要视图/批量决裁通道已退役, 墓碑与原话见 `references/lanes/director.md`;收件箱由维护者定期与 AI 讨论消化,⛔ 不 assign -推送 —— 维护者 2026-08-19 裁定:「我感觉决策卡推给我太麻烦了,我需要和ai讨论才能判断, -这个还是维持之前的样子。我会定期和ai讨论。」),每张 `needs-user-decision` 卡落卡即带、 +推送(2026-08-19 裁定)),每张 `needs-user-decision` 卡落卡即带、 ⛔ 不留待维护者到场再补。**四维分析从业务的角度写**(2026-08-20 裁)—— 落卡分析模板、 写法六项、适用边界与四棱块固定形状细则连同出处原话见 `references/decision-analysis.md`; 推荐是输入,永不是放行,人工地板不变。四棱是四条评估轴的卡面序列化, 一一对应,同一个框架不是第二套,也是分诊代裁置信门的输入。 -**决策通道优先序:卡先于弹窗**(维护者 2026-08-23 报告: -「项目经理干活时经常弹出需要我决策的问题,如果我不在旁边工作就卡住了。」)。 +**决策通道优先序:卡先于弹窗**(2026-08-23 裁定)。 凡需维护者裁决,第一动作是落 `needs-user-decision` 卡(选项 + 推荐 + 证据 + 四棱块, 与弹窗同内容),被阻塞的执行卡**同笔**挂 `pm:blocked` + `Blocked-by:` 指向它,队列其余照常消化, ⛔ 永不整席等答复。`AskUserQuestion` 只是**在场加速器**:仅当维护者在本会话 ~30 分钟内有过人类输入才可发,每问必带推荐项,被 Skip 或长挂即转卡通道 ⛔ 不重弹 —— 卡先于弹窗存在,弹窗怎么死盘面都诚实。**项目总监席:人工召唤,四职 = `needs:contract-review` 事后审计(可选,放行归派发席席内复核 —— 见条款②闸门)、决裁勤务、维护者动作台账、 -governed 合并审计**(维护者 2026-08-27 裁定, -原话:「项目总监 由人工定期指挥,负责处理 contract-review 类别的和需要决裁的。」 -「需要维护者处理的事情,也归项目总监。」—— 决裁半边自此由 skills 席移交本席, -改写 2026-08-26「skills 和决裁的问题,还是由skills席统一人工处理,我会要求你处理某个仓的 -skills和决裁。」的归属半句,skills 面与其车道照旧归 skills 席)。入口 = `/pm-dispatch director`;⛔ +governed 合并审计**(2026-08-27 裁定)(决裁半边自此由 skills 席移交本席, +改写(2026-08-26 裁定)的归属半句,skills 面与其车道照旧归 skills 席)。 +入口 = `/pm-dispatch director`;⛔ 无 Routine 无 cron;档位硬门 = `CONTRACT_REVIEW_TIER`(保险丝机读),不达档只做免档整理并停放四职; 不占 `domain:*`,永不认领 backlog、永不写码;章程见 `references/lanes/director.md`。 @@ -941,15 +919,12 @@ skills和决裁。」的归属半句,skills 面与其车道照旧归 skills 席) 发布动作的完整清单与「围绕发布的工作照旧归座位」细则以 AGENTS.md「release act」 段为权威,含**合并 Version Packages PR**)。发现未经人工的发布痕迹按事故立案, ⛔ 不代跑补救性发布 —— 机械通道的存在不构成授权,遇到那类通道当缺陷上报。 -- **发版提醒纪律**(维护者 2026-08-27 拍板,逐字:「要发版本我会自己点。 - 除非重要修复要发版本你可以提醒我。」):Version Packages PR 默认永不催 —— +- **发版提醒纪律**(2026-08-27 裁定):Version Packages PR 默认永不催 —— 挂着的发布 PR 是常态,⛔ 不进维护者摘要;唯一例外 = 重要修复已合 main 在等发布, 且提醒必须点名该修复与不发版的用户可见后果,让维护者仅凭提醒即可判缓急; 与上条相组合 —— 本条管**何时开口**,上条管**谁动手**。 -- **Governed 面由维护者人工合并,合并即审核记录**(三裁一脉:2026-08-08 - 「adr 只能由维护者自己确认,人工合并,ai 不得擅自合并」;2026-08-11「所有 skills 的更新和adr - 类似,需要人工审核」;2026-08-18 对「人工合并即人工审核,事后审计代替事前门」 - 整包:「同意。」;2026-08-27 增**授权批准钉 head ⇒ 队列放行**第二路径, +- **Governed 面由维护者人工合并,合并即审核记录**(三裁一脉:(2026-08-08 裁定); + (2026-08-11 裁定);(2026-08-18 裁定);2026-08-27 增**授权批准钉 head ⇒ 队列放行**第二路径, 细则单源见 ACCEPT 路径分叉)。面 = 该节统一定义;skills 车道纯代码 PR 的 md-content 分流、 禁令三条与离队出口同见该节。⛔ **agent 席位永不以任一账号对受管面 PR 提交批准 review**(授权集合内也有 agent 席,与「永不入队」同级);事后防线 = 审计清单, From 10e714d13f6754380a7d27cc1764778f5b09e4d2 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 3 Sep 2026 09:39:28 +0000 Subject: [PATCH 02/10] docs(os-dev): replace the non-operative ruling quote in os-dev.md with a date pointer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Same policy as the SKILL.md commit, applied to the dev-agent definition: the two-sentence 2026-08-21 quotation in the published-skills clause becomes `(2026-08-21 裁定)`; the two ratchet-currency quotes and the frame-block quote are operative criteria and stay verbatim. 469 -> 468 lines, shrink-only. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01LraLgQVGq8egUwfYZpbYt1 --- .claude/agents/os-dev.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.claude/agents/os-dev.md b/.claude/agents/os-dev.md index 42fc96f5d3..2930d7b03d 100644 --- a/.claude/agents/os-dev.md +++ b/.claude/agents/os-dev.md @@ -316,9 +316,8 @@ dispatch prompt 只携带每单增量(裁决引文、裁决 / PM-机制假设分 sanitizer 纪律」)。 - **触 `skills/**`(对外发布的技能包)的 diff:PR 正文报两个读数,并默认拒绝「小功能大扩 写」。** 两个读数缺一不可 —— 被改文件的**整文件** before/after,与**整包** before/after - (发布目录下全部 SKILL.md 之和);行数为准,姊妹门禁定义 token 计数后同报 token。维护者 - 2026-08-21 裁决,原文不译:「对外发布的 skills 是整个平台的最大价值,尤其要整体考虑和评 - 估。」「……不能为了一个小功能扩写很多。」派发词给的净增预算装不下 ⇒ 停下按 `blocked` 报 + (发布目录下全部 SKILL.md 之和);行数为准,姊妹门禁定义 token 计数后同报 token + (2026-08-21 裁定)。派发词给的净增预算装不下 ⇒ 停下按 `blocked` 报 缺口,⛔ 不自行扩写、不自行抬预算 —— 预算是 PM 的,抬它是维护者裁决。 - **付行数棘轮的唯一合法货币是删内容。** 维护者 2026-08-17 裁「⛔ re-wrap(折行合并) 不得用作筹行 —— 棘轮治理的是内容体量,行数只是机读代理,新增以删减付账;密度优化仅随净减 From ee78dd40c1d5ce9f261ad1883f83e06fc1dab507 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 3 Sep 2026 09:48:11 +0000 Subject: [PATCH 03/10] docs(pm-dispatch): date pointers in references/contract-review.md (X0 stage 2) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Same quote policy as the SKILL.md commit, applied whole-file: nine non-operative maintainer quotations become `(YYYY-MM-DD 裁定)`; the 2026-08-27 transcript-verification quote stays verbatim because the quoted phrase is the sentence's subject. 65 -> 64 lines. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01LraLgQVGq8egUwfYZpbYt1 --- .../pm-dispatch/references/contract-review.md | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/.claude/skills/pm-dispatch/references/contract-review.md b/.claude/skills/pm-dispatch/references/contract-review.md index 3d0a8cebff..983dcf6170 100644 --- a/.claude/skills/pm-dispatch/references/contract-review.md +++ b/.claude/skills/pm-dispatch/references/contract-review.md @@ -4,31 +4,30 @@ ## 载体纪律(挂与清) -- **适用性 —— 内容肢及于 published `skills/**`**(维护者 2026-08-31 批 #12「同意」):作**可证伪的 +- **适用性 —— 内容肢及于 published `skills/**`**(2026-08-31 裁定):作**可证伪的 算子/契约语义主张**的改动挂标走本复核;⛔ 判据不是「提到契约」,纯算子清单、拼写、 格式不触发(标尺:10 处命中仅 3 处主张)。受管面人工合并 ⛔ 不替代复核,两道保障叠加。 -- **claim 声明按设计临时(provisional)**(维护者 2026-09-01「同意」):`Clause-②: yes|no` 只定 +- **claim 声明按设计临时(provisional)**(2026-09-01 裁定):`Clause-②: yes|no` 只定 派发档位的保守方向,⛔ 非终审;真闸门在 PR/报告时的档位复核 —— 证据与成本在那里。 声明被档位推翻 = 机制按设计工作,⛔ 不作席位过失。 - **机械地板(同笔;claim 时可查树、无需判断)**:任何**新导出符号**或**已发布载荷上的 新键**恒 `yes`,直接锁契约复审档。**conformance 类 ⛔ 不机械化**(填充已声明字段、在两 个已发布码之间重选输入类):判别需档位判断,claim 拿不准 ⇒ **按 yes 派契约复审档**(假 yes 自纠、假 no 出货);⛔ 不建全量分类学与 claim 时决策程序(创业镜头:代价是复审轮)。 -- **PR 与卡双载体同笔挂**(维护者 2026-08-22:「简化一点是否可以直接挂 PR 侧」「两边都挂好 - 」; PR 一存在即挂,报告先于 PR 到达则先挂卡侧、ACCEPT 时补齐 PR 侧),同笔在卡上记一行 +- **PR 与卡双载体同笔挂**(2026-08-22 裁定)(PR 一存在即挂,报告先于 PR 到达则先挂卡侧、 + ACCEPT 时补齐 PR 侧),同笔在卡上记一行 条款②认定;停靠短暂(只防复核完成前误入队),⛔ 无「等外部席位」的无限期状态。 - ⛔ **不预挂**(维护者 2026-08-28 裁定):可复审增量存在前永不挂标,提前挂已废止 —— 前瞻 条款②事实住卡上裁决/分诊评论、`Clause-②` 申报与 `--tier` 输出;开载体恒 = 真实待审。 -- **载体不迁移**(维护者 2026-08-18,原话:「中期把闸门迁到 PR review 的 Request Changes - 上 我觉得没必要」): 闸门载体保持本标签,⛔ 不迁 PR review / Request Changes、不为迁移留门。 +- **载体不迁移**(2026-08-18 裁定): 闸门载体保持本标签, + ⛔ 不迁 PR review / Request Changes、不为迁移留门。 - **重挂前先查裁决**:闸门标签缺失 ⇒ 先 grep 卡评论找复审结论 —— PASS + 无标 + head 未动 = 已清标非被剥;head 后移或无结论才重挂(`get_reviews` 读空 ≠ 未复审)。 ## 复核归属与资格(席内) -- **归属:该卡派发席,交付后收集复核当轮席内完成**(维护者 2026-08-31 裁定,原话:「项目经 - 理是fable 或者可以派fable的子任务都可以自己contract view吧?」;沿 2026-08-21「你自己就是 - Fable,自己就可以审核」的放宽 —— 审的是低档实现者的契约增量,非自身产物;主文件 +- **归属:该卡派发席,交付后收集复核当轮席内完成**(2026-08-31 裁定) + (沿(2026-08-21 裁定)的放宽 —— 审的是低档实现者的契约增量,非自身产物;主文件 「⛔ 免复核不放行」禁的是免复核直放,不禁本路径)。 - **契约判断清单(收集复核的升格件,逐项落卡/PR 评论,⛔ 不是散文自述)**:① derived judgments 逐项 —— diff 引出的接受集/公开面变化逐条点名判对错;② semver 定级 —— 变更 @@ -37,16 +36,16 @@ 隔离的 fable 复核子代理**出第二意见,只喂卡片、既有裁决与 PR 本体,⛔ 不喂派发令与 派发席自己的结论(污染即失独立性);简报写成**对抗性**(找拒绝理由)。未达档席 ⛔ 不凭 自述复核,恒走本路径;子代理裁决按转录核验采信(下节),逐字采纳或整体作废。 -- **放行 = 清标即落地**(维护者 2026-08-25,原话:「审核通过你应该直接负责合并吧,还要等原始 - 的项目经理吗」):PASS ⇒ 同席同笔剥标(双载体),清标评论引 2026-08-31 裁定作 provenance,按 +- **放行 = 清标即落地**(2026-08-25 裁定):PASS ⇒ 同席同笔剥标(双载体), + 清标评论引 2026-08-31 裁定作 provenance,按 `landing-operations.md` 走落地前检 → 转 ready → 挂 auto-merge/入队;轮报设**复审清单**专 节(同代裁清单强制审计形状)。 -- **落地前检三条**(维护者 2026-08-31「同意」):① 席内契约档 PASS 在案(卡上达档裁决评论);② +- **落地前检三条**(2026-08-31 裁定):① 席内契约档 PASS 在案(卡上达档裁决评论);② `needs:contract-review` 双载体已清;③ PR 全部 check 全绿(⛔ 非 required 子集)。② 逐对机读 `node scripts/pm/check-clause2-carriers.mjs --pair PR-NUMBER`:0 双肢可读且一致 · 4 不一致 · 3 环境答不 了 ⛔ 不作干净。转 ready 同笔留 provenance 评论引该 PASS;受管面不适用,draft-only 终局不变。 -- **外部评审链降为可选**(改写 2026-08-27「契约复审也是很重要的职责,也是需要定时处理 - 的」所立的定时轮常设归属):分诊定时轮与总监席召唤非放行必要条件,在线时作**事后审计/抽 +- **外部评审链降为可选**(改写(2026-08-27 裁定)所立的定时轮常设归属): + 分诊定时轮与总监席召唤非放行必要条件,在线时作**事后审计/抽 查**,其裁决仍被尊重 —— 审计 FAIL 按状态机 label-flip 交回派发席补丁轮;⛔ 不与席内复核 抢同一载体的放行动作;资格与档位硬门对审计者同样成立。 From 1eaf3aed1f82a9db7531ae5bf6854bfa2006c302 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 3 Sep 2026 09:48:12 +0000 Subject: [PATCH 04/10] docs(pm-dispatch): date pointers in references/decision-analysis.md (X0 stage 2) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Four non-operative quotations become date pointers; the 2026-09-01 numeric weight criterion stays verbatim (same KEEP as in SKILL.md). The heading's "裁决原话与归席见主文件" pointer drops 原话 because the words it pointed at were converted in the SKILL.md commit. 54 -> 53 lines. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01LraLgQVGq8egUwfYZpbYt1 --- .../pm-dispatch/references/decision-analysis.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/.claude/skills/pm-dispatch/references/decision-analysis.md b/.claude/skills/pm-dispatch/references/decision-analysis.md index 2b811d4d2f..0ff25f66a7 100644 --- a/.claude/skills/pm-dispatch/references/decision-analysis.md +++ b/.claude/skills/pm-dispatch/references/decision-analysis.md @@ -1,6 +1,6 @@ # 决策分析写法 —— 四维从业务角度写 -出处(维护者 2026-08-20 裁定,逐字,未译):「四维分析应该从业务的角度写我才好判断」。 +出处(2026-08-20 裁定)。 ## 适用面(边界) @@ -8,10 +8,9 @@ 旧,不强加行业类比。四条轴本身不变,轴定义与绑定句在主文件「升级与决策」。 - 只适用新记录,存量分析 ⛔ 不回改(new-records-only,与四维中文化同款先例)。 -## 常设决裁批流程(2026-08-26 裁;裁决原话与归席见主文件「升级与决策」) +## 常设决裁批流程(2026-08-26 裁;归席见主文件「升级与决策」) -- 每批**恰好 5 张(末批不足照呈),呈完即停等回批**(2026-09-01 - 裁「每批5张详细解释,不是这样一堆列给我,这个也要写入skills」),⛔ 永不一条消息投多 +- 每批**恰好 5 张(末批不足照呈),呈完即停等回批**(2026-09-01 裁定),⛔ 永不一条消息投多 批;批序:在飞被阻塞 > 运营阻塞 > 用户可见 > 结构性;每卡 = 六项写法 + 四棱块;回批一行 式「1A 2B …」,「X, 但…」= 附带条件随执行落地;裁后四件原子执行不再请示,一口气跑 完;批间新入箱的卡滚入下一批,收件箱读数为零才收工。 @@ -45,10 +44,10 @@ 构、响亮拒绝优于静默容忍);④ 创业阶段不扩散(remove 优于 declare-and-maintain,每个已声明的键 都是永久义务);一行推荐 + 字母选项(A/B/…);**一行强制置信缺口(「本分析看不见什么」)**。 四棱行同受六项约束:每行论据从业务立场写,机制名词只作括号补充。 -**四棱分歧推荐序**(2026-08-27「tong y 4」):②实测拉动⇒荐①长远终态;零拉动⇒荐④不扩散; +**四棱分歧推荐序**(2026-08-27 裁定):②实测拉动⇒荐①长远终态;零拉动⇒荐④不扩散; ③破余下平局向响亮/结构;安全与难逆恒人工;⛔ 只排推荐,分歧照旧升级、代裁面不扩。 **①长远权重下限**(2026-09-01 裁「四维分析中,长期合理应该权重最高,至少50%」):①恒 ≥50%,推荐以①领起,其余各轴合起来投不翻①;①按本义读(缩小而非扩大特例/契约增生),⛔ 不据它为投机扩张背书;⛔ 只排推荐不授权 —— 50% 不把人工地板的事变成可派发的事。 -**应用仓推荐序特例**(2026-08-31 裁「既然是平台缺陷,就应该等待平台处理」):阻塞源是平台 +**应用仓推荐序特例**(2026-08-31 裁定):阻塞源是平台 缺陷 ⇒ 恒荐等待,⛔ 不荐绕行(形状容错/复刻平台规则)、不荐劈半落地。 From 1c60975d6b646b79a7136aebdfa938088f6ad33d Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 3 Sep 2026 09:48:12 +0000 Subject: [PATCH 05/10] docs(pm-dispatch): date pointers in references/dispatch-runbook.md (X0 stage 2) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Nine 出处 quotations (maintainer questions and one-word replies whose rules live in the main file or the section body) become date pointers; the "出处原话逐字住主文件「两级盘点」条" pointer drops 原话逐字 because that quotation was converted in the SKILL.md commit. 280 -> 273 lines. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01LraLgQVGq8egUwfYZpbYt1 --- .../references/dispatch-runbook.md | 29 +++++++------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/.claude/skills/pm-dispatch/references/dispatch-runbook.md b/.claude/skills/pm-dispatch/references/dispatch-runbook.md index f871aba95e..70a2629720 100644 --- a/.claude/skills/pm-dispatch/references/dispatch-runbook.md +++ b/.claude/skills/pm-dispatch/references/dispatch-runbook.md @@ -5,8 +5,7 @@ ## 车道取卡全序与 `pm:blocking`(维护者 2026-08-13) -出处(逐字,未译):「被依赖的卡片是不是应该通过label标注提高优先级。 -项目经理处理任务清单时,bug 是不是应该提高优先级。」 +出处(2026-08-13 裁定)。 全序本体与 `pm:blocking` 推导在主文件; 补遗:级序理由一行 —— p0 是显式裁定,blocking 一张挡多张,bug 是已坏的不变量、先于增强, 卡龄防饿死;写入与摘除都在分诊轮 sweep,依赖者全关即摘,手工挂上的按误标处理、 @@ -14,20 +13,17 @@ sweep 对着索引校正;种子与消费者注记在 `scripts/pm/ensure-pm-label ## 紧急卡 fable 直接分诊(维护者 2026-08-13) -出处(逐字,未译):「对于比较紧急的卡片,是否应该使用 fable 5 子agent直接分诊」。 +出处(2026-08-13 裁定)。 触发、授权面与同格式同效力在主文件;补遗:授权面不含派发(⛔ 不写码、不认领、 不派发);单一生产者纪律照旧(与「代扫」同界)—— 分诊座位在班且已在处理同卡即让行; -紧急通道改的是节奏,不是生产者数目。**半状态治愈积压排序**(维护者 2026-08-19「没有切换 -label,导致挂了很久」;排序规则本体在主文件):限量 + 最新优先会令最老半状态结构性饿死, +紧急通道改的是节奏,不是生产者数目。**半状态治愈积压排序**(2026-08-19 裁定) +(排序规则本体在主文件):限量 + 最新优先会令最老半状态结构性饿死, 活过一个 sweep 周期的半状态是治愈环自身的缺陷,不是库存;正文自报 P0/data-integrity 的命中即走本节紧急通道;机械年龄告警在半状态巡查脚本(细节以脚本头为权威)。 ## 发现分诊轮细则(维护者 2026-08-13 / 08-25) -出处(逐字,未译),同日三段:「Finding 很多,是否建议集中分诊」…「按照你的建议」 -= 域分批集中轮常设授权;「还有这个积压时常态,是否应该优化。」= 结构修复令; -「积压数字本身有误导 —— 47 张里大半是带重启条件的健康 hold(它们本来就该躺着), -那为什么标 finding」= 状态语义裁定。 +出处(2026-08-13 裁定),同日三段:域分批集中轮常设授权;结构修复令;状态语义裁定。 - **状态转换机制**(「finding 恒 = 待首次定级」在主文件):定级出 hold ⇒ 同笔 `finding` → `pm:on-hold`(域标签保留;hold 评论照既有纪律带日期/理由/具名重启条件, @@ -68,7 +64,7 @@ fire 附带一次: ## 分诊席读数成本三则(维护者 2026-08-20) -出处:三方讨论后维护者「立卡」;实测数百评论座位贴每轮全文重读数千 token。 +出处(2026-08-20 裁定);实测数百评论座位贴每轮全文重读数千 token。 - **收班简报索引化**:四段模板 —— 首行机器判据(「分诊轮收尾」 起始标记,**逐字不动**,互斥守卫靠 grep 它)+ 索引表(卡号 | 一行判决)+ 健康指标 + @@ -86,7 +82,7 @@ fire 附带一次: ## 分诊两级盘点细则(维护者 2026-08-20) -出处原话逐字住主文件「两级盘点」条。实测全量四仓 ~50k token/轮, +出处住主文件「两级盘点」条。实测全量四仓 ~50k token/轮, `since` 等价 ~8k。小时层三读法:sweep 析取①②③ = `list_issues` + `since`(标签变更刷新 `updated_at`, 半标注照样入窗);解锁扫描反演 = 逐仓 `state=CLOSED` + `since` 与 `Blocked-by:` 反向索引求交, 命中走既有回队双查;健康指标 = 逐标签 `perPage: 1` 只读 `totalCount` —— @@ -99,14 +95,13 @@ fire 附带一次: ## 落卡与裁决记录细则(维护者 2026-08-13) -出处(逐字,未译):「还有很多我发现分诊或者决裁后没有改状态, -这个也是问题」…「这个也需要更新项目经理技能」。实测:一张决策卡三个叠加半状态。 +出处(2026-08-13 裁定)。实测:一张决策卡三个叠加半状态。 - **裁决记录四件补遗**(四件本体在主文件;原子、记录座位全责、维护者裁与代裁同规): ① 鲜度门可内联声明分歧代替调和正文,对过期正文记录的裁决按过期论。 - **出决策箱须引可取回的裁决 id**:把卡转出 `needs-user-decision` 的那一笔,评论须带台账条目 或卡上裁决评论的 comment id,且该 id **同趟取回过** —— 取这一下就是判据(两载体皆合 - 法:2026-08-31 裁「其他同意」定存在性归总监席每场台账,卡上评论为详注);⛔ 时间戳 + 回忆 + 法:(2026-08-31 裁定)存在性归总监席每场台账,卡上评论为详注);⛔ 时间戳 + 回忆 不是引用,带 id 不等于可取回(两形实测:事后 404 的真 id、凭印象写出的假 id)。读侧对 称:决策复读命中无可取回 id 的出箱按**未裁**处理 —— 同笔转回、⛔ 不派;结论只落可核 性,⛔ 不断成因。 @@ -130,8 +125,7 @@ fire 附带一次: ## 结论当轮执行(维护者 2026-08-14) -出处:维护者裁(逐字,未译) -「现在开工派发」;当日实测是成批「建议关闭」复测结论与结论表躺置多日无人执行。 +出处(2026-08-14 裁定);当日实测是成批「建议关闭」复测结论与结论表躺置多日无人执行。 - **结论产生的那一轮就执行它。** 复测/审计/裁决得出结论而不在同一轮完成对应的关闭 /换标写入,本身就是半状态,与半状态家族同列 —— 记录后离场(record-and-walk-away) @@ -191,8 +185,7 @@ subagent 批之前先快进:`git -C pull --ff-only origin main`;检 ## 跨车道简单阻塞项直接接手(维护者 2026-08-13) -出处(逐字,未译):「如果当前任务依赖其他赛道的任务, -如果判断简单,是否可以直接接手而不必持续等待」。判据与认领纪律(含 `Claim:` 拼写) +出处(2026-08-13 裁定)。判据与认领纪律(含 `Claim:` 拼写) 在主文件;补遗:只覆盖「等一周 vs 做十分钟」的形状;`packages/spec` 恒归 spec 座位, 本条不豁免(唯一所有者规则更硬);「借调」墓碑在主文件多仓协调 4 —— 判据是依赖形状, 只做被本车道开卡 `Blocked-by:` 点名的那一个阻塞项,做完即回,⛔ 不顺手接第二张。 From cf5ac4bd22420d309a8d0e86e1739787e54a3ffc Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 3 Sep 2026 09:48:12 +0000 Subject: [PATCH 06/10] docs(pm-dispatch): date pointers in references/landing-operations.md (X0 stage 2) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The two 2026-08-25 「同意」 quotations become date pointers. 80 -> 80 lines. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01LraLgQVGq8egUwfYZpbYt1 --- .claude/skills/pm-dispatch/references/landing-operations.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.claude/skills/pm-dispatch/references/landing-operations.md b/.claude/skills/pm-dispatch/references/landing-operations.md index c09d47d945..2b48dd9094 100644 --- a/.claude/skills/pm-dispatch/references/landing-operations.md +++ b/.claude/skills/pm-dispatch/references/landing-operations.md @@ -55,11 +55,11 @@ job 结论,绿即转 ready + 挂 auto-merge,未绿阶梯重挂;CI success webhoo 触发条件是卡终局且报告已收复核,⛔ 合并前不归档(活会话是 dirty 自救的执行手;误归档可 unarchive,但容器现场已失,宁晚勿早);暂停/交接把在挂订阅清点进座位贴,⛔ 不留孤儿订阅。 -**main-red 事故两条约定**:① **p0 fix-forward 允许跳队**(维护者 2026-08-25「同意」):main +**main-red 事故两条约定**:① **p0 fix-forward 允许跳队**(2026-08-25 裁定):main 红的止血 PR(p0、机械、根因已核实)可跳队(GitHub 队列自带 jump-the-queue),或按既有 governed 例外由维护者人工直合一行修复 —— 排在事故自己堵住的队列后面是具名反模式; 仅限 main-red 修复,⛔ 不放宽其它任何 PR 的 queue-only 落地。 -② **一个失败 check 只锚一张卡**(维护者 2026-08-25「同意」):main-red +② **一个失败 check 只锚一张卡**(2026-08-25 裁定):main-red 事故按失败 check 名锚一张卡,先立者赢;后见者把读数评论到锚卡上,⛔ 不另立。 ## C. 依赖前棒才能转绿的 PR:draft 停放 + 签名级预期红清单 From d6a577523e2e5c41f0a5b1f367046b5e6fe68b0d Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 3 Sep 2026 09:48:12 +0000 Subject: [PATCH 07/10] docs(pm-dispatch): date pointers in references/lanes/director.md (X0 stage 2) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Eight non-operative quotations become date pointers; the 2026-08-27 authorization sentence stays verbatim because the file declares it to be the seat's duty definition itself. The "(原话见主文件总监段)" pointer drops 原话 because that quotation was converted in the SKILL.md commit. 77 -> 72 lines. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01LraLgQVGq8egUwfYZpbYt1 --- .../pm-dispatch/references/lanes/director.md | 23 ++++++++----------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/.claude/skills/pm-dispatch/references/lanes/director.md b/.claude/skills/pm-dispatch/references/lanes/director.md index 3360784ab0..ed8b7cb996 100644 --- a/.claude/skills/pm-dispatch/references/lanes/director.md +++ b/.claude/skills/pm-dispatch/references/lanes/director.md @@ -16,16 +16,13 @@ issue 编号;机器判据恒英文,引文逐字不译。 - **双射 carve-out**:一张 `pm:seat` 座位贴、四段协议照旧(与分诊席同款);不占 `domain:*` 车道,范围按职责标签跨车道跨仓;永不认领 backlog、永不写码;机械接手经派发 dev。 -## 基本原则(维护者 2026-08-27,逐字未译) - -> 「项目总监 工作的基本原则,5张一批,要从业务角度解释清楚问题和和选项,并带上四维综合分析」 +## 基本原则(2026-08-27 裁定) - 三要素:每批 5 张;每卡从业务角度讲清问题与选项及其真实代价;每卡带四维综合分析 + 一个推荐。呈报批序与写法见 `../decision-analysis.md`;四维框架单源在主文件「升级与决 策」四轴(`check:skill-frame-sync` 管的四份拷贝不动,⛔ 本文不复制框架本体)。 -- 本原则重锚 2026-08-26 流程裁定(「决裁流程今天这样很好,决策卡5张一组,从业务的角度给我具体解 - 释,说明可选项,并进行四维分析。应该写入技能。」):流程未变,2026-08-26 定流程、2026-08-27 升格定归属。 -- **创业阶段不渐进**(维护者 2026-08-27,逐字:「创业阶段不渐进 应该写入项目总监skills」): +- 本原则重锚(2026-08-26 裁定):流程未变,2026-08-26 定流程、2026-08-27 升格定归属。 +- **创业阶段不渐进**(2026-08-27 裁定): 废弃别名与退役默认立即退休,无窗口无双拼写宽限;staged 仅凭具名外部用户证据可荐。 ## 职责一:`needs:contract-review` 事后审计/抽查(可选) @@ -34,9 +31,7 @@ issue 编号;机器判据恒英文,引文逐字不译。 `../contract-review.md`,⛔ 不另抄):召唤时作事后审计/抽查 —— 枚举载体(卡与 PR 两侧)与近 期落地的条款② PR,查复核质量与漏网;裁决仍被尊重但非放行必要条件,⛔ 不与席内复核抢 同一载体的放行动作;非机械 CI 红交回具名读者,机械红可接手(经派发 dev 执行)。 -- **处理三分支**(维护者 2026-08-27,逐字未译:「刚才说的 needs:contract-review 类别,项目总监处理 - 时,如果是收尾,应该帮忙处理完到合并。如果有大的错误,应该改标签。如果是卡在决策卡,和我讨论该 - 怎么处理。」): +- **处理三分支**(2026-08-27 裁定): - **收尾(PASS,工已完)⇒ 跟到合并为止**:非受管 code PR 走「清标即落地」全链;受管面 照旧 draft-only + 人工合并 ——「到合并」= 推进到就绪并点名等待,⛔ 不代维护者合并。 - **大的错误(FAIL/REWORK)⇒ 改标签即交接**:按状态机一笔 replace 转回相应工作态(重派/ @@ -47,29 +42,29 @@ issue 编号;机器判据恒英文,引文逐字不译。 - 决策收件箱(`needs-user-decision`)跨仓勤务:按基本原则批呈;一行回批即全链执行,裁后 四件原子执行不再请示;批间新到滚入下批,收件箱清零才收工;⛔ 不复活已退役的 - 汇总 issue(维护者 2026-08-19:「之前定期生成的决策汇总 issue没什么用」)。 + 汇总 issue(2026-08-19 裁定)。 - 代裁通道(分诊席或本席)硬门、置信门与人工地板见主文件「分诊座位职责」,⛔ 不另 抄;不达档 ⇒ 通道整体跳过、卡走维护者路径,恒安全。 -## 职责三:维护者动作台账(维护者 2026-08-27,逐字未译:「需要维护者处理的事情,也归项目总监。」) +## 职责三:维护者动作台账(2026-08-27 裁定) - `pm:awaiting-maintainer` 跨仓标签是「待人工动作」唯一机器载体(决定已做、只剩一次 GitHub 之外人工动作的态);本席是台账管家,车道席照旧只负责**入态**,台账与出口归本席。 - 召唤时随决裁批次呈报一份合并的「待您」清单 —— 座位贴散文降为指针,标签即状态。 - **出口执行**:核验动作确已发生 → 摘标 + 证据评论同笔;出口条款见 `../state-machine.md`。 -## 职责四:governed 合并审计(维护者 2026-08-27,逐字未译:「合并审计归总监那件事,同意你的建议」) +## 职责四:governed 合并审计(2026-08-27 裁定) - 检测双层、处置单席:车道轮报 sweep 只作早警,权威合并窗口在本席,每场召唤实跑 check-governed-merges,`--since-ref` 锚上一场记录的 tips(锚行住座位贴说明段;脚本零存储,自 打印下一场参数),跑后新 tips 同笔记回;INCOMPLETE(exit 2)照实报,⛔ 不作干净。 - 清单并入决裁批次,一行一条认定 y/n;未认定条目 = 席位违规,同笔立 `needs-user-decision` 卡 - 立案回滚(事后审计制,维护者 2026-08-18「同意。」);容器 403 归因逐条走 MCP 补齐。 + 立案回滚(事后审计制)(2026-08-18 裁定);容器 403 归因逐条走 MCP 补齐。 - ⛔ 不新增标签(枚举本地树推导零 API);⛔ 无 cron(节奏与停放同「授权与形态」)。 ## 交接台账(supersession —— 原条款已原地改写,此处记两个日期的关系) -- **决裁半边**:2026-08-26 裁定(原话见主文件总监段)的决裁归属由 2026-08-27 移交本席; +- **决裁半边**:2026-08-26 裁定(见主文件总监段)的决裁归属由 2026-08-27 移交本席; skills 面照旧归 skills 席 —— 分界:改 skill/指令/governance 文本的工作归 skills 席,出裁 决、清复审标、清点待人工清单的勤务归本席。 - **复核归属与代裁 runner**:skills 席自绑小时钟(维护者 2026-08-23)实测已死,⛔ 不复活 → 移交 From 1d5a3887d371588cff246ef6036ad0198e81c5f4 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 3 Sep 2026 09:48:13 +0000 Subject: [PATCH 08/10] docs(pm-dispatch): date pointers in references/seat-post-protocol.md (X0 stage 2) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The two 2026-08-27 「落协议」 sites (one with its proposal fragment) become date pointers. 105 -> 104 lines. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01LraLgQVGq8egUwfYZpbYt1 --- .claude/skills/pm-dispatch/references/seat-post-protocol.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.claude/skills/pm-dispatch/references/seat-post-protocol.md b/.claude/skills/pm-dispatch/references/seat-post-protocol.md index c38a489916..8d7c245455 100644 --- a/.claude/skills/pm-dispatch/references/seat-post-protocol.md +++ b/.claude/skills/pm-dispatch/references/seat-post-protocol.md @@ -43,10 +43,9 @@ 安置默认**离任留守**(下条);留不了的才热移交:在飞卡落**收单注记**(评审判据、 落地步骤、当前状态)+ 点名接手看护者 —— 默认下任座位,在跑云会话经 poke 触发器投递 (⛔ 非 `SendMessage` 直投,见 runbook);看护只守落地,**评审判断不可外包**。**收班序列** - (维护者 2026-08-27 裁「落协议」):贴正文/标题刷新在先,**收班简报评论是最终一笔**; + (2026-08-27 裁定):贴正文/标题刷新在先,**收班简报评论是最终一笔**; 继任的释放判据 = 简报在;标题滞后是可修半状态,坐席时顺手修,⛔ 不是阻塞。 -- **离任留守(linger)= 收班后的默认看护形态**(维护者 2026-08-27 裁「落协议」; - 提案片段:「立刻进行交接,并继续处理完手上的任务到合并」;「清标即落地」的延伸, +- **离任留守(linger)= 收班后的默认看护形态**(2026-08-27 裁定)(「清标即落地」的延伸, 谁评审谁落地):离任 PM 可继续把在手项驱动到 MERGED;写面恰为**简报点名的项**(已 ACCEPT 待队列 PR、落地中评审链载体),⛔ 不读队列、不新派发、不碰未点名卡,残余定时器同界; 末尾巴合并 ⇒ 贴上一条尾清注记。继任立即坐席,点名集作围栏(声明式,同热文件串行队); From 049bc19c48b8b9609d8f7b3fdd6d7fdf829c2ed8 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 3 Sep 2026 09:48:13 +0000 Subject: [PATCH 09/10] =?UTF-8?q?docs(pm-dispatch):=20repair=20six=20"?= =?UTF-8?q?=E5=8E=9F=E8=AF=9D=E8=A7=81=20=E2=80=A6"=20cross-references=20i?= =?UTF-8?q?n=20SKILL.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Six pointer phrases sent readers to verbatim words that the stage-1 and stage-2 commits converted to date pointers; each drops the 原话 limb in place (no rule text changes, no line re-wrapped). 964 -> 964 lines. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01LraLgQVGq8egUwfYZpbYt1 --- .claude/skills/pm-dispatch/SKILL.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.claude/skills/pm-dispatch/SKILL.md b/.claude/skills/pm-dispatch/SKILL.md index 159c4a5e51..4f4c297d75 100644 --- a/.claude/skills/pm-dispatch/SKILL.md +++ b/.claude/skills/pm-dispatch/SKILL.md @@ -123,7 +123,7 @@ PR 的会话被读作「清」)。**收班简报 = 前任「不再写」的显 按解锁扇出排序选择、**在合并后的 ref 上重验每张回队卡的文件面**(⛔ 只做第一件; 关掉上游的那个合并最可能顺手把你这张卡也修掉)。 **一个标签存在,当且仅当有具名读者**;`pm:blocking` 即其推导缓存(语义见状态模型行, - 读者以词表脚本注为权威;裁决原话见 runbook 全序节)。 + 读者以词表脚本注为权威;裁决出处见 runbook 全序节)。 - **跨仓解锁的判据是「消费方可安装」, 不是「上游已合并」**:消费仓以**发布包**消费该上游(而非 git SHA pin) 时,解锁扫描放回前先验证修复已进入消费方可安装的发行版(安装面探针: @@ -184,7 +184,7 @@ PR 的会话被读作「清」)。**收班简报 = 前任「不再写」的显 产品依赖方向固定:`objectstack`(后端; `packages/spec` 是唯一契约)→ `objectui`(前端,构建产物经 `pnpm objectui:refresh` 回流) -与 `cloud`。**仓分两类**(维护者 2026-08-26 裁定;原话与决裁归席交接见「升级与决策」): +与 `cloud`。**仓分两类**(维护者 2026-08-26 裁定;决裁归席交接见「升级与决策」): **多车道仓** `objectstack`、`objectui` —— 中央分诊是 `domain:*`/type/定级的唯一生产者; **单车道仓** `cloud`、`objectos`、`hotcrm`、`www.objectos.ai`(未来新仓默认此类)—— 其 `repo:*` 席自理无冲突的机械三务(自扫 sweep、自打 `type`、自做 `finding` 首触定级),⛔ 不产 `domain:*`, @@ -401,7 +401,7 @@ sanitizer 截断的卡不可派发,评论修复指令后跳过;停摆指令判 每批先过时前提检查再三选一 —— 晋级 / 关闭 not planned(维护者可否决重开,PM 不等批准)/ hold;**判级发生在这里,不在立单时**。车道座位可附证据/前提重验,⛔ 不定级不改标 (唯一例外:skills 车道 finding 由该席自分诊,全仓轮跳过)。域分批与 sweep 打包晋级五条照用 -(常设授权,维护者 2026-08-13);原话、每批约定与积压告警见 `references/dispatch-runbook.md`。 +(常设授权,维护者 2026-08-13);每批约定与积压告警见 `references/dispatch-runbook.md`。 **`pm:retriage` 重判每 fire 高优先处理**:按异议评论的证据与建议定级重裁, 维持或改判皆由本座位同笔摘标(挂标归异议席,见状态模型)。 @@ -759,7 +759,7 @@ PM 自己的工具 PR 留维护者。main-red 修复的跳队例外与事故锚 旧进决策箱,席内复核 ⛔ 不替代维护者裁定;外部评审链降为可选事后审计,非放行前提。 `needs:contract-review`(标签命名审的对象,恒英文)由 PR 创建者随**可复审契约增量**同笔挂 (draft PR,或先到的报告),复核完成前短暂停靠;前瞻预挂已废止(维护者 2026-08-28 裁定)。 - 席内复核细则(清单、隔离子代理、载体与保险丝)与裁定原话见 `references/contract-review.md`。 + 席内复核细则(清单、隔离子代理、载体与保险丝)与裁定出处见 `references/contract-review.md`。 - **碰生成物的 PR,入队前先同步 + 整体重生成**(os-regen 驱动零冲突标记地**静默丢掉一侧改动**): 四步序已机械化 `bash scripts/pm/os-regen-merge.sh`; 陷阱、断言措辞与锚点禁令见 landing-operations A。 @@ -890,10 +890,10 @@ finding 定级换结果态,永不留挂)/ `Blocked-by:` 活性现验(合并一 难逆动作照旧恒交维护者。 **标准四棱卡面块是落卡与升级的必备件**(四棱维护者 2026-08-11 接受; 标准块(2026-08-18 裁定);同裁定的摘要视图/批量决裁通道已退役, -墓碑与原话见 `references/lanes/director.md`;收件箱由维护者定期与 AI 讨论消化,⛔ 不 assign +墓碑见 `references/lanes/director.md`;收件箱由维护者定期与 AI 讨论消化,⛔ 不 assign 推送(2026-08-19 裁定)),每张 `needs-user-decision` 卡落卡即带、 ⛔ 不留待维护者到场再补。**四维分析从业务的角度写**(2026-08-20 裁)—— 落卡分析模板、 -写法六项、适用边界与四棱块固定形状细则连同出处原话见 `references/decision-analysis.md`; +写法六项、适用边界与四棱块固定形状细则连同出处见 `references/decision-analysis.md`; 推荐是输入,永不是放行,人工地板不变。四棱是四条评估轴的卡面序列化, 一一对应,同一个框架不是第二套,也是分诊代裁置信门的输入。 From 5b72f66fce97f3c9159cff729638739e5eba8b1a Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 3 Sep 2026 10:09:43 +0000 Subject: [PATCH 10/10] docs(pm-dispatch): align the surface's own provenance wording with the date-pointer form MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Seat review increment: the four on-surface sentences that still described provenance as date + verbatim now state the form the surface follows — date, with verbatim only where the quoted words are themselves the operative criterion (SKILL.md, os-dev.md, references/dispatch-runbook.md x2) — and the last 原话-pointer in references/seat-post-protocol.md becomes a plain pointer. Every touched file stays at net line delta at most 0 and every rewritten line at most 120 bytes; lanes/director.md:4 (which governs the KEEP quotes) is untouched. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01LraLgQVGq8egUwfYZpbYt1 --- .claude/agents/os-dev.md | 5 ++--- .claude/skills/pm-dispatch/SKILL.md | 4 ++-- .claude/skills/pm-dispatch/references/dispatch-runbook.md | 8 ++++---- .../skills/pm-dispatch/references/seat-post-protocol.md | 2 +- 4 files changed, 9 insertions(+), 10 deletions(-) diff --git a/.claude/agents/os-dev.md b/.claude/agents/os-dev.md index 2930d7b03d..157ec28a09 100644 --- a/.claude/agents/os-dev.md +++ b/.claude/agents/os-dev.md @@ -19,9 +19,8 @@ model: opus 仓库根的 AGENTS.md 有约束力;第一次编辑前先读它。本文件只承载原则、查表数据、与钩子无 法 -机械强制的条款;事故经验一律写成自含的教训 —— 不引用 issue 编号,维护者裁决保留日 -期 + -原话。 +机械强制的条款;事故经验一律写成自含的教训 —— 不引用 issue 编号,维护者裁决保留日期 +(原话仅在引文本身即操作性判据处保留)。 ## 六条基本规则 diff --git a/.claude/skills/pm-dispatch/SKILL.md b/.claude/skills/pm-dispatch/SKILL.md index 4f4c297d75..0a7e6292a9 100644 --- a/.claude/skills/pm-dispatch/SKILL.md +++ b/.claude/skills/pm-dispatch/SKILL.md @@ -21,8 +21,8 @@ metadata: → 报告 → 下一批**。维护者只在两个点进入循环:轮次报告,和 `needs-user-decision` 决策卡。 本文只写**原则、状态机与查表数据**(2026-08-12 裁定)。 -每条经验自含失效模式与边界,⛔ 操作文本不引用issue 编号, -不期待读者去翻原始 issue;裁决保留**日期 + 原话**;凡钩子 /门禁 +每条经验自含失效模式与边界,⛔ 操作文本不引用issue 编号,不期待读者去翻原始 issue; +裁决保留**日期**(原话仅在引文本身即操作性判据处保留);凡钩子 /门禁 /脚本已机械强制的只留一句原则,细节以脚本头为权威;按需查阅的事实表住在 `references/`。 ## 入口与角色 diff --git a/.claude/skills/pm-dispatch/references/dispatch-runbook.md b/.claude/skills/pm-dispatch/references/dispatch-runbook.md index 70a2629720..ac866ecf23 100644 --- a/.claude/skills/pm-dispatch/references/dispatch-runbook.md +++ b/.claude/skills/pm-dispatch/references/dispatch-runbook.md @@ -1,7 +1,7 @@ # 派发与收集运行细则(references —— 按需加载) -出处:主文件(原则与条款住那里);本表只放细则增量 —— 原话、参数、模板、步骤 —— -在对应操作那一刻查阅;⛔ 不引用 issue 编号。 +出处:主文件(原则与条款住那里);本表只放细则增量 —— 出处日期、参数、模板、步骤 +—— 在对应操作那一刻查阅;⛔ 不引用 issue 编号。 ## 车道取卡全序与 `pm:blocking`(维护者 2026-08-13) @@ -120,8 +120,8 @@ fire 附带一次: base + PR 号,⛔ 永不用 PR head:分支一删 object 即不可达,而块读着仍可重放;PR head 确是主体时 明说,并把**输入本身**(diff 或改动 hunk)记在旁边,使运行无该 object 也可重建;② 同理**锚内 容、不锚位置** —— 行号随文件生长而漂,取症状字符串或独特标识符。 -- **行文纪律**: - 出处一行(日期 + 原话);实测叙事至多压成一行 —— 故事住在卡上,不进操作文本。 +- **行文纪律**:出处一行(日期;原话仅限操作性判据); + 实测叙事至多压成一行 —— 故事住在卡上,不进操作文本。 ## 结论当轮执行(维护者 2026-08-14) diff --git a/.claude/skills/pm-dispatch/references/seat-post-protocol.md b/.claude/skills/pm-dispatch/references/seat-post-protocol.md index 8d7c245455..7648bd26cb 100644 --- a/.claude/skills/pm-dispatch/references/seat-post-protocol.md +++ b/.claude/skills/pm-dispatch/references/seat-post-protocol.md @@ -35,7 +35,7 @@ 的座位,15 张卡在飞、产出新鲜到分钟级)。可跑读法:本车道 `pm:dispatched` 卡按 `updated_at` 降序一搜,或最近一条认领/ACCEPT/审计评论的时间戳 —— 分钟级即活,贴怎么说都不算。 - **写侧刷新点 = 轮次边界**:派发时、收班时、暂停/交接前 —— 接管场景是贴存在的理由, - 边界刷足以覆盖;中途状态的承载见上「班次叙事」条(原话在主文件)。 + 边界刷足以覆盖;中途状态的承载见上「班次叙事」条(见主文件)。 协议/结构升级迁移状态、或巡检发现正文不符时,当场改正文 + 审计评论。 Routine 座位的收尾简报也落自己的座位贴(它是下一轮自退守卫的读数)。 - **收班 = 状态 flush + 在飞显式安置,