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

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

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions