From 04c753611564cdf85437f8ce8741ba22f300c23f Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 28 Aug 2026 07:17:59 +0000 Subject: [PATCH] =?UTF-8?q?docs(pm-dispatch):=20clause-=E2=91=A1=20negativ?= =?UTF-8?q?e=20boundary=20+=20attach-time=20rule=20for=20needs:contract-re?= =?UTF-8?q?view?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Executes points 1, 2 and 4 of the maintainer's 2026-08-28 ruling (adopted whole, live director session): a runtime permission/security behaviour change is NOT clause-② — it is the 安全/权限边界 manual-floor category; needs:contract-review attaches only when a reviewable contract increment exists, and forward pre-marking on queue/blocked cards is retired. Both files sit at zero ratchet headroom; every added line is paid by a same-file cut or pure re-flow of sloppy wraps, proven render-identical (CSS segment-break normalization) outside the two ruled insertions and five enumerated cuts. Cut ledger in the PR body. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_016SG9S6V15MqeAgkehDcTwk --- .claude/skills/pm-dispatch/SKILL.md | 56 +++++++++---------- .../pm-dispatch/references/contract-review.md | 14 ++--- 2 files changed, 35 insertions(+), 35 deletions(-) diff --git a/.claude/skills/pm-dispatch/SKILL.md b/.claude/skills/pm-dispatch/SKILL.md index 146986d0f4..9e5c43b43a 100644 --- a/.claude/skills/pm-dispatch/SKILL.md +++ b/.claude/skills/pm-dispatch/SKILL.md @@ -598,12 +598,10 @@ dev 侧早推分支 —— 远程分支是在飞工作最硬的证据。**死认 **模型分档(model tiering;维护者 2026-08-10 三档裁定,本节覆盖一切更旧档制)。** 授权原话:「项目经理技能还需 要考虑的是派任务时使用什么模型,也应该项目经理决定,最低下限sonnet,最高可以 fable」;「比如 更新 项 目经理技能 必须要使用 Fable 5」。**派发模型是 PM 的逐卡显式决定** —— 下限 `sonnet`(机械 -卡:正确 -性由门禁农场机械判定,失败在漏跑门不在判断);默认判断档 `opus`(M/L、裁决实施、任何带设 -计判断的卡;拿不准就升一档 —— 错派低档的返工贵过省下的额度);上限 `fable`(最重协议/流 -程/编排 -卡,按卡取用非新 -默认)。**⛔ 强制条款两条**:① 凡改**协议语义面**的卡一律 `model: "claude-fable-5"` —— 面 = +卡:正确性由门禁农场机械判定,失败在漏跑门不在判断);默认判断档 `opus`(M/L、裁决实施、任 +何带设计判断的卡;拿不准就升一档 —— 错派低档的返工贵过省下的额度);上限 `fable`(最重 +协议/流程/编排卡,按卡取用非新默认)。**⛔ 强制条款两条**:① 凡改**协议语义面**的卡一律 +`model: "claude-fable-5"` —— 面 = 本 `SKILL.md` 主文件、决策框架拷贝所在文件(以 `check:skill-frame-sync` 强制处为准)与 `.claude/agents/os-dev.md`(2026-08-20 收窄,维护者原话:「接受你的建议」—— fable 当审计师用,不当 施工队用);仅 `references/**` 面、或任一 pm-dispatch 治理面上一行级机械文本改动的卡降为 **opus @@ -611,20 +609,21 @@ dev 侧早推分支 —— 远程分支是在飞工作最硬的证据。**死认 分叉 ①:复核席跑契约复审档位)—— opus 施工的治理面改动只经 fable 档复核到达维护者,⛔ 不新增标签不新增链;② 凡**改变契约接受/拒绝行为或扩大公开面**的卡(`domain:spec` 语义 面;判据即分诊代裁的机械边界测试与 spec 席内分派判据 —— `references/lanes/spec.md`,⛔ 不另 -抄第二份)一律 `claude-fable-5`(维护者 -2026-08-12 裁定,原话:「同意,就按语义面收窄,立卡并通知 spec 席」)—— 契约错毒化一切下 -游,全仓最贵(条款②闸门见「入队与落地」)。**卡面对条款②的复述仍是条款②**(座位复述 -会丢掉原文旁的例外,而被读的正是复述):额度耗尽豁免及其 `needs:contract-review` 补偿一并及 -于它;豁免够不到的地板只有维护者裁决能设。**席位档策略(同 2026-08-20 裁决)**:skills 车道外 -执行 PM 席与分诊席默认 `opus` 会话,fable 保留给裁决/复审子代理、skills 席与条款②工作 -—— 各自档位归既有条款(本行只记策略)。降档出口两条:**额度耗尽豁免**(维护者 -2026-08-13 -原话:「fable 如果用完了,可以用 opus」):仅当 fable 实测不可用(限流/墙杀中途,重派同样可降) -才落 `opus`,⛔ 不再往下;与**主动预降**(余量吃紧可预先降档),两者档位与理由皆记入认领评 -论「Container & model」行。明确不变:spec 文本面照旧 sonnet/opus;机器面与下游适配默认 opus, -门禁语义设计升 fable,拿不准升档照旧。**档位逐次派发显式传参,永不省略**(解析顺序、pin -语义与允许名单回退陷阱以 os-dev 定义 frontmatter 注释为权威),连同尺寸写进同一行;分诊 -suggestion 行是输入不是决定,不采纳给理由。 +抄第二份)一律 `claude-fable-5`(维护者 2026-08-12 裁定,原 +话:「同意,就按语义面收窄,立卡并通知 spec 席」)—— 契约错毒化一切下游,全仓最贵(条 +款②闸门见「入队与落地」)。**负边界(维护者 2026-08-28 裁定)**:运行时权限/安全**行为**变 +更不是条款② —— 归人工地板「安全/权限边界」类(控制是裁决本身,不走复审链);条 +款②只指**已发布契约面**(两独立席位曾同错读,故明写)。**卡面对条款②的复述仍是条 +款②**(座位复述会丢掉原文旁的例外,而被读的正是复述):额度耗尽豁免及其 +`needs:contract-review` 补偿一并及于它;豁免够不到的地板只有维护者裁决能设。**席位档策 +略(同 2026-08-20 裁决)**:skills 车道外执行 PM 席与分诊席默认 `opus` 会话,fable 保留给裁决/复审 +子代理、skills 席与条款②工作 —— 各自档位归既有条款(本行只记策略)。降档出口两 +条:**额度耗尽豁免**(维护者 2026-08-13 原话:「fable 如果用完了,可以用 opus」):仅当 fable 实测 +不可用(限流/墙杀中途,重派同样可降) 才落 `opus`,⛔ 不再往下;与**主动预降**(余量吃紧可预 +先降档),两者档位与理由皆记入认领评论「Container & model」行。明确不变:spec 文本面照旧 +sonnet/opus;机器面与下游适配默认 opus, 门禁语义设计升 fable,拿不准升档照旧。**档位逐次派 +发显式传参,永不省略**(解析顺序、pin 语义与允许名单回退陷阱以 os-dev 定义 frontmatter 注释 +为权威),连同尺寸写进同一行;分诊 suggestion 行是输入不是决定,不采纳给理由。 **派发词原则(构造细则与条款原文见 `references/dispatch-runbook.md`)。** ⛔ 默认不整段粘 贴 issue 正文 —— 让 dev 自己读 GitHub 全文与全部评论,并**必须**要求 dev 自查正文完整性(截 @@ -783,15 +782,16 @@ main 红了约一小时,逐 PR 连环红到 fix-forward 才止)。本段只适 面(`packages/spec/src/**`,含 error-code-ledger 与 `*.zod.ts` 契约 schema);声明肢 = 认领评论声明 `Clause-②: yes`,与路径无关(错误的 `no` 是记录在案、可审计的假申报,不再是静默缺口)。⛔ 永不把路径触发读作条款②的完整覆盖 —— 它只盖路径肢;不触契约文件而改变接受/拒绝 - 行为或扩大公开面的**内容 - 肢**由声明行承载。档位以 dispatch-gates 常量 `CONTRACT_REVIEW_TIER` 为准(档位单源,⛔ 本文与标 - 签不写模型名,模型升级只改一行一个文件)。派发席职责止于:卡上记一行认定、挂 - `needs:contract-review`(标签命名审的对象,恒英文)、停手;⛔ 禁止自查放行。复审链细则(载 - 体纪律、资格与归属、降档保险丝)见 `references/contract-review.md`。 + 行为或扩大公开面的**内容肢**由声明行承载。档位以 dispatch-gates 常量 `CONTRACT_REVIEW_TIER` + 为准(档位单源,⛔ 本文与标签不写模型名,模型升级只改一行一个文件)。派发席职责止 + 于:卡上记一行认定、挂 `needs:contract-review`(标签命名审的对象,恒英文)、停手;⛔ 禁止自查 + 放行。挂标仅当**可复审契约增量已存在**(draft PR,或先到的报告);队列/受阻卡的前瞻预挂 + 已废止(维护者 2026-08-28 裁定)—— 前瞻条款②事实住卡上裁决/分诊评论、认领 `Clause-②` + 申报与 `--tier` 输出;开着的载体恒为一单真实待审。复审链细则(载体纪律、资格与归属、 + 降档保险丝)见 `references/contract-review.md`。 - **碰生成物的 PR,入队前先同步 + 整体重生成**(os-regen 驱动零冲突标记地**静默丢掉一侧改 - 动**): - 四步序已机械化 `bash scripts/pm/os-regen-merge.sh`;陷阱、断言措辞与锚点禁令见 landing-operations - A。 + 动**): 四步序已机械化 `bash scripts/pm/os-regen-merge.sh`;陷阱、断言措辞与锚点禁令见 + landing-operations A。 - **跟到 MERGED 为止;入队后的看护同归车道 PM 的落地窗口**:验收、首次入队 flip 定点、MERGED 两读 数、关键 PR 订阅与退订/归档、落地后再核落地判据 —— 操作细则全在 landing-operations diff --git a/.claude/skills/pm-dispatch/references/contract-review.md b/.claude/skills/pm-dispatch/references/contract-review.md index 926baebd0f..5a19936b0f 100644 --- a/.claude/skills/pm-dispatch/references/contract-review.md +++ b/.claude/skills/pm-dispatch/references/contract-review.md @@ -7,9 +7,10 @@ - **PR 与卡双载体同笔挂**(维护者 2026-08-22:「简化一点是否可以直接挂 PR 侧」「两边都挂好 」; PR 一存在即挂,报告先于 PR 到达则先挂卡侧、ACCEPT 时补齐 PR 侧),同笔在该 PR 上向复审 席账号 request review(同裁决:「也可以直接要求复审」—— 仅通知,载体仍是标签)、停手。 +- ⛔ **不预挂**(维护者 2026-08-28 裁定):可复审增量存在前永不挂标,队列/受阻卡的提前挂已废 + 止 —— 前瞻条款②事实走主文件闸门段的三条既有通道;开载体恒 = 真实待审。 - **载体不迁移**(维护者 2026-08-18,原话:「中期把闸门迁到 PR review 的 Request Changes 上 我觉得 - 没必要」): 闸门载体保持本标签,⛔ 不迁 PR review / Request Changes、不为迁移留门;挂与清皆按 - 标签纪律的 read-modify-write 硬步骤写。 + 没必要」): 闸门载体保持本标签,⛔ 不迁 PR review / Request Changes、不为迁移留门。 - **重挂前先查裁决**:闸门标签缺失 ⇒ 先 grep 卡评论找复审结论 —— PASS + 无标 + head 未 动 = 已清标非被剥;head 后移或无结论才重挂(`get_reviews` 读空 ≠ 未复审)。 @@ -40,9 +41,8 @@ - **保险丝只测座位自会话**:`mode:subagent` 里的 `get_session` 量的是**派发会话**(实测:钉在地板 档的子代理读回父档,⛔ 不作互证),传参只是配置 ⛔ 不作达档读数;条款②的 `mode:subagent` 派发照旧恒保留 `needs:contract-review`,免审跳过仅座位自会话成立。 -- **转录档位核验**(维护者 2026-08-27 裁)——「派更高档位子代理复审」曾构造上不可测 - 量,今仅核验通过才合法:采信/清标前 grep 子代理 transcript 中 harness 逐消息盖章的 `model` 字 - 段,产出裁决的每轮都须读到契约复审档位,见回退证据 ⇒ 裁决整体作废(重做或维护者路 - 径);父会话对裁决仅两个合法动作 —— **逐字采纳或整体作废**(理由仅机械三种:核验失 - 败/越范围/格式不完整),⛔ 永不改写/删节/润色,采信 = 证据清单核对,非实质重判。 +- **转录档位核验**(维护者 2026-08-27 裁)——「派更高档位子代理复审」仅核验通过才合法:采 + 信/清标前 grep 子代理 transcript 中 harness 逐消息盖章的 `model` 字段,产出裁决的每轮都须读 + 到契约复审档位,见回退证据 ⇒ 裁决整体作废;父会话仅两个合法动作 —— **逐字采纳或 + 整体作废**(理由仅机械三种:核验失败/越范围/格式不完整),⛔ 永不改写/删节/润色。 - 契约复审 ⛔ 不适用额度耗尽豁免降档(豁免对象是派发;复审正为补偿低档派发而存在)。