Ship — Deployment Workflow
Core Concepts / How It Works
ship is part of the gstack ecosystem — a 6-step automated checklist that takes locally completed work all the way to a PR.
Step-by-step description:
- Detect base branch + merge: Auto-detects
mainormaster, merges the latest base into the current branch - Run tests: Executes the project's test command — stops immediately on failure
- Diff review: Auto-scans for SQL safety, LLM trust boundaries, conditional side effects, etc.
- VERSION bump + CHANGELOG: Semantic versioning + user-friendly changelog entry
- Commit + push: Commits in Conventional Commits format, then pushes to remote
- Create PR: Creates a PR with
gh pr createand returns the URL
One-Line Summary
A deployment workflow skill that automates the entire sequence of tasks (test, review, version bump, changelog, commit, push, PR) needed to take local work up to a PR — all in one step.
Getting Started
bash
# Invoke as a slash command in a Claude Code session
/shipSKILL.md location: ~/.claude/skills/ship/SKILL.md
Prerequisites:
bash
# 1. Verify GitHub CLI installation and authentication
gh auth status
# 2. Confirm the project's test command
pnpm test # or npm test / yarn test
# 3. Confirm the build command
pnpm build
# 4. Confirm CHANGELOG.md exists (create if missing)
touch CHANGELOG.mdThe ship skill will stop at any step if these commands are not working. It is important to set them up in advance.
Practical Example
Scenario: Tasks 1–4 for the Student Club Notice Board MVP are complete and committed on the feature/notices-mvp branch. Time to create a PR.
bash
# In a Claude Code session
> Use the ship skill to open a PR from the feature/notices-mvp branch.The flow Claude executes internally:
bash
# 1. Detect base + merge
git fetch origin main && git merge origin/main
# 2. Run tests + build check
pnpm test && pnpm build && pnpm typecheck
# 3. Diff scan (check SQL safety, env var exposure, etc.)
git diff origin/main...HEAD | ...
# 4. Update CHANGELOG
# Add an entry to CHANGELOG.md:
# - Notice Board MVP: list/create/permission separation (#12)
# 5. Commit + push
git commit -m "feat: implement notice board MVP"
git push -u origin feature/notices-mvp
# 6. Create PR
gh pr create --title "feat: Notice Board MVP" --body "..."
# → https://github.com/.../pull/12 returnedLearning Points / Common Pitfalls
- Automates the definition of "done": Bridges the gap between when a developer feels "I'm done" and when they're actually done. One build run and one test run significantly improve submission quality.
- "Stopping" is not failure: When the skill stops mid-way due to a test failure or conflict, it's a signal saying "don't deploy this." Don't force it through.
- Applicable even without gstack: The original skill assumes gstack-specific helpers, but the core idea is a "pre-PR checklist." The same effect can be achieved by running the steps manually in order without gstack.
- Prepare Conventional Commits: Setting up Conventional Commits (feat:, fix:, chore:) as a project-wide rule in advance keeps commit message quality consistent.
Related Resources
- Finishing a Development Branch (finishing-a-development-branch) — Deciding how to merge
- Land and Deploy (land-and-deploy) — Production deployment after ship
- PR Review (review) — Diff review skill used inside ship
- Setup Deploy (setup-deploy) — Initial deployment platform setup
| Field | Value |
|---|---|
| Source URL | https://docs.anthropic.com/en/docs/claude-code/skills |
| Author/Source | Anthropic (gstack ecosystem) |
| License | Commentary MIT, original for reference |
| Translation Date | 2026-04-13 |