ship-it — Claude Code skill: commit, open a PR, watch CI
Takes a finished change all the way to a ready pull request: commits, pushes, opens the PR and watches CI until it passes.
npx skills add jssblck/agents --skill ship-it -a claude-codeWhat ship-it does
The skill covers the whole path from finished code to a published PR. It works on a feature branch, inspects the diff and working tree, groups related files into logical commits and leaves unrelated user changes alone. If a PR is already open, it reuses that one and marks it ready with gh pr ready — unless you asked to keep the draft.
Verification comes next. The skill reads the repo's check commands, runs the required local tests and adds a Testing section to the PR body with exact commands and results. Screenshots and recordings go up through gh --attach. Once the PR is published, it calls babysit to catch merge conflicts and watch the full check set through completion.
It will not merge without being asked, and it keeps narrow requests narrow: a CI-only repair fixes the branch without creating a PR, monitoring just reports. You need gh with access to the repository, or the push and PR steps stop there.
What it helps with
- commit a finished change and open a pull request
- split edits into logical commits without touching unrelated files
- wait out CI and fix failing checks
- collect verification evidence into the PR body
- reuse an existing open PR instead of creating a new one
Example prompts for the agent
- ship this change
- commit and open a PR on this branch
- push the changes and watch CI
How to install ship-it
1Skills CLI (Vercel)
npx skills add jssblck/agents --skill ship-it -a claude-code2Manually: put the files in place
~/.claude/skills/ship-it/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/ship-it/
1Skills CLI (Vercel)
npx skills add jssblck/agents --skill ship-it -a codex2Manually: put the files in place
.agents/skills/ship-it/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add jssblck/agents --skill ship-it -a cursor2Manually: put the files in place
.cursor/skills/ship-it/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install jssblck/agents ship-it2Manually: put the files in place
.github/skills/ship-it/SKILL.md1Skills CLI (Vercel)
npx skills add jssblck/agents --skill ship-it -a gemini-cli2Platform CLI
gemini skills install https://github.com/jssblck/agents --path skills/ship-itManually: put the files in place
.devin/skills/ship-it/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add jssblck/agents --skill ship-it -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about ship-it
How do I install ship-it in Claude?
Run npx skills add jssblck/agents --skill ship-it -a claude-code. The skill lands in ~/.claude/skills/ship-it/SKILL.md.
What does ship-it do?
It commits a finished change on a feature branch, pushes it, opens or reuses a PR, runs local checks and watches CI to completion.
How is ship-it different from babysit?
ship-it takes a new change through to a published PR, while babysit monitors a PR that already exists.