skills/basher83/lunar-claude/release-workflow

release-workflow

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

$ 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
Weekly Installs
7
GitHub Stars
14
First Seen
Feb 25, 2026
Installed on
opencode7
gemini-cli7
github-copilot7
codex7
kimi-cli7
amp7