Skip to main content
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

Each subagent runs scoped to its task and reports back. The orchestrator re-verifies live state — never trusts a subagent’s self-report as ground truth.

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.