Skip to content

[Ruling] After an authorized approval, the owning seat lands a governed PR — later pushes need no second word from the maintainer (maintainer, 2026-09-13, option C) #17971

Description

@claude

Filed by the domain:skills execution seat (session session_01DAcomhvR9kKizeYgg89Vo8, GitHub os-project-manager) to carry a maintainer ruling given in live chat, 2026-09-13T08:4xZ. ⛔ The ruling is the maintainer's; the charter text follows it, not the other way round.

The question, as put to the maintainer (verbatim, the seat's options)

Trigger: PR #17914 (spec lane, governed skills/**) was approved by os-zhuang at 2026-09-13T06:21Z on 8aa2f28a, ejected from the merge queue at 06:44Z (a red queue build), then carried a merge of main and two regenerated ledgers to c7ae2c10 — governed bytes byte-identical to the approved commit — and the spec seat handed it back to the maintainer for a second click, because AGENTS.md Prime Directive #14 reads 「no AI seat merges, queues, or arms auto-merge on a PR whose diff touches one」. The maintainer asked: 「17914 这种我已经批准过了,再修改应该不需要我批准,这种能处理吗?和我讨论」.

The seat's options, verbatim:

  • A. approve 绑定字节,落地交给席位:授权 approve 存在,且 head 上受管路径的 blob 与你批准那个 commit 的 blob 逐一相同,席位就可以入队 / 挂 auto-merge(含被踢出后重排);受管字节任何改动 ⇒ 回到你手上重新 approve。
  • B. 维持现状:每次踢出/变基都多你一次点击。
  • C. approve 后不管后续改动都由席位落地:不建议,这正是今早你说 skills 要你确认的那条线。

The ruling (maintainer, verbatim)

C. approve 后不管后续改动都由席位落地:

The seat had recommended A and named C as the line drawn earlier the same morning; the maintainer chose C with that concern in front of them. C is the ruling.

What C means operationally (existing rules that still hold, ⛔ not new ones)

  1. The approval must be an authorized approver's APPROVED review (GOVERNED_APPROVERS: os-zhuang, hotlong); a DISMISSED or superseded approval never counts (the queue guard's ruled predicate since [governance] ADR maintainer approval is unsatisfiable on any PR the maintainer authored — GitHub forbids self-approval, so the gate is permanently red exactly when the human IS driving #8161 is unchanged: an authorized APPROVED on ANY commit).
  2. After that approval, the seat that owns the PR lands it: pre-landing check on the CURRENT head — its own contract-review record naming that head, check-clause2-carriers --pair N exit 0, all checks green (a base-inherited red judged by the pm-dispatch: 落地前检③「PR 全部 check 全绿」对 base 继承的红没有处置 —— 主干一红,整条车道所有已复核 PASS 的 PR 同时不可落 #17934 shape), then ready + auto-merge / queue. Ejections and rebases are re-queued by the seat, not the maintainer.
  3. The maintainer's word is spent once per governed PR — the approval. The 速读 stays; the four-piece changes shape: needs-user-decision on the PR and the review request still ask for that one approval; once it exists the seat clears the label and lands.
  4. Accepted risk, stated so the record is honest: governed bytes changed AFTER the approval land on the seat's contract-review record alone. The maintainer chose this over the byte-pinned variant (A).

Text to land (charter, governed — one hand merge; rides the charter-revision PR, chain head #17942, since SKILL.md is occupied by PR #17957 until it lands)

  • AGENTS.md Prime Directive feat: Comprehensive CRM example demonstrating all ObjectStack protocol features #14: the sentence 「no AI seat merges, queues, or arms auto-merge on a PR whose diff touches one」 becomes: the maintainer confirms a governed surface by an authorized approval; before that approval no AI seat merges, queues or arms auto-merge; after it the owning seat lands the PR, later pushes included.
  • .claude/skills/pm-dispatch/SKILL.md red line :27 「⛔ 受管面 PR 无授权批准时永不翻 ready、永不入队、永不挂 auto-merge。」 keeps its condition (it already says 无授权批准时) and gains the converse in the 入队与落地 section (:609 四件套): approval present ⇒ the seat clears needs-user-decision and lands on its own pre-landing check; references/core-rules.md mirror in the same PR; the standing-patrol Routine text of every seat (the 「⛔ never ready / enqueue / auto-merge」 line) is updated by each seat on its next re-arm.
  • Queue guards (scripts/pm/check-governed-queue-guard.mjs, objectui scripts/check-governed-queue-guard.mjs): no change — their predicate already accepts the approval on any commit.

Immediate effect

Effective on this record (维护者裁决 > text). #17914 is re-queued by the seat on its pre-landing check today; every governed PR now at the human terminal (PR #17957, objectui#9374, objectui#9377 and the wave-1/2 PRs already approved) follows the same path once its approval exists.

Ruling-ref: this card, this comment thread (maintainer's verbatim word above).


Generated by Claude Code

Activity

  1. added
    priority:p1High: required for production / M2
    pm:queueReady for the PM dispatch loop
    domain:skillsDomain lane — seat card indexed by label:pm:seat
    on Sep 13, 2026
  2. added theissue type on Sep 13, 2026
  3. claude commented on Sep 13, 2026

    @claude
    ContributorAuthor

    Ruling: direct · letter C · maintainer 「C. approve 后不管后续改动都由席位落地:」 (live chat with the skills seat, received immediately before this record, 2026-09-13T08:50Z)

    Recorded by the domain:skills seat (session session_01DAcomhvR9kKizeYgg89Vo8) in the fixed header form the director seat ruled on #17748 item 6, so batch membership cannot be misread: this is a maintainer DIRECT ruling, not a decision-batch item. The question and the seat's three options are in the card body verbatim; the seat recommended A and named C as the boundary drawn the same morning; the maintainer chose C. Effective on this record. Ruling-ref for claims: 17971 (this comment).


    Generated by Claude Code

  4. added
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    and removed
    pm:queueReady for the PM dispatch loop
    on Sep 13, 2026
  5. claude commented on Sep 13, 2026

    @claude
    ContributorAuthor

    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 (GitHub os-project-manager, skills seat), claimed at 2026-09-13T11:26Z
    Branch: claude/issue-17942-charter-revision (shared family branch, named after the chain head)
    Worktree: objectstack-issue-17942
    Domain: domain:skills
    This card's part: ruling C (5652306063 「C. approve 后不管后续改动都由席位落地:」): AGENTS.md PD #14 sentence, SKILL.md :27 converse + 入队与落地 (:634 area), core-rules.md mirror — wholly rules layer ⇒ Fixes in THIS PR.
    Clause-②: no
    Thread-read: 5652306063 (the ruling record — the newest comment at this claim)


    Generated by Claude Code

  6. claude commented on Sep 13, 2026

    @claude
    ContributorAuthor

    Charter-revision dev (session session_01DAcomhvR9kKizeYgg89Vo8, branch claude/issue-17942-charter-revision, 2026-09-13T12:1xZ): ruling C landed in #18018 (draft), commit 3f885f4 — AGENTS.md Prime Directive 14 (converse + the owning seat lands it, later pushes included; §7 (a) and Post-Task step 2 aligned), SKILL.md red line 27 / 复核 ② / 批准后 lines, core-rules 红线 mirror. Wholly rules layer ⇒ the PR body carries Fixes for this card. Unchanged by design: queue guards, objectui AGENTS.md §9, per-seat Routine text. The os-dev-report for 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

  7. claude commented on Sep 13, 2026

    @claude
    ContributorAuthor

    ACCEPT (family member) — skills seat, 2026-09-13T12:15Z. PR #18018 head 269933d9, this card's part landed as Fixes — closes on landing. 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 stays pm:dispatched + assignee until the landing record.


    Generated by Claude Code

  8. removed
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    on Sep 13, 2026
  9. claude commented on Sep 13, 2026

    @claude
    ContributorAuthor

    LANDED — skills seat (session session_01DAcomhvR9kKizeYgg89Vo8), 2026-09-13T13:41Z. The charter-revision family PR #18018 merged through the merge queue at 2026-09-13T13:39Z as 9489e2c0 (merged_by os-zhuang; ruling C: approval 5190787487 on head 269933d9 at 13:13Z, ready + auto-merge by the maintainer, the seat's readings and label clear on 5653504134). Two readings at 2026-09-13T13:40Z: the queue ref is gone and origin/main carries (#18018) 1 with control (#18015) 1. This card's part landed whole (Fixes): closed by the PR; pm:dispatched residue and the assignee stripped in this pass and read back. Family record on the chain head #17942 — contract review 5653195700, 速读 5653195856, ACCEPT 5653199243.


    Generated by Claude Code

  10. added 9 commits that reference this issue on Sep 17, 2026
    9489e2c
    8102974
    fffe3e5
    a81a9d6
    99edfd0
    af3add1
    8c657f7
    a23035c
    ceb6b5f
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    domain:skillsDomain lane — seat card indexed by label:pm:seatpriority:p1High: required for production / M2

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions