con un clic
ship
Create a release PR to main with version bump and draft a GitHub release
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
Create a release PR to main with version bump and draft a GitHub release
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Create a GitHub issue with project board integration
Explain recent code changes in simple terms a junior dev can understand
Open or create a pull request from the current branch with a clean, deduplicated summary
Start working on a GitHub issue — fetch context, create branch, plan solution, and optionally open a PR
Basado en la clasificación ocupacional SOC
| name | ship |
| description | Create a release PR to main with version bump and draft a GitHub release |
| argument-hint | [optional version number or extra notes] |
Create a pull request from the current working branch to main, ensure the version is bumped, and draft a GitHub release. The user will review, merge, and publish manually.
/ship — auto-detect versioning scheme and walk through the process/ship 2.5.0 — use a specific version/ship patch — shorthand for semver bump typeRun these commands in parallel to understand the current state:
git status
git branch --show-current
git log main..HEAD --oneline
gh auth status
Verify:
main. If it is, warn the user and stop.main. If not, inform the user there is nothing to ship.gh CLI is authenticated. If not, inform the user and stop.git log main..HEAD --pretty=format:"%h %s (by @%an)" --no-merges
Also gather PR numbers if commits came from merged PRs:
git log main..HEAD --pretty=format:"%h %s" --no-merges
For each commit, check if it is associated with a PR:
gh api repos/{owner}/{repo}/commits/{sha}/pulls --jq '.[0].number' 2>/dev/null
Build a list of all changes with their authors and references (commit hash or PR number).
Read the current version from package.json:
node -p "require('./package.json').version"
Detect the versioning scheme:
| Scheme | Pattern | Examples |
|---|---|---|
| Semver | MAJOR.MINOR.PATCH | 2.5.0, 1.0.3, 0.9.1 |
| Calendar versioning | Contains year/month/date-like segments | 2026.3.18, 25.03.1 |
If $ARGUMENTS provides a version or bump type, use it:
2.5.0) — use as-ismajor, minor, patch) — calculate the next version from currentIf $ARGUMENTS does not specify a version, check if the version was already bumped compared to main:
git show main:package.json | node -p "JSON.parse(require('fs').readFileSync('/dev/stdin','utf8')).version"
main, a bump is required — ask the user (see below).main:
For semver (when bump is needed), present the options:
Current version:
2.4.1What version bump do you need?
- patch ->
2.4.2(bug fixes, small changes)- minor ->
2.5.0(new features, backward compatible)- major ->
3.0.0(breaking changes)
For calendar versioning (always ask, even if already different from main):
Current version:
2025.12.3Today's date version:2026.3.18(Recommended) Use today's date as the version, keep current (2025.12.3), or enter a custom one?
If the user picks today's date, update the version. If they choose to keep the current version, skip the bump. If they enter a custom version, use that.
If a version bump is needed (version same as main, or calver and user chose a new version):
Update package.json with the new version. Use a precise edit — only change the "version" field.
Then re-install dependencies to update the lock file:
ni
Commit the version bump:
git add package.json
git add package-lock.json pnpm-lock.yaml yarn.lock bun.lockb 2>/dev/null git commit -m "Bump version to "
Push the branch:
git push -u origin $(git branch --show-current)
Build the PR title using the version and a summary of changes:
Title format: v<version> - <short summary of changes>
The short summary should capture the main themes from the changes (features, fixes, optimizations). Keep it under 72 characters total. Examples:
v2.5.0 - Add dark mode, fix cart calculation, optimize image loadingv2026.3.18 - Redesign settings page, update dependenciesBuild the PR body by grouping changes into categories:
## What's in this release
### New features
- Add dark mode toggle (#45)
- Add user onboarding flow (#52)
### Bug fixes
- Fix cart total when discount applied (#48)
- Fix null pointer in auth middleware (a1b2c3d)
### Improvements
- Optimize image loading for product pages (#50)
- Refactor payment utils for reusability (#51)
### Other
- Update dependencies (d4e5f6g)
Grouping rules:
#<PR-number> or <short-commit-hash> depending on what is availableCreate the PR:
gh pr create
--base main
--head "$(git branch --show-current)"
--title "v - "
--body "$(cat <<'EOF'
EOF
)"
Create a draft release targeting main with tag v<version>.
Build the release body. List all changes, each in this format:
by @ in #
or if no PR exists for that change:
by @ at
Rules for the release body:
gh api)gh release create "v"
--target main
--title "v"
--draft
--notes "$(cat <<'EOF'
Full Changelog: https://github.com///compare/v...v EOF )"
Always append a "Full Changelog" link at the bottom comparing the previous version tag to the new version.
Output a final summary:
Ship complete!
Version: v PR: Release: (draft)
Next steps:
gh CLI is not installed or not authenticated, inform the user and stopmain, warn the user and stopmain, inform the user there is nothing to shippackage.json does not exist, skip version bump logic and ask the user for a version string to use in the PR title and release tagni fails, show the error and ask the user if they want to continue without updating the lock filemain unless the user specifies otherwise via argumentsni (not npm install or pnpm install) to re-install — it auto-detects the package manager$ARGUMENTS