One command. Commit, push, open the PR, fix CodeQL, resolve threads, fix CI, verify everything is green. Never merges. That’s a human decision.
/ship is the local escape hatch for the cloud pipeline. The cloud pipeline (ai-workflows, claude-code-routines) gets a PR opened and reviewed without you. /ship is what you run from a Claude Code session when you are the one iterating on a PR and want it driven to a ready-to-merge state in one command.
What /ship does
/ship is a thin orchestrator. It detects uncommitted changes (commits them), discovers recently-created PRs, then for each PR invokes /finalize-pr — which is where the real work happens.
What /finalize-pr does
/finalize-pr is the loop. Five phases per PR:
What it never does
- Never merges. Merge is always a human decision.
- Never approves. No auto-approval of PRs.
- Never crosses org boundaries in org-wide mode.
- Never bypasses branch protection.
Subagents in the call chain
When to use /ship vs the cloud pipeline
Where to go next
CodeQL resolution
Why CodeQL is fixed separately from CI checks, and what
/resolve-codeql does.claude-code-plugins
The plugin home for
/ship, /finalize-pr, and all the supporting skills.Source: ship/SKILL.md
The full skill definition.
Source: finalize-pr/SKILL.md
Phases, gates, and the merge prohibition.