← ClaudeAtlas

ship-check-merge-readinesslisted

Check that a PR (and its stack + every open PR it needs/influences) will merge onto CURRENT master and work together as one assembled end state — rebase onto up-to-date master, close every in-scope gap so it lands harmoniously, and for anything owned by ANOTHER PR/person, keep it in that owner's scope (a ticket + a comment + an explicit BLOCKING line in this PR's Deploy TLDR) rather than doing it unilaterally. Use for "is this ready to merge", "make these land together with master", "check merge readiness", "assemble the open PRs", "is it ready to ship to prod as-is", or before flipping a stacked PR to ready.
skowalskidev/dotclaude · ★ 2 · Code & Development · score 75
Install: claude install-skill skowalskidev/dotclaude
# Check merge readiness — assemble onto current master, own only your scope The failure this prevents: a PR that is green in isolation but does not compose. It branched off an old master, a sibling PR merged the engine it depends on, and once both land they disagree — or it silently needs a change in someone else's PR that nobody tracked. "My tests pass" is not "the assembled system works." The end state you are checking for: **every open PR involved, once merged onto today's master, works together — nothing missing, nothing double-owned, and every cross-owner gap is tracked and flagged as blocking.** ## Step 1 — Establish the real current state (never trust the branch in isolation) - `git fetch origin` and resolve **current** master (`git rev-parse origin/master`). The PR's own merge-base is usually stale; that staleness is the whole problem. - List the PR, its stack (base chain), and **every open PR it needs, depends on, or influences** — the ones that touch the same subsystem, the same hot files, or a contract it consumes. `gh pr list`, plus read the PR's own "Coordination"/"depends on" notes and the ticket. - For each, record: merged-or-open, what it changed, and whether it is on master yet. ## Step 2 — Draft the PR, then rebase onto up-to-date master, resolve for correctness - **Draft it before you touch it.** The moment you start reshaping a PR — rebasing, editing the body, re-implementing onto master — convert it (and every PR in the stack you will touch)