shipping

Push branches, open pull requests, and merge them through GitHub API gates.

1|Updated Sep 10, 2026
One-click install
npx skills add https://github.com/blauwtje/exo --skill shipping-blauwtje
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: shipping
Source: https://github.com/blauwtje/exo/tree/main/skills/shipping
Command: npx skills add https://github.com/blauwtje/exo --skill shipping-blauwtje

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) components.

What problem does it solve? Merging code from memory of a stale CI status or pushing without verification causes broken merges and false reports. This Skill carries finished commits through push, pull request creation, check waiting, gating, and merging, claiming only what the GitHub API has just confirmed. ## Core Features & Use Cases - Route-based shipping: Offers numbered routes (push, open PR, PR + merge, keep local) and runs the picked route to its end with no further questions. - Independent verification: Hands the change to a fresh delegate that exercises the behavior in detached worktrees before any merge, so green CI alone never authorizes a merge. - Merge gating and recovery: Gates on live API state, handles BEHIND and DIRTY outcomes, fixes failing checks, resolves conflicts, triages review comments, and babysits pull requests to merge-ready within a three-round limit. - Use Case: After finishing a feature branch, ask to ship it; the Skill writes a conventional PR body, verifies the change, pushes, opens the pull request, waits for checks, gates, merges, and confirms the merge from the API. ## Quick Start Ask the assistant to ship the current branch as a pull request and merge it once checks pass.

Frequently Asked Questions about shipping

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I push a branch and open a pull request with gh CLI?▼

Pick the open-pr route and the Skill pushes the branch with git push -u origin, then creates the pull request with gh pr create using a conventional title and a structured body file. Labels, milestone, and projects are copied from any linked issue.

How to merge a pull request only after checks pass?▼

Use the pr-merge route: it waits on gh pr checks --watch for up to 20 minutes, then gates on live API state including reviewDecision and statusCheckRollup before running gh pr merge. A stop at any step leaves the PR open and reports the reason.

Can it merge multiple open pull requests at once?▼

Yes, a merge request lists PRs with gh pr list, verifies each with an independent delegate, then gates, merges, and confirms them in stacking order computed from base and head branches. A stop for one PR is reported and the rest continue.

What happens when a pull request has merge conflicts?▼

A DIRTY gate verdict exits with code 4 and offers to resolve conflicts or stop. Resolution follows a minimal correctness-first edit per conflicted file, validates with the project's own checks, then reruns verification and the same route on the new head.

Why does the merge stop even when CI is green?▼

Green checks are not sufficient evidence: an independent verifier delegate must exercise the changed behavior in detached worktrees and return PASS before merging. The gate also stops on CHANGES_REQUESTED reviews, non-clean merge state, or a closed PR.

What actions does this Skill refuse to perform?▼

It never deletes branches, force-pushes, bypasses hooks with --no-verify, weakens failing tests, marks failing checks not required, or cuts releases. Babysitting stops at merge-ready and only an explicit user merge request triggers a merge.