ship
Complete end-of-session workflow - verify work quality, organize commits, and track progress. Use at the end of a development session to ship cleanly.
SKILL.md.claude/skills/ship/SKILL.md
GitHubShip Skill
Complete end-of-session workflow: verify work, organize commits, and summarize what shipped.
When to Use
Invoke with /ship when you're done with a development session and want to:
- Verify code quality and security
- Create clean, organized commits from your changes
- Get a summary of what was shipped
Instructions
Phase 0: Verify Work (Mandatory)
IMPORTANT: All code changes MUST pass verification before organizing commits.
Run comprehensive verification by invoking the
/verify-workskill.Resolve all BLOCKING issues:
- Auto-fixes are applied silently by verify-work
- If blocking issues remain that need manual fixes, stop and report them
- Cannot proceed to Phase 1 until all blocking issues are resolved
Run tests if the project has a test suite:
- Check for a test script in
package.json(or equivalent for the project's runtime) - Run with the project's package manager/runtime (bun, npm, yarn, pnpm, etc.)
- If tests fail, fix the issues before proceeding
- If no test suite exists, skip this step
- Check for a test script in
Phase 1: Organize Commits
Analyze Changes
git status git diff --stat HEADGroup into Logical Commits Categorize by: feat, fix, refactor, style, docs, chore, test, perf
Present Commit Plan Show proposed groupings and ask for approval.
Execute Commits Create each commit with conventional commit messages.
Phase 2: Ship Summary
After commits are created, print a brief summary of what was shipped:
## Ship Summary
**Branch:** feature/my-feature
**Commits:** 3
1. feat: add user settings page
2. fix: correct validation on email field
3. chore: update dependencies
**Files changed:** 12 files (+340, -45)
Ready to push or create a PR.
This is informational only — no database writes, no external calls. Just a clean summary so you can see what was done at a glance.
Quick Reference
| Phase | Action | Details |
|---|---|---|
| 0 | Verify work | Run /verify-work, auto-fix, run tests |
| 1 | Organize commits | Group changes, create conventional commits |
| 2 | Ship summary | Print what was shipped |
Example Flow
User: /ship
Claude: I'll help you ship your changes. First, let me verify code quality...
[Phase 0: Runs /verify-work]
Verification Results:
- Auto-fixed: 2 console.log statements removed
- All checks passed
Running tests... 45 tests passed.
[Phase 1: Analyzes changes]
I found 8 changed files across 3 categories:
1. feat(auth): add password reset flow (4 files)
2. fix(forms): correct email validation regex (2 files)
3. chore: update lock file (2 files)
Does this grouping look right?
User: yes
Claude: Creating commits...
- feat(auth): add password reset flow
- fix(forms): correct email validation regex
- chore: update lock file
[Phase 2: Summary]
## Ship Summary
**Branch:** feature/password-reset
**Commits:** 3
1. feat(auth): add password reset flow
2. fix(forms): correct email validation regex
3. chore: update lock file
**Files changed:** 8 files (+220, -15)
Ready to push or create a PR.
Notes
- Phase 0 is mandatory — cannot skip verification
- Verification auto-fixes what it can, reports the rest without prompting
- Tests run automatically if a test suite exists
- Phase 2 is just a summary — no side effects, no tracking, no DB writes
- Commits follow conventional commit format with Co-Authored-By
- Works with any project — no project-specific assumptions