tobi/qmd/release
- community
Checking that the SKILL.md file is still in the repository.
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.
Install
npx vskill@latest install tobi/qmd/releaseSKILL.md
Release
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.
- Check dependency updates — before cutting the release, check for
updates to sqlite-vec (and platform packages), node-llama-cpp, and better-sqlite3. Run pnpm outdated and report any available updates for these packages. If updates exist, bump them (pinned, no ^ ranges) and re-run tests before proceeding.
- Cut the release — run
scripts/release.sh <version>. This renames
[Unreleased] → [X.Y.Z] - date, inserts a fresh [Unreleased], bumps package.json and the plugin version in .claude-plugin/marketplace.json (so installed plugins see the update), commits, and tags.
- Show the final changelog — print the full
[Unreleased]+
minor series rollup via scripts/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_shell in dispatch mode with: `` gh run watch $(gh run list --workflow=publish.yml --limit=1 --json databaseId --jq '.[0].databaseId') --exit-status `` The agent will be notified when CI completes and should report the result.
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.
2. Detailed changelog (`### Changes` and `### Fixes`)
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).
Security
- Security scanPassed, 99 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/release/SKILL.md
Popularity
- Repository stars
- 30,033
- Repository forks
- 1,874
- Repository npm downloads, 7 days
- 11,030
- 7-day trend score
- 74
Stars and forks are for the whole GitHub repository, not this skill alone. Downloads are for the repository's npm package. Refreshed 24 Mar 2026, 7 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/tobi/qmd/release)