
Release Management
FreeStreamline your project's release process with ease.
Free · Opens the source repo
What Release Management does
The Release Management skill is designed to simplify the process of cutting releases for your project. By using this skill, you can validate your changelog, install necessary git hooks, and efficiently manage versioning. It is particularly useful for developers who want to maintain a clean and organized release process without the hassle of manual checks and balances. With a straightforward command structure, you can initiate a release by simply typing /release <version> or /release patch to bump the patch version automatically.
Upon triggering a release, the skill first gathers context by executing a script that installs git hooks and provides essential information about the current state of the repository. This includes details such as version info, working directory status, and any commits made since the last release. If there are outstanding changes that need to be included in the release, the skill will commit those changes before proceeding. This ensures that your release is always up to date and includes all relevant modifications.
The skill also automates the process of writing the changelog. If the [Unreleased] section is empty, it will generate entries based on the commits and changes detected in the context output. This is in line with the Keep a Changelog standard, which helps maintain consistency and clarity in your project's documentation. After cutting the release, the skill provides a final changelog for review and requires user confirmation before pushing to the main branch, ensuring that all steps are validated and nothing is overlooked.
Overall, this skill is ideal for developers looking to streamline their release management process. It helps ensure that all necessary steps are followed and that the project remains organized, making it easier to manage updates and communicate changes effectively to users.
When to use it
Use this skill when you need to cut a release, validate changes, and ensure that your project's versioning is accurate and well-documented.
When not to use it
This skill may not be suitable for projects that require highly customized release processes or those that do not follow a standard changelog format.
What you can build with it
Automating Release Cuts
Use the skill to automate the release process, ensuring all steps are followed consistently.
Changelog Management
Easily manage your changelog entries and ensure they adhere to the Keep a Changelog standard.
Version Control Compliance
Maintain compliance with version control practices by automatically committing outstanding changes before a release.
How to install Release Management
View source1. Install with the skills CLI
npx skills add tobi/qmd/release --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by tobiRelease
Cut a release, validate the changelog, and ensure git hooks are installed.
Usage
/release 1.0.5 or /release patch (bumps patch from current version).
Process
When the user triggers /release <version>:
-
Gather context — run
skills/release/scripts/release-context.sh <version>. This silently installs git hooks and prints everything needed: version info, working directory status, commits since last release, files changed, current[Unreleased]content, and the previous release entry for style reference. -
Commit outstanding work — if the context shows staged, modified, or untracked files that belong in this release, commit them first. Use the /commit skill or make well-formed commits directly.
-
Write the changelog — if
[Unreleased]is empty, write it now using the commits and file changes from the context output. Follow the changelog standard below. Re-run the context script after committing if needed. -
Cut the release — run
scripts/release.sh <version>. This renames[Unreleased]→[X.Y.Z] - date, inserts a fresh[Unreleased], bumpspackage.json, commits, and tags. -
Show the final changelog — print the full
[Unreleased]+ minor series rollup viascripts/extract-changelog.sh <version>. Ask the user to confirm before pushing. -
Push — after explicit confirmation, run
git push origin main --tags. -
Watch CI — after the push, start a background dispatch to watch the publish workflow. Use
interactive_shellin dispatch mode with:gh run watch $(gh run list --workflow=publish.yml --limit=1 --json databaseId --jq '.[0].databaseId') --exit-statusThe agent will be notified when CI completes and should report the result.
-
Check dependency updates — before cutting the release, check for updates to
sqlite-vec(and platform packages),node-llama-cpp, andbetter-sqlite3. Runpnpm outdatedand report any available updates for these packages. If updates exist, bump them (pinned, no^ranges) and re-run tests before proceeding.
If any step fails, stop and explain. Never force-push or skip validation.
Dependency Policy
All dependencies must be pinned to exact versions (no ^ or ~ ranges).
The lockfile ensures reproducible installs. When adding or updating any
dependency, always use the exact version string (e.g. "3.18.1" not
"^3.18.1").
Changelog Standard
The changelog lives in CHANGELOG.md and follows Keep a Changelog conventions.
Heading format
## [Unreleased]— accumulates entries between releases## [X.Y.Z] - YYYY-MM-DD— released versions
Structure of a release entry
Each version entry has two parts:
1. Highlights (optional, 1-4 sentences of prose)
Immediately after the version heading, before any ### section. The elevator
pitch — what would you tell someone in 30 seconds? Only for significant
releases; skip for small patches.
## [1.1.0] - 2026-03-01
QMD now runs on both Node.js and Bun, with up to 2.7x faster reranking
through parallel contexts. GPU auto-detection replaces the unreliable
`gpu: "auto"` with explicit CUDA/Metal/Vulkan probing.
2. Detailed changelog (### Changes and ### Fixes)
### Changes
- Runtime: support Node.js (>=22) alongside Bun. The `qmd` wrapper
auto-detects a suitable install via PATH. #149 (thanks @igrigorik)
- Performance: parallel embedding & reranking — up to 2.7x faster on
multi-core machines.
### Fixes
- Prevent VRAM waste from duplicate context creation during concurrent
`embedBatch` calls. #152 (thanks @jkrems)
Writing guidelines
- Explain the why, not just the what. The changelog is for users.
- Include numbers. "2.7x faster", "17x less memory".
- Group by theme, not by file. "Performance" not "Changes to llm.ts".
- Don't list every commit. Aggregate related changes.
- Credit contributors: end bullets with
#NNN (thanks @username)for external PRs. No need to credit the repo owner.
What not to include
- Internal refactors with no user-visible effect
- Dependency bumps (unless fixing a user-facing bug)
- CI/tooling changes (unless affecting the release artifact)
- Test additions (unless validating a fix worth mentioning)
GitHub Release Notes
Each GitHub release includes the full changelog for the minor series back
to x.x.0. The scripts/extract-changelog.sh script handles this, and the
publish workflow (publish.yml) calls it to populate the GitHub release.
Git Hooks
The pre-push hook (scripts/pre-push) blocks v* tag pushes unless:
package.jsonversion matches the tagCHANGELOG.mdhas a## [X.Y.Z] - dateentry for the version- CI passed on GitHub (warns in non-interactive shells, blocks in terminals)
Hooks are installed silently by the context script. They can also be installed
manually via skills/release/scripts/install-hooks.sh or automatically via
bun install (prepare script).
Frequently asked questions about Release Management
Similar skills
Release Candidate Preparation
Streamline your OpenAI Agents release process.
Gitmoji
Generate expressive commit messages with emojis.
GitHub Release
Automate your GitHub library release process effortlessly.
Commit Message Storyteller
Generate meaningful commit messages from your git diffs.
Author Contributions
Trace author contributions across branches in Git.
Implementation Kickoff
Streamline your code implementation process with ease.
