From agent-almanac
Creates tagged GitHub releases with semantic versioning, categorized changelog notes, and optional build artifacts. Use for publishing stable software versions or distributing binaries.
npx claudepluginhub pjt222/agent-almanacThis skill uses the workspace's default tool permissions.
---
Creates GitHub releases with semantic versioning: analyzes commits for version bumps, generates changelogs, updates version files like package.json or pyproject.toml, creates git tags, publishes notes, and attaches artifacts.
Automates GitHub releases with gh CLI including semantic versioning, changelog generation from PRs, tagging, and asset management. Use for creating, editing, or verifying releases.
Automates releases on GitHub, GitLab, or Gitea: detects platform, computes semver bump, generates notes from PRs/commits, previews before tagging/publishing.
Share bugs, ideas, or general feedback.
Create a tagged GitHub release with release notes and optional artifacts.
Follow semantic versioning (MAJOR.MINOR.PATCH):
| Change | Example | When |
|---|---|---|
| MAJOR | 1.0.0 -> 2.0.0 | Breaking changes |
| MINOR | 1.0.0 -> 1.1.0 | New features, backward compatible |
| PATCH | 1.0.0 -> 1.0.1 | Bug fixes only |
Expected: A version number is chosen that accurately reflects the scope of changes since the last release.
On failure: If unsure whether changes are breaking, review the public API diff. Any removal or signature change of an exported function is a breaking change requiring a MAJOR bump.
DESCRIPTION (R packages)package.json (Node.js)Cargo.toml (Rust)pyproject.toml (Python)Expected: The version number is updated in the appropriate project file and committed to version control.
On failure: If the version was already updated in a previous step (e.g., via usethis::use_version() in R), verify it matches the intended release version.
Create or update changelog. Organize by category:
## What's Changed
### New Features
- Added user authentication (#42)
- Support for custom themes (#45)
### Bug Fixes
- Fixed crash on empty input (#38)
- Corrected date parsing in UTC (#41)
### Improvements
- Improved error messages
- Updated dependencies
### Breaking Changes
- `old_function()` renamed to `new_function()` (#50)
**Full Changelog**: https://github.com/user/repo/compare/v1.0.0...v1.1.0
Expected: Release notes are organized by category (features, fixes, breaking changes) with issue/PR references for traceability.
On failure: If changes are hard to categorize, review git log v1.0.0..HEAD --oneline to reconstruct the list of changes since the last release.
git tag -a v1.1.0 -m "Release v1.1.0"
git push origin v1.1.0
Expected: An annotated tag v1.1.0 exists locally and on the remote. git tag -l shows the tag.
On failure: If the tag already exists, delete it with git tag -d v1.1.0 && git push origin :refs/tags/v1.1.0 and recreate it. If push is rejected, ensure you have write access to the remote.
Using GitHub CLI (recommended):
gh release create v1.1.0 \
--title "v1.1.0" \
--notes-file CHANGELOG.md
With artifacts:
gh release create v1.1.0 \
--title "v1.1.0" \
--notes "Release notes here" \
build/app-v1.1.0.tar.gz \
build/app-v1.1.0.zip
Pre-release:
gh release create v2.0.0-beta.1 \
--title "v2.0.0 Beta 1" \
--prerelease \
--notes "Beta release for testing"
Expected: Release visible on GitHub with tag, notes, and attached artifacts (if any).
On failure: If gh is not authenticated, run gh auth login. If the tag does not exist on the remote, push it first with git push origin v1.1.0.
GitHub can auto-generate notes from merged PRs:
gh release create v1.1.0 \
--title "v1.1.0" \
--generate-notes
Configure categories in .github/release.yml:
changelog:
categories:
- title: New Features
labels:
- enhancement
- title: Bug Fixes
labels:
- bug
- title: Documentation
labels:
- documentation
- title: Other Changes
labels:
- "*"
Expected: Release notes are auto-generated from merged PR titles, categorized by label. .github/release.yml controls the categories.
On failure: If auto-generated notes are empty, ensure PRs were merged (not closed) and had labels assigned. Manually write notes as a fallback.
# List releases
gh release list
# View specific release
gh release view v1.1.0
Expected: gh release list shows the new release. gh release view displays the correct title, tag, notes, and assets.
On failure: If the release is missing, check the Actions tab for any release workflows that may have failed. Verify the tag exists with git tag -l.
git log before tagging. Tag after version-bump commit.git push doesn't push tags. Use git push --tags or git push origin v1.1.0.v1.0.0 vs 1.0.0 and stick with it.commit-changes - staging and committing workflowmanage-git-branches - branch management for release preprelease-package-version - R-specific release workflowconfigure-git-repository - Git setup prerequisitesetup-github-actions-ci - automate releases via CI