Agent skill

release-workflow

Release conventions and changelog configuration for lunar-claude. Use when the user asks to "prepare a release", "bump the version", "update the changelog", "create a release tag", "what version should this be", or needs to understand the changelog/release process.

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/release-workflow-basher83-lunar-claude

SKILL.md

Release Workflow

Project-specific release conventions for lunar-claude. For the interactive release workflow, use the /generate-changelog command from the git-workflow plugin.

Current Release State

  • Latest tag: !git describe --tags --abbrev=0 2>/dev/null || echo "No tags yet"
  • Marketplace version: !jq -r '.metadata.version' .claude-plugin/marketplace.json
  • Unreleased commits: !git log --oneline $(git describe --tags --abbrev=0 2>/dev/null)..HEAD 2>/dev/null | wc -l | tr -d ' '

Version Scheme

  • Semantic versioning: MAJOR.MINOR.PATCH
  • Tag format: v0.x.y (prefixed with v)
  • Marketplace and plugin manifests track versions independently

Version Bump Decision

Commit types present Bump level
BREAKING CHANGE: in footer or ! after type Major
feat: (new features) Minor
fix:, docs:, refactor:, perf:, test:, chore: only Patch

Commit โ†’ Changelog Group Mapping

git-cliff (cliff.toml) maps conventional commits to changelog groups:

Commit prefix Changelog group
feat ๐Ÿš€ Features
fix ๐Ÿ› Bug Fixes
refactor ๐Ÿšœ Refactor
doc ๐Ÿ“š Documentation
perf โšก Performance
style ๐ŸŽจ Styling
test ๐Ÿงช Testing
chore, ci โš™๏ธ Miscellaneous Tasks
body contains "security" ๐Ÿ›ก๏ธ Security
revert โ—€๏ธ Revert

Auto-Skipped Commits

These are filtered out of the changelog automatically:

  • chore(release): prepare for โ€” release prep commits
  • chore(deps*) โ€” dependency updates (Renovate/Dependabot)
  • chore(pr) / chore(pull) โ€” PR merge housekeeping

Files to Update on Release

  1. CHANGELOG.md โ€” Generated by git-cliff --tag vX.Y.Z -o CHANGELOG.md
  2. .claude-plugin/marketplace.json โ€” Update metadata.version
  3. Plugin manifests โ€” Update version in each changed plugin's plugins/<cat>/<name>/.claude-plugin/plugin.json (only if that plugin changed)

Release Commit & Tag

bash
$ git add CHANGELOG.md .claude-plugin/marketplace.json
$ git commit -m "docs: update changelog for vX.Y.Z"
$ git tag -a vX.Y.Z -m "Release vX.Y.Z"
$ git push && git push --tags

GitHub Actions (release.yml) automatically creates the GitHub release from the tag, generating release notes via git-cliff.

Gotchas

  • Push tags separately: git push does not push tags โ€” always follow with git push --tags
  • Marketplace version: Easy to forget updating .claude-plugin/marketplace.json alongside CHANGELOG.md
  • Plugin versions are independent: Only bump a plugin's version if that plugin had changes โ€” not every release bumps every plugin
  • Pre-release tags: Tags containing rc, beta, or alpha are marked as pre-release in GitHub automatically
  • Dependency commits vanish: Renovate/Dependabot commits are auto-skipped in the changelog โ€” this is intentional, not a bug

Expand your agent's capabilities with these related and highly-rated skills.

Didn't find tool you were looking for?

Be as detailed as possible for better results