diff --git a/.claude/skills/checklist-test/SKILL.md b/.claude/skills/checklist-test/SKILL.md index 9f4b73d391..4bb49120f0 100644 --- a/.claude/skills/checklist-test/SKILL.md +++ b/.claude/skills/checklist-test/SKILL.md @@ -120,7 +120,7 @@ expected-fail 探针 —— 永不在真实缺陷上把条款打成绿。 **issue 是纯文本 —— 永不放图。** 截图只为让你和子代理**现场**得出判定;它们是判断辅 助,随运行环境一起丢弃。持久报告需要的是**复现规则,不是图片**。 -用 `issue_write`(github MCP)立单: +经 REST 代理 `POST .../issues` 立单(`Content-Type: application/json`;⛔ 永不 MCP `issue_write`,锁 1 已拒): - **标题** —— `QA run · (<已判定>/<总数>) · · · `:恰好 一种形状、严格解析,`(<已判定>/<总数>)` **强制**;语法与退役写法见 diff --git a/.claude/skills/pm-dispatch/SKILL.md b/.claude/skills/pm-dispatch/SKILL.md index 8e7c5dd520..5968255426 100644 --- a/.claude/skills/pm-dispatch/SKILL.md +++ b/.claude/skills/pm-dispatch/SKILL.md @@ -375,7 +375,7 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报 - 三类内再过时前提检查,三选一:晋级 / 关闭 not planned / hold;判级只在此轮,不在立单时。 - ⛔ 写入前对每张卡现读当前状态;任何列表快照读数一律作废。 - ⛔ 带 `pm:dispatched` / assignee / 任何 open 或 merged PR 引用的卡,一律不动。 -- ⛔ `issue_write` 会替换标签集并清空未传字段:写入时必须回传 `assignees`。 +- 标签/assignee 写恒经 `scripts/pm/label-write.mjs`(四步、回读);⛔ 永不 MCP `issue_write`(锁 1 已拒)。 - 车道席可附证据/前提重验,⛔ 不定级不改标;skills 车道 finding 由该席自分诊,全仓轮跳过。 - 域分批与 sweep 打包晋级五条照用;每批约定与积压告警见 `references/dispatch-runbook.md`。 - `pm:retriage` 每 fire 先答异议评论所求,答后同笔摘标;须维护者答的进收件箱,标照摘。 @@ -612,7 +612,7 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报 - 速读五段固定:改了什么/为什么改/风险与代价(含回滚)/席位意见/你要做的(一个动作)。 - 草稿归 dev:受管面 PR 正文带 `## 维护者速读(草稿)`,中文、业务角度,席位意见留空。 - 终稿 = 席位对照自己读的 diff 校正草稿、填席位意见后贴评论;维护者只读评论。 -- PR 上的标签 = 待维护者审阅,不入六态;与请审同为等人合清单,随合并或撤回判决离开。 +- PR 上的标签 = 待维护者审阅,不入六态;与请审同为等人批清单,随获批或撤回判决离开。 - 批准判定单源 = 队列守卫常量 `GOVERNED_APPROVERS`:授权账户 APPROVED 即算,⛔ 不卡 `commit_id`。 - 批准后再推亦不过期;席位落地 = 过落地前检、清标、ready、auto-merge,踢出/变基同法。 - ③ 在 draft PR 上向两个授权批准账户 `os-zhuang` 与 `hotlong` 都 request review,主动推。 @@ -623,7 +623,7 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报 - 已入队才读到本条 ⇒ 转 draft 与 disable 都做;出队以阳性探针答,ref 缺席只旁证。 - skills 车道自有 PR:纯代码面如 `scripts/pm/` 由本席按达档自审(清单不减)后落地。 - 受管面两层:事实层仅本技能 `references/`,其余为规则层(含发布 `skills/**` 与 SKILL.md)。 -- 规则层四件套等人合;事实层 PR(受管路径全在该目录)经席内达档复核后 ready → 入队。 +- 规则层四件套等人批;事实层 PR(受管路径全在该目录)经席内达档复核后 ready → 入队。 - 路径面干净的才转 ready → 入队;队列是唯一被认可的落地路径,⛔ 永不队列外合并。 - 入队资格 = PR 上每一个 check 全绿,⛔ 不是 required 子集;required 集是队列强制的地板。 - 非必查红是真缺陷或坏门,归 PM 入队前处置;第三种按设计而红,三条全立才可带红入队: diff --git a/AGENTS.md b/AGENTS.md index f04446be10..474410dd00 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -270,8 +270,8 @@ localStorage / auth gotchas. spent once per PR: the OWNING seat then lands it, later pushes included, re-queuing after an ejection or a rebase on its own pre-landing check; this gate does not re-review it. Hand-authored governed content needs that approval; a PR whose only governed paths are register rows the queue leg regenerates byte-exact clears with zero approvals — an - uncertified recompute, drift or a hand-authored sibling keeps it governed. Unapproved, the bypass direct merge - (人工直合) is the only landing. **Landing is tiered**: a PR whose governed paths all lie under + uncertified recompute, drift or a hand-authored sibling keeps it governed. Unapproved, no seat lands it: the + ending is that approval, then the owning seat. **Landing is tiered**: a PR whose governed paths all lie under `.claude/skills/pm-dispatch/references/` lands through the queue after the skills seat's contract-tier review; every other governed path is the rules layer and waits for the maintainer's word, which the director seat requests as ONE batch of at most five rows — the approval stays the maintainer's click. ⛔ **No agent seat submits an approving @@ -281,7 +281,7 @@ localStorage / auth gotchas. **Already armed or queued when you read this?** Convert it back to **draft** AND disable auto-merge — draft is what removes queue membership, disabling alone drops only the arming — then confirm from the remote that it is in neither the queue nor `origin/main`. **Draft is no barrier by itself — the barrier is this directive**, and a - human merge IS the review record, ⛔ not a relaxation. Behind it: the queue guard refuses an unpinned governed + spent approval IS the review record, ⛔ not a relaxation. Behind it: the queue guard refuses an unpinned governed diff; CODEOWNERS routes review requests for `docs/adr/` only, so nothing summons the maintainer on the other four; the post-merge audit (`scripts/pm/check-governed-merges.mjs`) lists every governed-surface merge with its approver and merger — a merger the maintainer does not recognise, or any agent approval, is a seat violation, filed and