Filed by the domain:spec seat (session_01LpRNHxWZgSUgVnFT9mQQo4) for the skills seat's triage — the 原则缺 class from the shift-report discipline, recorded as a card rather than prose.
What happened (one instance, mechanism visible)
PR #13030 (ruled implementation of #12715; its diff necessarily amends docs/adr/0085-*.md — the ruling's own condition ②) went through the seat's standard landing chain: contract PASS → ready → auto-merge → enqueued. The Governed Surface Queue Guard then refused the merge group (run 33200997095, exit 3): docs/adr/** is a governed surface, and a governed PR may not land through the queue without an APPROVED review by an authorized approver (os-zhuang / hotlong, 2026-08-27 ruling quoted in the guard) pinned to the current head — the guard's preferred remedy being "convert back to DRAFT and leave the merge to the maintainer; a human merge IS the review record". The seat followed that remedy; no damage (the guard is early and the group never carried the merge), one queue cycle spent.
The gap
The pm-dispatch landing section (清标即落地: PASS → ready → auto-merge → queue) carries no branch for governed surfaces. A PR whose diff touches docs/adr/** (and presumably the other governed paths: .claude/skills/**, skills/**, root AGENTS.md/CLAUDE.md, .github/CODEOWNERS — the guard's own file list is authoritative, verify with node scripts/pm/check-governed-merges.mjs --test <paths…>) structurally cannot ride the queue, and arming auto-merge on it just spends a queue cycle to learn that. Any ruled ADR-touching card (this shift alone produced one; ADR addenda are a standard ruled condition) hits this by construction.
Suggested repair shape (not prescriptive)
One sentence in the landing discipline: before flipping ready/arming, test the changed-file list against the governed set (check-governed-merges.mjs --test); a governed hit routes the PR to the human-merge lane — PASS + draft + reviewer request to the authorized approvers + a state comment — instead of the queue. The guard already prints exactly this prescription; the skill just needs to make it a pre-arm check instead of a post-refusal lesson.
Refs: PR #13030 (the instance, state comment 5456470674) · run 33200997095 (the refusal, with the guard's full prescription) · the guard's precedent shapes it cites: #9550, #10580, #9319.
Filed by the domain:spec seat (session_01LpRNHxWZgSUgVnFT9mQQo4) for the skills seat's triage — the 原则缺 class from the shift-report discipline, recorded as a card rather than prose.
What happened (one instance, mechanism visible)
PR #13030 (ruled implementation of #12715; its diff necessarily amends
docs/adr/0085-*.md— the ruling's own condition ②) went through the seat's standard landing chain: contract PASS → ready → auto-merge → enqueued. The Governed Surface Queue Guard then refused the merge group (run 33200997095, exit 3):docs/adr/**is a governed surface, and a governed PR may not land through the queue without an APPROVED review by an authorized approver (os-zhuang / hotlong, 2026-08-27 ruling quoted in the guard) pinned to the current head — the guard's preferred remedy being "convert back to DRAFT and leave the merge to the maintainer; a human merge IS the review record". The seat followed that remedy; no damage (the guard is early and the group never carried the merge), one queue cycle spent.The gap
The pm-dispatch landing section (清标即落地: PASS → ready → auto-merge → queue) carries no branch for governed surfaces. A PR whose diff touches
docs/adr/**(and presumably the other governed paths:.claude/skills/**,skills/**, rootAGENTS.md/CLAUDE.md,.github/CODEOWNERS— the guard's own file list is authoritative, verify withnode scripts/pm/check-governed-merges.mjs --test <paths…>) structurally cannot ride the queue, and arming auto-merge on it just spends a queue cycle to learn that. Any ruled ADR-touching card (this shift alone produced one; ADR addenda are a standard ruled condition) hits this by construction.Suggested repair shape (not prescriptive)
One sentence in the landing discipline: before flipping ready/arming, test the changed-file list against the governed set (
check-governed-merges.mjs --test); a governed hit routes the PR to the human-merge lane — PASS + draft + reviewer request to the authorized approvers + a state comment — instead of the queue. The guard already prints exactly this prescription; the skill just needs to make it a pre-arm check instead of a post-refusal lesson.Refs: PR #13030 (the instance, state comment 5456470674) · run 33200997095 (the refusal, with the guard's full prescription) · the guard's precedent shapes it cites: #9550, #10580, #9319.