← ClaudeAtlas

automergelisted

Review-gated auto-merge for Rihla PRs. Classifies a PR's diff; Gate-exempt PRs (docs, token sweeps, one-sentence diffs) get GitHub native auto-merge enabled immediately so they merge on green `readiness`. Gate-category PRs (money math / firestore.rules / Cloud Functions auth / routing / schema-field-name) get a fresh-context Opus diff review, then an independent refuter, and auto-merge is enabled ONLY if both clear. Use when asked to "auto-merge this PR", "/automerge <N>", or under /loop to sweep open PRs.
NasserAlbusaidi/ship-gate · ★ 0 · Code & Development · score 72
Install: claude install-skill NasserAlbusaidi/ship-gate
# Auto-merge (review-gated) The fresh-context review is the thing that flips auto-merge on — nothing reaches `main` on green CI alone for the dangerous categories. This is the Gate (`run-the-gate`) applied to a **PR diff at merge time** instead of a spec before code, plus the `verified-sweep` refute guard, wired to `gh pr merge --auto`. GitHub does the actual merge: enabling auto-merge holds the PR until the required `readiness` check is green and the branch is up-to-date, then merges and deletes the branch. "Enabled" ≠ "merged now." **Auto-merge NEVER updates a BEHIND branch.** `allow_update_branch` only *permits* the update — nothing calls it (verified 2026-07-03: #859 sat BEHIND indefinitely; the old claim here that BEHIND PRs "self-update" was false). Every squash-merge re-BEHINDs whatever is queued behind it, so a merge train stalls after the first car. After enabling auto-merge, check `mergeStateStatus` and update BEHIND branches yourself (Step 3a); the `pr-babysitter` skill re-does this on every pass for the whole board. ## The one property this lives or dies on **Classification fails TOWARD review.** A false positive costs one wasted Opus review. A false negative auto-merges an unreviewed money/rules/routing/schema change on green CI — the disaster this whole system exists to prevent. When a changed path is unfamiliar or you can't confidently say it's harmless, treat it as GATE. Never drift toward "just merge it." ## Pipeline ``` /automerge <N> └─ preconditio