Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .claude/skills/pm-dispatch/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报
- governed 面(定 Tier,非车道):`docs/adr/**`+`.claude/**`+`skills/**`+`docs/NORTH-STAR.md`+`.github/workflows/**`。
- governed 面同含 `AGENTS.md`+`CLAUDE.md`;`GOVERNED_REPOS` 同治理、行可限仓,执行席恒随落地仓车道。
- 另含 `ui/docs/adr/**`+`ui/.claude/**`+`ui/skills/**`+`ui/AGENTS.md`+`ui/CLAUDE.md`+`ui/.github/workflows/**`。
- 路径面命中 Tier H ⇒ ACCEPT 换终局四件套,混合 diff ⛔ 不按比例判;要拆让 dev 单独开 PR。
- 定档 Tier H ⇒ ACCEPT 换终局四件套,混合 diff ⛔ 不按比例判;要拆让 dev 单独开 PR。
- 改动 >3000 行(含生成物)同换终局四件套含③请审,⛔ 无 Tier S 例外;读数=PR additions+deletions。
- ① 席位记录落 PR 先于 `pr_ready`/入队且钉 head:速读六行+席位意见,其下 `## 席位核对`。
- ② PR 悬着等人批,同笔挂 `pm:awaiting-merge`;人工直合即审核记录,授权批准 ⇒ 席位落地。
Expand All @@ -199,8 +199,8 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报
- 速读「需要你做的」求批点名 PASS 评论 id+`Head-sha`;无 PASS ⇒ 写 contract review owed 不求批。
- ④ 轮报单列 awaiting a human merge 并现读请审人;⛔ 未请审不在 chat 报「等你批」,先补请。
- skills 车道自有 PR:纯代码面如 `scripts/pm/` 由本席自读(清单不减)后落地。
- 受管面两层:Tier S = `.claude/**`+下行 S 面,余皆 Tier H 等人批;S 经达档 PASS 后 ready → 入队。
- 本仓 `.github/workflows/**` 由 `readWorkflowDiff` 定档:发布路径、C2 触发、拒读或未读 ⇒ H,余 S。
- 受管面两层:Tier S = `.claude/**`+下行 S 面(技能独占),余皆 Tier H;S 经达档 PASS 后 ready→入队。
- 本仓 `.github/workflows/**` 读 `readWorkflowDiff`(发布面/C2/拒读⇒H),技能 `lowRiskArmVerdict`,未读⇒H。
- 入队资格:每 check 绿或预期 skip,⛔ 非必查子集;名单 check-expected-skips.mjs 只判 objectstack。
- 非必查红是真缺陷或坏门,归 PM 入队前处置;第三种按设计而红,三条全立才可带红入队:
- 源码自述 pushed 分支上按设计而红、不跑 `merge_group`、PR 评论记明门与因,缺一即否。
Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/pm-dispatch/references/lanes/skills.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
## 常设承诺

- 四维分析先于派发与复核。
- Tier H 受管 PR 恒 draft 等维护者的字;flip 或 arm 前跑 `check-governed-merges --test` 带路径。
- Tier H 受管 PR 恒 draft 等维护者的字;flip 或 arm 前跑 `check-governed-merges --pr N` 定档。
- 档位从 `--tier` 推导引用;pm-dispatch 根恒契约复审档;条款②闸门照现行。
- 棘轮逐行付账,⛔ re-wrap 筹行;砍点逐条核幸存,被砍内容若在别处无家,砍掉就是丢规则。
- 「Instruments serve the fleet」答不出的 finding ⇒ 建议 p3 或不做,⛔ 不自入队;定级归分诊。
Expand Down
24 changes: 12 additions & 12 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -273,7 +273,7 @@ See `ui/AGENTS.md` for the app-id / localStorage / auth gotchas.
seat merges, queues, or arms auto-merge on a PR whose diff touches one.** The governed surfaces are `docs/adr/**`,
`docs/NORTH-STAR.md`, `.claude/**` (agents, hooks and settings — not only skills), `skills/**`, `AGENTS.md`,
`CLAUDE.md` and `.github/workflows/**`, and under `ui/` `ui/docs/adr/**`, `ui/.claude/**`, `ui/skills/**`,
`ui/AGENTS.md`, `ui/CLAUDE.md` and `ui/.github/workflows/**`, all Tier H. The register is `GOVERNED_SURFACES` in
`ui/AGENTS.md`, `ui/CLAUDE.md` and `ui/.github/workflows/**`. The register is `GOVERNED_SURFACES` in
`scripts/pm/check-governed-merges.mjs`, each row carrying its tier; adding a surface is an edit *there*, never here,
and `pnpm check:pm-governed-prose` reds per-PR when this paragraph names fewer surfaces than the register — or
more. A fork PR (head repo ≠ base repo) is a proposal, never a delivery, whatever its paths: no AI seat readies,
Expand All @@ -284,17 +284,17 @@ See `ui/AGENTS.md` for the app-id / localStorage / auth gotchas.
auto-merge, ⛔ never flip it out of draft to make any of those possible — judged on the PR's **file list**, not
its description; a **mixed diff is not a proportion question**, one path hit is enough; to land the rest, split off
the governed files. **The landing is tiered by the register; one Tier H path makes the whole PR Tier H.** **Tier H**
(人合: every register row except `.claude/**` and Tier S workflow edits): those four lift only for an
authorized APPROVED review by an account in `GOVERNED_APPROVERS`, on ANY commit and not dismissed; that word is
spent once per PR — the OWNING seat then lands it, later pushes included; the click stays the maintainer's.
**Tier S** (席内达档复核落地: objectstack workflow edits `readWorkflowDiff` reads as Tier S, and all of
`.claude/**`): those four lift once the PR thread or its card carries a `## Contract review` record for the PR's
current head with `Served-tier: CONTRACT_REVIEW_TIER` and a PASS verdict and every check is green — the owning
seat then lands it through the queue; the post-merge audit is the compensating control. 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. ⛔ **No agent seat submits an approving review on a
governed-surface PR, under any account** — an authorized account is agent-operated too; "CI is green" carries no
information about a governance change. An authorized account's enqueue is a review record too: ⛔ never a seat's.
(人合: every row outside Tier S): those four lift only for an authorized APPROVED review by an account in
`GOVERNED_APPROVERS`, on ANY commit and not dismissed; that word is spent once per PR — the OWNING seat then lands
it, later pushes included; the click stays the maintainer's. **Tier S** (席内达档复核落地: `.claude/**`,
objectstack workflow edits (`readWorkflowDiff`) and skills-only wording (`lowRiskArmVerdict`; the reviewer labels
unnamed security teaching) read as S): those four lift once the PR thread or its card carries a `## Contract review`
record for the PR's current head with `Served-tier: CONTRACT_REVIEW_TIER` and a PASS verdict and every check is
green — the owning seat lands it through the queue; the post-merge audit is the compensating control. 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. ⛔ **No agent seat submits an approving
review on a governed-surface PR, under any account** — an authorized account is agent-operated too; "CI is green"
says nothing about a governance change. An authorized account's enqueue is a review record too: ⛔ never a seat's.

**Already armed or queued when you read this?** Disable auto-merge AND convert it back to **draft**, which disarms
an unqueued PR; no seat act, those two included, is measured to dequeue one (`platform-readings.md`, queue
Expand Down
Loading
Loading