Release
Skill steph-dove/klaussy-agents/src/klaussy/templates/skills/release
Use when the user wants to cut a release — bump the version, update the changelog from conventional commits, and tag. Detects where the version lives, derives the next version from the commits since the last tag, and stages the release locally; it does not push or publish unless explicitly asked.From its SKILL.md
npx -y skills add steph-dove/klaussy-agents --skill releaseAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 13 stars13 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
3.9 KB, 870 tokens by cl100k_base, as published. Nobody here has run it
Cut a release: pick the next version, update every place the version is declared, write the changelog from the conventional commits since the last release, and tag. Stop before pushing or publishing unless the user asked for those too.
Phase 1: Establish the baseline
- Find the current version and every file that declares it. Read CLAUDE.md for the version location, then confirm by searching — a project often repeats the version in more than one file (e.g.
pyproject.tomlandsrc/<pkg>/__init__.py, orpackage.jsonand a lockfile). List them all; a release that bumps one and misses another ships an inconsistent version. - Find the last release tag.
git describe --tags --abbrev=0(fall back to the first commit if there are no tags). This is the range boundary for the changelog. - Collect the commits since that tag.
git log <last-tag>..HEAD --oneline. If there are none, there's nothing to release — say so and stop.
Phase 2: Choose the next version
Derive the bump from the conventional-commit types in the range (semver):
- major — any commit with a
!(e.g.feat!:) or aBREAKING CHANGE:footer. - minor — at least one
feat:and no breaking change. - patch — only
fix:/perf:/refactor:/docs:/chore:etc.
State the computed version and the reason before changing anything. If the user named a specific version, use theirs; if the commits disagree with it (e.g. they said patch but there's a feat!), flag the mismatch and let them decide.
Phase 3: Apply the bump
- Update the version in every file found in Phase 1 — edit the literal, don't reformat the file.
- Update the changelog. If a
CHANGELOG.mdexists, follow its existing format exactly; otherwise create one in the Keep a Changelog style. Add a new section for this version dated with the real date (rundate +%F— do not guess it). Group entries by type (Added / Fixed / Changed / Removed) from the commit subjects; write them for a human reader, not as raw commit lines. - Do not touch anything unrelated to the release.
Phase 4: Verify, commit, tag
- Run the project's build/test/lint (from CLAUDE.md) to confirm the bumped tree is releasable.
- Commit the version + changelog changes with a
chore(release): v<version>message (or the repo's release-commit convention if it has one). - Tag
v<version>(match the repo's existing tag style — checkgit tagfor avprefix or not). - Stop here and report the version, the changelog section, and the exact push/publish commands (e.g.
git push && git push --tags,python -m build,npm publish) — but do NOT run them unless the user explicitly asked to publish. Publishing is irreversible.
{{HUMANIZE}}
Rules
- Never publish, push tags, or upload to a registry without explicit confirmation in this request.
- Keep the version consistent across every declaring file — the top failure mode is a half-bumped release.
- The changelog describes user-facing impact, not a commit-by-commit transcript. Fold trivial commits together; drop pure-noise ones.
- If the working tree is dirty with unrelated changes, stop and ask — a release commit should contain only the bump and changelog.
When NOT to use
- The user wants a single PR description — use the pr skill.
- There are uncommitted feature changes still in progress — finish and merge those first; a release tags an existing state.
- The project has no version declaration anywhere and no tags — clarify what "release" means here before inventing a scheme.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.