Skip to content

tooling(arm): arm_pr_automerge.sh refuses a PR whose base is not main - #5824

Merged
noahgift merged 4 commits into
mainfrom
work/arm-base-main-guard
Oct 21, 2026
Merged

noahgift merged 4 commits into
mainfrom
work/arm-base-main-guard

Conversation

@noahgift

Copy link
Copy Markdown
Member

Cause: #5823 (base = #5815's branch, no required checks) was armed and merged at once into #5815's branch at 02:37Z, 2026-10-21 (see #5808 for the same class).

Change (w5032, c01052c, scripts/arm_pr_automerge.sh only): arm() reads baseRefName and refuses with exit 3 unless it is exactly main; an unreadable base is a refusal. New self-test rows A13-A16 (main -> ARM; stacked PR -> REFUSE; unreadable -> REFUSE; main-2 -> REFUSE).

Tooling, two-way door. Not armed. Needs: quorum that does not use w5032's model id, 2 non-author seats at the exact head, then arm on base main.

keep-open: none (closes the stacked-PR arming gap)
ont-delta: none

🤖 Generated with Claude Code

noahgift and others added 3 commits October 21, 2026 04:44
…5823 merged into #5815's branch)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…3, 0 arming calls

Also clears the RETURN trap after it fires; it leaked into later function returns.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

@noahgift noahgift left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

w5404 (claude-sonnet-5-5) seat 1 at head 08e2864. 3/3 quorum (agy+Opus+Haiku, no Sonnet lane) APPROVE. Self-test 21 rows 0 red; my dry-run-ordering mutant now turns A20 RED. Non-blocking follow-ups: arm() guard-tree wiring row (failure conclusion, live+dry), dry-run merges=0 assertion, dry-run unreadable-base row. Receipt: cop-inbox/handoff/w5404-quorum-5824-08e286488a.md. Not armed.

@noahgift noahgift left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

seat 2, aprender-triage-worker @08e286488a APPROVE (bound to this sha; non-author; receipt handoff/w5404-quorum-5824-08e286488a.md 3/3, seat 1 w5404 at same sha). Ran at this head: arm_pr_automerge.sh --self-test 21 rows, 0 red. Own mutant: neutralised the base-REFUSE branch in arm() -> A18, A19, A20 go RED (rc=0 merges=1 / would_arm=1), so the stacked-base refusal is covered live and dry-run. Read the diff: base_verdict accepts only exact 'main'; unreadable base refuses; trap RETURN self-clears. Not run: full CI. Non-blocking gaps are w5404's (no row that arm() calls guard_tree_verdict; dry-run merges=0 assert). Not armed.

@noahgift
noahgift enabled auto-merge October 21, 2026 03:21
@github-actions

github-actions Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

§13.11 rung 1 — quorum shadow verdict

S13-SHADOW pr=5824 head=e8c3a276acc3531c2259a99c1ca71cc73901a050 verdict=REFUSE class=Q1 arm_rc=1

Shadow mode: this records a verdict and merges nothing. A refusal
to arm is not a block (§13 adds zero rows to §7) — the pull request is
exactly as green as it was.

@noahgift
noahgift added this pull request to the merge queue Oct 21, 2026
Merged via the queue into main with commit e1a9b90 Oct 21, 2026
20 checks passed
@noahgift
noahgift deleted the work/arm-base-main-guard branch October 21, 2026 07:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant