From agent-almanac
Releases a new version of an R package: bumps version, updates NEWS.md, creates Git tag and GitHub release, and sets up post-release dev version.
How this skill is triggered — by the user, by Claude, or both
Slash command
/agent-almanac:release-package-versionThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Execute the full version release cycle for an R package.
Execute the full version release cycle for an R package.
submit-to-cran skill separately)Follow semantic versioning:
| Change Type | Version Bump | Example |
|---|---|---|
| Bug fixes only | Patch | 0.1.0 -> 0.1.1 |
| New features (backward compatible) | Minor | 0.1.0 -> 0.2.0 |
| Breaking changes | Major | 0.1.0 -> 1.0.0 |
Expected: The correct bump type (patch, minor, or major) is determined based on the nature of changes since the last release.
On failure: If unsure, review git log since the last tag and classify each change. Any breaking API change requires a major bump.
usethis::use_version("minor") # or "patch" or "major"
This updates the Version field in DESCRIPTION and adds a heading to NEWS.md.
Expected: DESCRIPTION version updated. NEWS.md has a new section header for the release version.
On failure: If usethis::use_version() is not available, manually update the Version field in DESCRIPTION and add a # packagename x.y.z heading to NEWS.md.
Fill in the release notes under the new version heading:
# packagename 0.2.0
## New Features
- Added `new_function()` for processing data (#42)
- Support for custom themes in `plot_results()` (#45)
## Bug Fixes
- Fixed crash when input contains all NAs (#38)
- Corrected off-by-one error in `window_calc()` (#41)
## Minor Improvements
- Improved error messages for invalid input types
- Updated documentation examples
Use issue/PR numbers for traceability.
Expected: NEWS.md contains a complete summary of user-facing changes organized by category, with issue/PR numbers for traceability.
On failure: If changes are hard to reconstruct, use git log --oneline v<previous>..HEAD to list all commits since the last release and categorize them.
devtools::check()
devtools::spell_check()
urlchecker::url_check()
Expected: devtools::check() returns 0 errors, 0 warnings, and 0 notes. Spell check and URL check find no issues.
On failure: Fix all errors and warnings before releasing. Add false-positive words to inst/WORDLIST for the spell checker. Replace broken URLs.
git add DESCRIPTION NEWS.md
git commit -m "Release packagename v0.2.0"
Expected: A single commit containing the version bump in DESCRIPTION and the updated NEWS.md.
On failure: If other uncommitted changes are present, stage only DESCRIPTION and NEWS.md. Release commits should contain only version-related changes.
git tag -a v0.2.0 -m "Release v0.2.0"
git push origin main --tags
Expected: Annotated tag v0.2.0 created and pushed to the remote. git tag -l shows the tag locally; git ls-remote --tags origin confirms it on the remote.
On failure: If push fails, check that you have write access. If the tag already exists, verify it points to the correct commit with git show v0.2.0.
gh release create v0.2.0 \
--title "packagename v0.2.0" \
--notes-file NEWS.md
Or use:
usethis::use_github_release()
Expected: GitHub release created with release notes visible on the repository's Releases page.
On failure: If gh release create fails, ensure the gh CLI is authenticated (gh auth status). If usethis::use_github_release() fails, create the release manually on GitHub.
After release, bump to development version:
usethis::use_dev_version()
This changes version to 0.2.0.9000 indicating development.
git add DESCRIPTION NEWS.md
git commit -m "Begin development for next version"
git push
Expected: DESCRIPTION version is now 0.2.0.9000 (development version). NEWS.md has a new heading for the development version. Changes are pushed to the remote.
On failure: If usethis::use_dev_version() is not available, manually change the version to x.y.z.9000 in DESCRIPTION and add a # packagename (development version) heading to NEWS.md.
R CMD check passesv0.2.0)git push alone doesn't push tags. Use --tags or git push origin v0.2.0.9000 version to CRANsubmit-to-cran - CRAN submission after version releasecreate-github-release - general GitHub release creationsetup-github-actions-ci - triggers pkgdown rebuild on releasebuild-pkgdown-site - documentation site reflects new versionnpx claudepluginhub pjt222/agent-almanacCreates a GitHub release with semantic versioning, changelog generation, release notes, and optional build artifacts via tags and GitHub CLI.
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 releases on GitHub, GitLab, or Gitea: detects platform, computes semver bump, generates notes from PRs/commits, previews before tagging/publishing.