Bump the project version, update documentation, create a git tag, and publish a GitHub release.
- Version argument is REQUIRED (e.g.,
$bump 0.4.0)
- Should be on
main branch (warn if not, but proceed)
gh CLI must be authenticated
- Dirty working tree is allowed — uncommitted changes will be included in the release commit
Phase 1: Validate
Check version argument:
- If no version provided, STOP and ask: "Please provide a version (e.g.,
$bump 0.4.0)"
- Version must be valid semver (e.g.,
0.4.0, 1.0.0-beta.1)
Check git status:
git status --porcelain
- If there are uncommitted changes, WARN the user but proceed anyway — these changes will be staged and included in the release commit.
Check current branch:
git branch --show-current
- Warn if not on
main branch (but allow to proceed)
Get current version:
node -p "require('./package.json').version"
Phase 2: Extract Changelog from Git Commits
CRITICAL: Do NOT use placeholder text like "Version bump". Extract real changes from git commits.
Get commits since last version tag:
git log v<previous_version>..HEAD --oneline --no-merges
For each meaningful commit, examine changes:
git show --stat <commit_hash>
git diff v<previous_version>..HEAD -- <key_files>
Categorize changes into Keep a Changelog format:
- Added: New features, capabilities, or files
- Changed: Modifications to existing behavior, enhancements, updated defaults
- Fixed: Bug fixes, error corrections
- Removed: Removed features or code
- Deprecated: Features marked for future removal
- Security: Security-related changes
Write specific, detailed changelog entries:
- Describe WHAT changed and WHY (from user perspective)
- Include concrete details (e.g., "timeout increased from 120s to 300s")
- Reference specific configuration changes, default values, etc.
- ONLY use "Version bump" if literally nothing changed (empty git diff)
Phase 3: Update Files
3.1 Update package.json
Use the Edit tool to update the version field in package.json:
- Change
"version": "<old>" to "version": "<new>"
3.2 Update CHANGELOG.md
Read CHANGELOG.md and make these changes:
Find the ## [Unreleased] section
If there are entries under [Unreleased]:
If [Unreleased] is empty:
Update the version links at the bottom:
- Update
[Unreleased] link: [Unreleased]: https://github.com/GeoloeG-IsT/agents-reverse-engineer/compare/v<version>...HEAD
- Add new version link after [Unreleased]:
[<version>]: https://github.com/GeoloeG-IsT/agents-reverse-engineer/compare/v<previous>...v<version>
3.3 Check README.md (Optional)
Scan README.md for any hardcoded version references that need updating:
- Badge URLs
- Installation commands with specific versions
- Only update if explicitly version-pinned (not
@latest)
Phase 4: Commit and Tag
Stage all changes (including any pre-existing dirty files):
git add -A
Create commit:
git commit -m "$(cat <<'EOF'
chore: release v<version>
EOF
)"
Create annotated tag:
git tag -a v<version> -m "Release v<version>"
Phase 5: Push and Release
Push commit and tag:
git push && git push --tags
Create GitHub release:
Extract the changelog section for this version and use it as release notes:
gh release create v<version> --title "v<version>" --notes "$(cat <<'EOF'
<changelog section for this version>
EOF
)"
Phase 6: Report
Summarize what was done:
- Version bumped:
<old> → <new>
- Files updated: package.json, CHANGELOG.md, (README.md if changed)
- Git tag:
v<version>
- GitHub release: link to the release
Remind user: The GitHub Actions workflow will automatically publish to npm when the release is created.
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: bump3description: Bump version, update CHANGELOG.md and README.md, then tag and release on GitHub Use when this capability is needed.4---56Bump the project version, update documentation, create a git tag, and publish a GitHub release.78<execution>9## Prerequisites1011- Version argument is REQUIRED (e.g., `$bump 0.4.0`)12- Should be on `main` branch (warn if not, but proceed)13- `gh` CLI must be authenticated14- Dirty working tree is allowed — uncommitted changes will be included in the release commit1516## Phase 1: Validate17181. **Check version argument**:19 - If no version provided, STOP and ask: "Please provide a version (e.g., `$bump 0.4.0`)"20 - Version must be valid semver (e.g., `0.4.0`, `1.0.0-beta.1`)21222. **Check git status**:2324 ```bash25 git status --porcelain26 ```2728 - If there are uncommitted changes, WARN the user but **proceed anyway** — these changes will be staged and included in the release commit.29303. **Check current branch**:3132 ```bash33 git branch --show-current34 ```3536 - Warn if not on `main` branch (but allow to proceed)37384. **Get current version**:39 ```bash40 node -p "require('./package.json').version"41 ```4243## Phase 2: Extract Changelog from Git Commits4445**CRITICAL**: Do NOT use placeholder text like "Version bump". Extract real changes from git commits.46471. **Get commits since last version tag**:48 ```bash49 git log v<previous_version>..HEAD --oneline --no-merges50 ```51522. **For each meaningful commit, examine changes**:53 ```bash54 git show --stat <commit_hash>55 git diff v<previous_version>..HEAD -- <key_files>56 ```57583. **Categorize changes** into Keep a Changelog format:59 - **Added**: New features, capabilities, or files60 - **Changed**: Modifications to existing behavior, enhancements, updated defaults61 - **Fixed**: Bug fixes, error corrections62 - **Removed**: Removed features or code63 - **Deprecated**: Features marked for future removal64 - **Security**: Security-related changes65664. **Write specific, detailed changelog entries**:67 - Describe WHAT changed and WHY (from user perspective)68 - Include concrete details (e.g., "timeout increased from 120s to 300s")69 - Reference specific configuration changes, default values, etc.70 - ONLY use "Version bump" if literally nothing changed (empty git diff)7172## Phase 3: Update Files7374### 3.1 Update package.json7576Use the Edit tool to update the version field in `package.json`:7778- Change `"version": "<old>"` to `"version": "<new>"`7980### 3.2 Update CHANGELOG.md8182Read `CHANGELOG.md` and make these changes:83841. **Find the `## [Unreleased]` section**85862. **If there are entries under [Unreleased]**:87 - Insert a new version section after `## [Unreleased]`:88 ```89 ## [<version>] - <YYYY-MM-DD>90 ```91 - Move all content from [Unreleased] to the new version section92 - Leave [Unreleased] empty (just the header)93943. **If [Unreleased] is empty**:95 - Insert a new version section with the changes extracted from git commits (Phase 2)96 - Use the categorized changelog entries from Phase 297 - Example:98 ```99 ## [<version>] - <YYYY-MM-DD>100101 ### Added102 - Feature 1 with specific details103 - Feature 2 with configuration changes104105 ### Changed106 - Specific change with old → new values107 - Configuration update with details108 ```1091104. **Update the version links at the bottom**:111 - Update `[Unreleased]` link: `[Unreleased]: https://github.com/GeoloeG-IsT/agents-reverse-engineer/compare/v<version>...HEAD`112 - Add new version link after [Unreleased]: `[<version>]: https://github.com/GeoloeG-IsT/agents-reverse-engineer/compare/v<previous>...v<version>`113114### 3.3 Check README.md (Optional)115116Scan `README.md` for any hardcoded version references that need updating:117118- Badge URLs119- Installation commands with specific versions120- Only update if explicitly version-pinned (not `@latest`)121122## Phase 4: Commit and Tag1231241. **Stage all changes** (including any pre-existing dirty files):125126 ```bash127 git add -A128 ```1291302. **Create commit**:131132 ```bash133 git commit -m "$(cat <<'EOF'134 chore: release v<version>135 EOF136 )"137 ```1381393. **Create annotated tag**:140 ```bash141 git tag -a v<version> -m "Release v<version>"142 ```143144## Phase 5: Push and Release1451461. **Push commit and tag**:147148 ```bash149 git push && git push --tags150 ```1511522. **Create GitHub release**:153 Extract the changelog section for this version and use it as release notes:154 ```bash155 gh release create v<version> --title "v<version>" --notes "$(cat <<'EOF'156 <changelog section for this version>157 EOF158 )"159 ```160161## Phase 6: Report162163Summarize what was done:164165- Version bumped: `<old>` → `<new>`166- Files updated: package.json, CHANGELOG.md, (README.md if changed)167- Git tag: `v<version>`168- GitHub release: link to the release169170**Remind user**: The GitHub Actions workflow will automatically publish to npm when the release is created.171</execution>172173---174> Converted and distributed by [TomeVault](https://tomevault.io/claim/geoloeg-ist) — claim your Tome and manage your conversions.175<!-- tomevault:4.0:skill_md:2026-04-11 -->