| name | github-release-manager |
| description | Prepare and publish GitHub releases for this repository using semantic versioning, annotated tags, and GitHub release notes. Use when the user asks to cut a release, draft release notes, bump version tags, or publish a GitHub release. |
| disable-model-invocation | true |
GitHub Release Manager
Inputs To Confirm
- Target branch (default
main)
- New tag (for example
v0.4.0)
- Previous tag (for changelog range)
- Release type (
patch, minor, or major)
- Publish now or draft only
Workflow
- Verify branch and local state:
git status
git pull origin <branch>
- Discover last tag and commit range:
git tag -l --sort=-v:refname
git log <previous_tag>..HEAD --oneline
- Propose next version using semver intent:
- patch = fixes/docs/chore only
- minor = new behavior/features
- major = breaking compatibility
- Draft release notes with:
- Highlights
- Included commits since previous tag
- Compatibility notes
- Compare link
- On explicit approval, create and push an annotated tag:
git tag -a <new_tag> -m "<tag message>"
git push origin <new_tag>
- Create GitHub release:
gh release create <new_tag> --title "<new_tag>" --notes-file <file>
- Return:
- Tag name and commit
- Release URL
- Any follow-up actions
Guardrails
- Never force-push tags.
- Never delete existing tags unless explicitly requested.
- If
gh is unavailable or unauthenticated, provide browser-based release steps.
- If the working tree has unrelated local changes, do not revert them.
- Do not publish until the user confirms.
Optional Helper Script
If scripts/release-notes.sh exists, run it to generate a release notes template:
scripts/release-notes.sh v0.4.0