Repository navigation
pm-dispatch: tier the governed surface — the rules layer stays hand-merged, .claude/skills/pm-dispatch/references/** lands through the queue after in-seat contract-tier review (maintainer ruling 2026-09-13) #17950
Description
Filed by the domain:skills seat (session session_01DAcomhvR9kKizeYgg89Vo8, GitHub os-project-manager) at 2026-09-13T07:49Z, routed and graded into this lane under the maintainer's 2026-09-13 self-routing ruling (recorded on #17942). This is an EXECUTION card: the ruling is already made; nothing here is a decision request.
The ruling (live chat with this seat, 2026-09-13T07:2xZ–07:4xZ, verbatim, untranslated)
Maintainer: 「③ 受管面手合本身也是一条队列。能否简化我的审核步骤,比如我召唤项目总监时可以批量决定?」
Seat: proposed (a) a director-seat batch presentation of governed drafts and (b) tiering the governed surface, recommending (a) now plus (b).
Maintainer: 「收窄受管面,但是 skills 是不是还是应该我来确认?」
Seat, the boundary put to the maintainer, verbatim:
规则层(你确认):所有 SKILL.md 级的规则文本——发布的
skills/**(两个仓)、.claude/skills/*/SKILL.md(含 pm-dispatch 本体和内部 playbook)、core-rules.md、.claude/agents/**、hooks、settings、AGENTS.md、CLAUDE.md、ADR。
事实层(席内契约复审档复核后入队):只有.claude/skills/pm-dispatch/references/**——平台读数表、runbook、契约复核细则、车道文件、状态机细则。
Maintainer: 「我点头」
⇒ Ruled: published skills/** (both repos), every .claude/skills/*/SKILL.md, core-rules.md, .claude/agents/**, .claude/hooks/**, .claude/settings*, AGENTS.md, CLAUDE.md and docs/adr/** keep the human hand merge exactly as today. Only .claude/skills/pm-dispatch/references/** changes: a PR whose governed paths are all under that directory lands through the merge queue after the skills seat's in-seat contract-tier review (served tier verified per references/contract-review.md), with the ratchets unchanged and the post-merge audit still listing it.
Governing text
AGENTS.mdPrime Directive feat: Comprehensive CRM example demonstrating all ObjectStack protocol features #14: the governed surfaces are named there and 「The register is theGOVERNED_SURFACEStable inscripts/pm/check-governed-merges.mjs; adding a surface is an edit there, never here, andpnpm check:pm-governed-prosereds per-PR when this paragraph names fewer surfaces than the register — or more.」.claude/skills/pm-dispatch/SKILL.md〈复核〉: 「governed 面统一定义:docs/adr/**+.claude/**(全量,含 agents/hooks/settings)+skills/**」 and 「路径面一条命中 ⇒ ACCEPT 换终局四件套」.references/contract-review.md: 「受管面人工合并 ⛔ 不替代复核,两道保障叠加」 and 落地前检③ 「受管面不适用,draft-only 终局不变」.references/lanes/skills.md常设承诺: 「受管面 PR 恒 draft 等人合;flip 或 arm 前跑check-governed-merges --test带路径」.- The queue guard:
scripts/pm/check-governed-queue-guard.mjs(Governed Surface Queue Guard, the seventh required context) refuses an unpinned governed diff in the merge group;GOVERNED_APPROVERSlives there.
Work items (one PR; it touches AGENTS.md and SKILL.md, so it is itself hand-merged by the maintainer)
scripts/pm/check-governed-merges.mjs: the register distinguishes LANDING from AUDIT — the.claude/**row keeps auditing everything under.claude/, but.claude/skills/pm-dispatch/references/**is marked as landing through the queue after seat review (a per-row landing field, or a carve-out row — the dev measures which shape the existing--test/--pr/--branchreaders and the self-test support with the smallest diff).--teston a references path prints a verdict that names the tier;--teston.claude/skills/pm-dispatch/SKILL.md,.claude/skills/spec-property-retirement/SKILL.md,.claude/agents/os-dev.md,.claude/hooks/*.sh,AGENTS.md,docs/adr/*.md,skills/**stays GOVERNED. Self-test cases in both directions.scripts/pm/check-governed-queue-guard.mjs: the merge-group leg reads the same predicate (import, not a copy) so a references-only diff passes the queue without an authorized approval, and a mixed diff (references plus any rules-layer path) stays refused. Self-test both directions. objectui'sscripts/check-governed-queue-guard.mjs: measure whether objectui has any.claude/skills/pm-dispatch/references/path at all; if none, no change there — say so.AGENTS.mdPrime Directive feat: Comprehensive CRM example demonstrating all ObjectStack protocol features #14 paragraph: name the carve-out in one sentence socheck:pm-governed-prosestays green (measure it before and after; the gate's own rule is the authority on what the paragraph must name)..claude/skills/pm-dispatch/SKILL.md〈复核〉 governed-face definition line and the ACCEPT fork;references/contract-review.md落地前检③;references/lanes/skills.md常设承诺 — each states the tier in one clause: references-only PRs = in-seat contract-tier review (served tier verified) → ready → auto-merge / queue; everything else unchanged. All at ceiling (812 / 60 / lane file) ⇒ paid by density, ⛔ re-wrap is not currency, ⛔ no ceiling raise.- The round report's governed-merge audit section keeps listing references merges (with
merged_by), so the maintainer still sees every one after the fact.
Acceptance
node scripts/pm/check-governed-merges.mjs --test .claude/skills/pm-dispatch/references/platform-readings.md⇒ a verdict that says the path lands through the queue after seat review (NOT the GOVERNED / human-merge verdict); the same command on.claude/skills/pm-dispatch/SKILL.md⇒ GOVERNED (unchanged). Both quoted in the PR body.- Queue-guard self-test: a references-only fixture passes with zero approvals; a references-plus-
SKILL.mdfixture is refused; the existing fixtures unchanged. pnpm check:pm-governed-prosegreen on the branch;pnpm check:pm-skill-ratchetgreen (no ceiling moved);pnpm check:pm-governed-mergesself-test green.- The audit (
check-governed-merges.mjs --since-ref …) still lists a references-only merge — shown by running it over a window that contains one (e.g. PR docs(pm): rest-channel.md rows 1–2 name the ccr REST routes for the draft flip and auto-merge #17823 / docs(pm): platform-readings.md undraft rows name the ccr REST route beside MCP #17828 of 2026-09-12) with the row present.
Not in scope
- ⛔ Published
skills/**in either repo: stays the maintainer's, by the maintainer's own word. - ⛔ Any other surface, any change to
GOVERNED_APPROVERS, any change to the ratchets. - The director-seat batch presentation of governed drafts is its own card (filed alongside this one).
Why p1
Maintainer-directed; today two of the five drafts waiting on the maintainer in this lane alone (PR #17803, PR #17515) are references-plus-script diffs, and references rows were the majority of this lane's hand-merged PRs on 2026-09-11 / 09-12 — the single human terminal is the longest queue in the lane.
Generated by Claude Code
Activity
claude commentedon Sep 13, 2026
Claim: PM loop round 1 — member of the charter-revision family, chain head #17942 (fold gates and the two-layer split are on the chain-head claim)
Session:
session_01DAcomhvR9kKizeYgg89Vo8(GitHubos-project-manager, skills seat), claimed at 2026-09-13T11:26ZBranch:
claude/issue-17942-charter-revision(shared family branch, named after the chain head)Worktree:
objectstack-issue-17942Domain:
domain:skillsThis card's part: the governed-surface tiering text (rules layer hand-merged;
references/**lands through the queue after in-seat contract-tier review) inSKILL.md〈复核〉+ the governed-face definition,core-rules.mdmirror,AGENTS.mdPD #14,lanes/skills.mdif a line is owed — in THIS PR (Part of); itscontract-review.md落地前检③ line rides the follow-up references PR.Clause-②: no
Thread-read: none — 0 comments on this card at this claim; ruled 「我点头」 (cross-ref #17942 comment 5652079343)
Generated by Claude Code
claude commentedon Sep 13, 2026
Charter-revision dev (session
session_01DAcomhvR9kKizeYgg89Vo8, branchclaude/issue-17942-charter-revision, 2026-09-13T12:1xZ): this card's rules-layer half landed in #18018 (draft), commit 1ad7d17 — SKILL.md 〈复核〉 two-layer definition + per-layer landing (the old.claude/hooks/settings self-landing carve-out superseded by the ruling), core-rules mirror, AGENTS.md Prime Directive 14 tiering sentence, lanes/skills.md 常设承诺 (規則層 wording). Deferred: contract-review.md 落地前检③ (references PR) and the register / queue-guard script items (a script PR) — the PR body carriesPart offor this card, which stays open. Theos-dev-reportfor the whole family is on the chain head (issue 17942); the draft PR is governed (.claude/**+AGENTS.md) — four-piece, no ready / enqueue / auto-merge by the dev.Generated by Claude Code
claude commentedon Sep 13, 2026
ACCEPT (family member) — skills seat, 2026-09-13T12:15Z. PR #18018 head
269933d9, this card's part landed asPart of— rules-layer half here, references-layer half rides the follow-up references PR. Record of the whole family on the chain head #17942: contract review 5653195700 (PASS), 速读 5653195856, ACCEPT 5653199243. Four-piece applied on the PR; lands under ruling C after an authorized approval. Card stayspm:dispatched+ assignee until the landing record.Generated by Claude Code
claude commentedon Sep 13, 2026
Rules-layer half LANDED; card back in the queue for the references PR — skills seat (session
session_01DAcomhvR9kKizeYgg89Vo8), 2026-09-13T13:41Z. PR #18018 merged at 2026-09-13T13:39Z as9489e2c0(two readings at 2026-09-13T13:40Z: queue ref gone;origin/mainhas(#18018)1, control(#18015)1). This card wasPart ofthat PR; what remains is thecontract-review.md落地前检③ line; the queue-guard tier itself is #18020 (unblocked this pass) — the charter chain's ONE references PR, dispatched from this seat now that PR #17990 has landed (contract-review.mdfree).pm:dispatched→pm:queueand the assignee stripped in this pass and read back; the next claim names the references branch. Family record on the chain head #17942 — contract review 5653195700, 速读 5653195856, ACCEPT 5653199243.Generated by Claude Code
claude commentedon Sep 13, 2026
Claim: PM loop round 1 — member of the charter chain's references PR, chain head #17942 (fold gates, file surface and serial readings on the chain-head claim)
Session:
session_01DAcomhvR9kKizeYgg89Vo8(GitHubos-project-manager, skills seat), claimed at 2026-09-13T13:42ZBranch:
claude/issue-17942-charter-references(shared family branch, named after the chain head)Worktree:
objectstack-issue-17942-refsDomain:
domain:skillsThis card's part: the
contract-review.md落地前检③ line for the two-layer landing (its guard half is #18020) — completes the card ⇒Fixeson the references PR.Clause-②: no
Thread-read: the rules-layer landing note this seat posted at 13:41Z — the newest comment at this claim
Generated by Claude Code
claude commentedon Sep 13, 2026
This card's references part is delivered in the charter references PR #18038 (draft, governed 事实层), commit
c837c7c5: contract-review.md 落地前检③ carries the two-layer landing (规则层等维护者的字;受管路径全在.claude/skills/pm-dispatch/references/者达档过本三条入队). The guard half is #18020; until it lands the merge-group leg still asks for an authorized approval, which the PR body's 未含 states. File 60 → 60. Theos-dev-reportfor the whole chain is on the chain head #17942.Generated by Claude Code
claude commentedon Sep 13, 2026
ACCEPT (references PR, member) — skills seat, 2026-09-13T14:18Z. PR #18038 head
f0e533fccarries this card's remaining half asFixes— closes on landing. Record of the whole PR on the chain head #17942: contract review 5653826097 (PASS), 速读 5653826263, ACCEPT 5653826642. Four-piece applied on the PR; lands under ruling C after an authorized approval or once #18020's guard tier lands. Card stayspm:dispatched+ assignee until the landing record.Generated by Claude Code
claude commentedon Sep 13, 2026
Landed — skills seat (session
session_01DAcomhvR9kKizeYgg89Vo8), 2026-09-13T15:02Z. PR #18038 →c185d087onorigin/main; the two readings and the ruling-C trail are on the chain head #17942. This card'sFixesclosed it;pm:dispatchedand the assignee stripped in this pass and read back.Generated by Claude Code
skills(pm-dispatch): charter revision — rulings A/③/C, governed-surfa…
skills(pm-dispatch): charter references — clause-② applicability, the…
feat(pm): teach the merge-queue guard the governed surface references…
docs(pm-skills): adopt eight measured platform readings into the gove…