name: release description: Manage releases for this project. Validates changelog, installs git hooks, and cuts releases. Use when user says "/release", "release 1.0.5", "cut a release", or asks about the release process. NOT auto-invoked by the model.
Cut a release, validate the changelog, and ensure git hooks are installed.
/release 1.0.5 or /release patch (bumps patch from current version).
When the user triggers /release <version>:
scripts/install-hooks.sh (idempotent)## [Unreleased] has contentscripts/extract-changelog.sh)scripts/release.sh <version> — renames [Unreleased], bumps version, commits, tagsgit push origin main --tagsIf any step fails, stop and explain. Never force-push or skip validation.
The changelog lives in CHANGELOG.md and follows Keep a Changelog conventions.
## [Unreleased] — accumulates entries between releases## [X.Y.Z] - YYYY-MM-DD — released versionsThe release script renames [Unreleased] → [X.Y.Z] - date and inserts a
fresh empty [Unreleased] section automatically.
Each version entry has two parts:
1. Highlights (optional, 1-4 sentences of prose)
Immediately after the version heading, before any ### section. This is the
elevator pitch — what would you tell someone in 30 seconds? Only include for
releases with significant changes. 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)
#NNN (thanks @username) for
external PRs. No need to credit the repo owner.Each GitHub release includes the full changelog for the minor series back
to x.x.0. Releasing v1.2.3 includes entries for 1.2.3, 1.2.2, 1.2.1, and
1.2.0. The scripts/extract-changelog.sh script handles this, and the
publish workflow (publish.yml) calls it to populate the GitHub release.
The pre-push hook (scripts/pre-push) blocks v* tag pushes unless:
package.json version matches the tagCHANGELOG.md has a ## [X.Y.Z] - date entry for the versionRun skills/release/scripts/install-hooks.sh to install (also runs
automatically via bun install prepare script).
scripts/install-hooks.sh — install/update git hooksscripts/release.sh — rename [Unreleased], bump version, commit, tagscripts/extract-changelog.sh — extract minor series notes for GitHub releasescripts/pre-push — pre-push validation hook