From 4bde1f71a2bb3fec38150dd22ea91438a4c5bcd0 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 1 Oct 2026 15:17:11 +0000 Subject: [PATCH 1/2] docs(pm-dispatch): the isolated contract review is owed on three contract faces; prose faces move to the seat's ACCEPT MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The at-tier review face list in references/contract-review.md named five surfaces, three of them prose (`.changeset`/CHANGELOG, `content/docs/**`, `apps/docs/**`), so every PR with a releasing changeset owed an isolated CONTRACT_REVIEW_TIER subagent whenever its seat was off-tier. Per the maintainer's ruling A and the director's record settling forks 1/2/3, the isolated review is now owed on exactly three faces: a `Clause-②: yes` declaration, published schema (`packages/spec/src/**`, non-test), and governed rule text. The prose faces are checked sentence by sentence against the diff in the dispatching seat's ACCEPT, at the seat's own tier, and the ACCEPT names the sentences it checked; no second agent is spawned for them. The three sentences that restate the rule (landing-operations.md, execution-duties.md, lanes/ui.md) now point at the three faces. Line counts are unchanged in every file; contract-review.md pays its extra line by dropping the second spelled-out copy of the record-template command. Claude-Session: https://claude.ai/code/session_016tKoy8NJa35Yih1FdzrVmn Co-authored-by: Claude --- .../skills/pm-dispatch/references/contract-review.md | 10 +++++----- .../skills/pm-dispatch/references/execution-duties.md | 2 +- .../pm-dispatch/references/landing-operations.md | 2 +- .claude/skills/pm-dispatch/references/lanes/ui.md | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.claude/skills/pm-dispatch/references/contract-review.md b/.claude/skills/pm-dispatch/references/contract-review.md index a92931f6365..16bf5d46168 100644 --- a/.claude/skills/pm-dispatch/references/contract-review.md +++ b/.claude/skills/pm-dispatch/references/contract-review.md @@ -5,11 +5,12 @@ ## 复核归属与资格(按面) - 欠不欠按面判 ⛔ 不按车道:diff 碰下列任一面即欠达档复核,交付后当轮完成。 -- 复核面 = 出货给用户或 agent 的五处:`content/docs/**`、`apps/docs/**`、CHANGELOG/`.changeset` 散文。 -- 加已发布 schema(`packages/spec/src/**` 非测试)与 governed 规则文本(统一定义见 SKILL.md)。 +- 复核面 = 契约三面:`Clause-②: yes` 申报、已发布 schema(`packages/spec/src/**` 非测试)、governed + 规则文本(统一定义见 SKILL.md);`.changeset`/CHANGELOG、`content/docs/**`、`apps/docs/**` 散文面 + ⛔ 不在其列:派发席按本席档在 ACCEPT 逐句对照 diff 核,ACCEPT 点名所核句。 - 已发布面以包的 `exports` 映射为准:从入口类型图不可达、且 `exports` 不可寻址的 `.d.ts` 是 出货字节,⛔ 不是已发布接受集,改它不触发 `Clause-②: yes`;legacy node10 深引用在契约之外。 -- 五面皆不碰 ⇒ CI 加席位自读 ⛔ 不起第二个 agent;谁跑 = 派发席,达档者席内审。 +- 三面皆不碰 ⇒ CI 加席位自读 ⛔ 不起第二个 agent;谁跑 = 派发席,达档者席内审。 - 复核记录 = 一条评论落 PR 或卡,席内与子代理同形;散文、dev 自评、`os-dev-report` 恒不算。 - 同形 = `## Contract review` 题头、所审 head sha 独占码段、①②③ 逐项、独立性对、PASS/FAIL。 - 同形含首行 `Served-tier:`:值写常量名 `CONTRACT_REVIEW_TIER`;无此行不成裁决, @@ -23,8 +24,7 @@ - 简报从 `node scripts/pm/record-recognisers.mjs --brief-template` 起稿: 只读条款与输入集内建,⛔ 不删 ⛔ 行。 - 隔离复核子代理暂存全写按所审 PR 命名的 `/pr-/`,⛔ 不读非本轮自写的暂存。 -- 独立性对:`Implemented-by:`/`Reviewed-by:` 取值见 - `node scripts/pm/record-recognisers.mjs --template`;子代理记采纳它的席位。 +- 独立性对:`Implemented-by:`/`Reviewed-by:` 取值同见 `--template`;子代理记采纳它的席位。 - 轮次报告设复审清单专节,形状与代裁清单同为强制审计。 - 落地前检两条,过则 Tier S 入队、Tier H 等人批:① 达档条款②复核 PASS 在案(同形记录)。 - 例外:纯重生成 head 后移原记录继续管;判据机读已提交树;PR 落 `Regen-provenance:` 行。 diff --git a/.claude/skills/pm-dispatch/references/execution-duties.md b/.claude/skills/pm-dispatch/references/execution-duties.md index ed9994ac0a0..babe5704e54 100644 --- a/.claude/skills/pm-dispatch/references/execution-duties.md +++ b/.claude/skills/pm-dispatch/references/execution-duties.md @@ -103,7 +103,7 @@ - 机械放宽判别门禁落地前,入队前的席内契约复核是方向自述的补偿控制。 - 豁免够不到的地板只有维护者裁决能设。 - 席位档策略:skills 车道外的执行席与分诊席默认判断档会话。 -- 条款②自审资格按车道:spec 与 skills 席达档席内审;未达档 ⛔ 不自审,起隔离达档子代理。 +- 契约三面自审资格按车道:spec/skills 席达档席内审;未达档 ⛔ 不自审,起隔离达档子代理。 - 降档出口两条:额度耗尽豁免(达档实测不可用才落默认判断档,⛔ 不再往下)与主动预降。 - 额度墙只向下(降档或降并发)⛔ 永不向上;临时偏离记座位贴带结束条件,逐次巡检重读。 - 降档的档位与理由记入认领评论 Container & model 行;档位逐次派发显式传参,永不省略。 diff --git a/.claude/skills/pm-dispatch/references/landing-operations.md b/.claude/skills/pm-dispatch/references/landing-operations.md index 9d2e764dde2..7a7eb6fcc53 100644 --- a/.claude/skills/pm-dispatch/references/landing-operations.md +++ b/.claude/skills/pm-dispatch/references/landing-operations.md @@ -9,7 +9,7 @@ - `--tier` 嫌疑行是提示非裁定;双肢命中任一 ⇒ 无达档条款②复核 PASS 在案 ⛔ 禁止入队。 - 路径肢 = diff 触及契约面 `packages/spec/src/**` 非测试,含 error-code-ledger、`*.zod.ts` 契约 schema。 - 声明肢 = 认领评论声明 `Clause-②: yes`,与路径无关;错误的 `no` 是可审计的假申报。 -- 交付后复核按面欠 ⛔ 不按车道(五面见 `references/contract-review.md`);双肢命中即 spec 车道。 +- 交付后复核按面欠 ⛔ 不按车道(三面见 `references/contract-review.md`);双肢命中即 spec 车道。 - 子代理起不来 ⇒ 复核缺席,PR 带 `needs:contract-review` 留 draft 队列外;旁路仅维护者逐次亲审 - PASS ⇒ ready、auto-merge;FAIL ⇒ 补丁轮;⛔ 免复核不放行。 - DELIBERATE CORRECTION 红(`check-empty-changeset`):同 head 达档复核 PASS 记录即确认,⛔ 不等维护者。 diff --git a/.claude/skills/pm-dispatch/references/lanes/ui.md b/.claude/skills/pm-dispatch/references/lanes/ui.md index b64c49ee271..d7247b47905 100644 --- a/.claude/skills/pm-dispatch/references/lanes/ui.md +++ b/.claude/skills/pm-dispatch/references/lanes/ui.md @@ -35,4 +35,4 @@ - 零读数恒配点亮的正控,且正控须经被测机制本身生效;本仓 search 假零,查重只引命中。 - 脚本能滚动不证明用户能滚动:可达性断言必须驱动真实输入管道。 - 落地验证按内容,正控须在合并前证明会响,⛔ 不按 sha 判已落地。 -- 条款②复核本席适用:按面欠达档复核记录,落 PR 或卡,归属与资格见 `../contract-review.md`。 +- 契约三面复核本席适用:按面欠达档记录落 PR 或卡,散文面归 ACCEPT,见 `../contract-review.md`。 From 27e976d737af1e41d407248b4a7cbe37d3328a4e Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 1 Oct 2026 15:35:29 +0000 Subject: [PATCH 2/2] docs(pm-dispatch): name the prose check on the ACCEPT checklist; the face trigger reads diff or declaration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The prose faces are checked in the dispatching seat's ACCEPT, but the path a seat walks at ACCEPT (execution-duties 〈复核〉 into review-checklist.md) did not say so; the duty lived only in contract-review.md and lanes/ui.md. One line in review-checklist.md 〈范围与 changeset〉 now states it: the three prose faces are checked sentence by sentence against the diff, the ACCEPT names the sentences checked, and no subagent is spawned. The line is paid in the same file by compressing the two-line dev-union head check into one: the dropped words restate the dev's own obligation (run after the last commit, quote the short sha in report and body), which the dev-agent definition carries, and the both-directions rule the section states two lines above. No ⛔ line is touched. contract-review.md's trigger now reads diff or claim declaration, since the first contract face is a Clause-② declaration in the claim, not in the diff. Claude-Session: https://claude.ai/code/session_016tKoy8NJa35Yih1FdzrVmn Co-authored-by: Claude --- .claude/skills/pm-dispatch/references/contract-review.md | 2 +- .claude/skills/pm-dispatch/references/review-checklist.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.claude/skills/pm-dispatch/references/contract-review.md b/.claude/skills/pm-dispatch/references/contract-review.md index 16bf5d46168..351f28e057b 100644 --- a/.claude/skills/pm-dispatch/references/contract-review.md +++ b/.claude/skills/pm-dispatch/references/contract-review.md @@ -4,7 +4,7 @@ ## 复核归属与资格(按面) -- 欠不欠按面判 ⛔ 不按车道:diff 碰下列任一面即欠达档复核,交付后当轮完成。 +- 欠不欠按面判 ⛔ 不按车道:diff 或认领申报碰下列任一面即欠达档复核,交付后当轮完成。 - 复核面 = 契约三面:`Clause-②: yes` 申报、已发布 schema(`packages/spec/src/**` 非测试)、governed 规则文本(统一定义见 SKILL.md);`.changeset`/CHANGELOG、`content/docs/**`、`apps/docs/**` 散文面 ⛔ 不在其列:派发席按本席档在 ACCEPT 逐句对照 diff 核,ACCEPT 点名所核句。 diff --git a/.claude/skills/pm-dispatch/references/review-checklist.md b/.claude/skills/pm-dispatch/references/review-checklist.md index 3f218aa7f01..b083cd57a80 100644 --- a/.claude/skills/pm-dispatch/references/review-checklist.md +++ b/.claude/skills/pm-dispatch/references/review-checklist.md @@ -16,6 +16,7 @@ ## 范围与 changeset - 三条判据:无 `content/docs/releases/` 改动、用户可见改动有 changeset、无与卡无关的文件。 +- changeset/CHANGELOG、`content/docs/**`、`apps/docs/**`:逐句核 diff,ACCEPT 点名所核句,⛔ 不起子代理。 - Tests/docs-only 按仓库分流:本仓库走 `skip-changeset` 标签,⛔ 不走空 changeset。 - 空 changeset 在本仓库滞留发布;含读者可见生成产物时 dev 改选 changeset 亦对。 - dev 挂 `skip-changeset` 遭分类器拒 ⇒ 席位自核 tests/docs-only 即自挂,评论写依据是席位复核。 @@ -45,8 +46,7 @@ - 收敛期转红走补丁轮续派原 dev,⛔ 不作 REWORK 的理由;重量级卡可在派发令写本单等 CI。 - 每个门禁读数先钉到 PR 当前 head:比对 run `head_sha` 与 `head.sha`,不一致的双向都不入账。 - ⛔ 非当前 head 上的 `cancelled` 零动作、永不重跑:新推送自带全套 run。 -- dev 本地并集同样先钉 head:最后一次提交之后跑,`git rev-parse --short HEAD` 抄进报告与正文。 -- 与 PR 当前 `head.sha` 比一次,对不上即死树读数、双向都不入账;没抄 ⇒ 按没有读数处理。 +- dev 本地并集钉 head:所抄 `git rev-parse --short HEAD` 不符 PR `head.sha` 或没抄 ⇒ 双向都不入账。 - 复核后又推提交而 HEAD 未动 ⇒ 补跑并集(至少棘轮族)再更新报告。 ## 断言与收益