Skip to content
Back to skills

Release Workflow

ASecurity

Release conventions and changelog configuration for lunar-claude, covering version bumping, changelog generation via git-cliff, and release tagging.

  • 2 stars
  • 0 votes
  • 0 copies
  • 7 views
  • Added September 11, 2026
documentationgobashtestinggitsecurityperformancedocumentation

Works with

  • cli

Security analysis

A100/100

Scanned September 11, 2026

npx -y skills add jcasnellie69/homelab-config --skill release-workflow --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Release Workflow?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Release Workflow
[![Security: A β€” Skills Directory](https://www.skillsdirectory.com/api/skills/jcasnellie69-release-workflow/badge)](https://www.skillsdirectory.com/skills/jcasnellie69-release-workflow)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: release-workflow
description: >
  Release conventions and changelog configuration for lunar-claude, covering version
  bumping, changelog generation via git-cliff, and release tagging.
when_to_use: >
  Use when preparing a release, bumping the version, updating the changelog, creating
  a release tag, determining what version something should be, or understanding the
  changelog/release process.
---

# 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

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.