← ClaudeAtlas

releaselisted

Create a software release by reviewing commits, determining the semantic version, updating the changelog and package versions, committing release metadata, and tagging the result. Use this skill whenever the user asks to cut, prepare, publish, or tag a release.
mohammadhprp/teammate · ★ 1 · Code & Development · score 72
Install: claude install-skill mohammadhprp/teammate
# `release` skill instructions Create a release from the current branch state. ## Process 1. **Review recent commits** - Run `git fetch --tags`, `git describe --tags --abbrev=0` to find the latest tag. Run `git log <latest-tag>..HEAD --oneline --format="%s"` to collect all conventional commits since the last release. Read any existing `CHANGELOG.md`. 2. **Categorize commits** - Group commits by conventional commit type: - `feat!:` or `BREAKING CHANGE:` → breaking change - `feat:` → minor feature - `fix:` → patch fix - `perf:`, `refactor:`, `test:` → patch (if no features) - `chore:`, `docs:`, `ci:` → filtered from changelog 3. **Determine next version** - Based on the [`commit` skill](../commit/SKILL.md) semver convention: - Breaking changes → increment major version (e.g., `1.2.3` → `2.0.0`) - New features → increment minor version (e.g., `1.2.3` → `1.3.0`) - Only fixes/refactors → increment patch version (e.g., `1.2.3` → `1.2.4`) - If no previous tag exists, propose `0.1.0` 4. **Present release plan** - Show the current version, new version, categorized changelog entries, and ask: "Shall I create this release (tag vX.Y.Z and update CHANGELOG.md)?" 5. **Execute on confirmation**: - Update `CHANGELOG.md`: create a new `## [vX.Y.Z]` section under `## Unreleased`, move categorized entries (excluding chore/docs/ci) into it, add the release date, and keep the `## Unreleased` section empty for future work. - Update project version metadata such