Skip to content

[Decision] ADR-0125's own landing (#10150) shows merge-queue-batch evidence on a governed-surface PR that said "do not queue" #11831

Description

@os-steve

Escalated by the domain:devx lane PM (session e2eac1a7-8000-5c95-9749-38aec2ace6fc) out of PR #11829 (#11819). Its dev found this while establishing ADR-0125's acceptance date, did not file it and did not act on it, and flagged the conflict rather than picking a side:

PD #14 reserves the filing-and-rollback judgement on a governed-surface merge to the maintainer … Flagging the conflict rather than picking a side.

That was correct. Prime Directive #14 reserves this to you, so it comes here rather than becoming a lane card.

⛔ What is asserted, and what is not

Asserted — verified by content, by me, independently:

81d1fa11d  2026-08-20T13:05:44Z  ci(release): the human act is the environment approval … (#10150)
57e00595c  2026-08-20T13:05:55Z  fix(tooling): read a defaulted mock initializer …
parent of 57e00595c = 81d1fa11d          ← direct child

NOT asserted: that a violation occurred. Two commits landing in a parent/child pair at one merged_at second is the signature of a queue batch, but it is circumstantial. A maintainer merging two PRs by hand in quick succession, or merged_at granularity, are alternative explanations I cannot rule out from outside. You can.

Why it is worth your minute despite being four days old

The PR in question is the one that defines how the release lane is authorised. If a governed-surface PR that explicitly said "do not queue" reached main through the queue, then the mechanism ADR-0125 establishes was bypassed by the very landing that established it — and Prime Directive #14 is enforced by convention rather than by a gate.

⚠️ Note the adjacent fact from #11829: check-governed-merges exists and passes 129 assertions. So either it does not cover this case, or the landing is fine. Both answers are useful and only you can tell which.

The decision

  1. Is this a seat violation to record? If yes, the dev has offered to file it and I will dispatch it.
  2. If yes, is anything owed beyond a record? ADR-0125 is on main and load-bearing; nobody is proposing to unwind it.
  3. Should check-governed-merges learn to see this? If a governed-surface PR can reach main through the queue with 129 assertions green, that is a gate gap, not just a history question — and it would be a devx card I can take.

⛔ Nothing is blocked on this. PR #11829 corrects ADR-0125's status line either way, and it deliberately does not repeat the phrase "the maintainer's hand-merge" precisely because that actor is unverified — writing an unverified actor into the record that is the authority for the publish lane is the failure class #11819 exists to correct.

Activity

  1. os-zhuang commented on Aug 24, 2026

    @os-zhuang
    Contributor

    分诊(决策箱勤务):补标准四棱卡面块。升级路径正确 —— PD#14 把 governed 面合并的定性与回滚判断保留给维护者,dev 停手、devx 席上呈、不立车道卡,全程无人代裁 ✓。

    四维分析(决策输入,非裁决)

    实际业务需求 —— governed 面「人工合并即审核记录」(2026-08-18 整包裁定)是整个舰队治理的信任地基。本卡的三个子问题里,真正带系统性价值的是第 ③ 问:check-governed-merges 的 129 条断言全绿,与「governed PR 疑似经队列落地」并存 —— 要么无事发生,要么审计门对这一类合并结构性失明。事后审计模型的前提是审计看得见。

    项目长远合理性 —— 若 ①=确系队列批,说明 PD#14 目前靠约定而非机制成立;裁定过的事后防线(审计清单)必须能识别 merge-queue-batch 签名,否则「维护者不认识的条目 = 席位违规」这条巡查逻辑对队列合并永远不会报警。

    防 AI 写代码犯错 —— AI 有把 PR 弄进 main 的结构性动机,这正是 governed 面不许 AI 合并的原因;凡靠「座位纪律是唯一 merge 前防线」的地方,审计侧盲区就是唯一兜底的失效。补门(第 ③ 问)是防错轴上唯一有杠杆的动作。

    创业阶段不扩散需求 —— 最小动作集:维护者一分钟回忆 ①(08-20 13:27:49Z 是否亲手连续合并 #10150 与 #11799 两单);②维持仅记录、不解卷(ADR-0125 在 main 且承重,无人主张回退);③仅当 gate 实测看不见队列批时立一张 devx 卡 —— 无论 ① 答案如何,③ 都可独立便宜验证。

    四棱块

    • 业务:审计门对该签名是否失明是本卡唯一系统性问题 → 指向「③ 实测 gate 后按需立卡」
    • 长远:事后审计模型依赖审计可见性 → 同向
    • 防错:governed 面唯一防线是座位纪律,审计盲区 = 零兜底 → 同向
    • 聚焦:①一分钟回忆 + ②仅记录 + ③便宜实测,零扩面 → 同向

    推荐(四棱同向;定性与处置属 PD#14 人工地板,恒交维护者):维护者答 ①(是/否/不记得);② 维持仅记录;③ 不论 ① 结果,授权 devx 立一张「check-governed-merges 对 merge-queue-batch 签名的可见性实测」卡 —— 若实测确认盲区,补该识别即是 Bug 修复(收紧审计,非门禁削弱)。


    Generated by Claude Code

  2. os-support-ai commented on Aug 25, 2026

    @os-support-ai
    Collaborator

    Maintainer answer — #10150 was the maintainer's own hand-merge; no violation. Audit-visibility test chartered.

    Source: maintainer, 2026-08-25, live PM chat (decision-inbox batch 4 review, session session_01KWRU3s15AJz7PGW7a7wdCh), verbatim: 「10150 是我合并的,其他接受」.

    Resolving the card's three questions:

    1. Answered: yes — the maintainer merged ci(release): the human act is the environment approval, not a typed version (ADR-0125) #10150 by hand. The same-second parent/child merged_at pair was manual rapid succession, not a merge-queue batch. No seat violation occurred; nothing is filed against anyone. The circumspection in this card's framing (signature asserted, violation not asserted) was the right call — the alternative explanation it could not rule out from outside is the true one.
    2. Record only — stands as resolved by this comment; ADR-0125 is untouched and load-bearing.
    3. Chartered (「其他接受」): a card is filed (linked in the follow-up) to measure whether check-governed-merges would actually SEE a governed-surface PR that landed via a merge-queue batch. This instance turned out benign, but the structural question stands: the post-hoc-audit governance model (2026-08-18 ruling) only works to the extent the audit can see every landing route. If the gate is blind to the queue-batch signature, adding recognition is audit tightening — a Bug fix, never a gate weakening.

    Closing completed; needs-user-decision off in the same write.


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions