Source profileQuality 92/100Review permissions

tobi/qmd/skills/release/SKILL.md

release

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.

Source repository stars
29,209
Declared platforms
0
Static risk flags
1
Last source update
2026-08-18
Source checked
2026-08-26

Decision brief

What it does: where it fits

Cut a release, validate the changelog, and ensure git hooks are installed.

Best for

  • Use when user says "/release", "release 1.

Not for

  • Tasks that require unconfirmed production actions or broad system permissions.
  • Environments where the pinned source and install steps cannot be inspected.

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/tobi/qmd --skill "skills/release"
Safe inspection promptEditorial

Inspect the Agent Skill "release" from https://github.com/tobi/qmd/blob/dbfd0b4736aeaf761d1a16ca8e424f071df8feb9/skills/release/SKILL.md at commit dbfd0b4736aeaf761d1a16ca8e424f071df8feb9. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

Workflow

What the source asks the agent to do

  1. 01

    Usage

    /release 1.0.5 or /release patch (bumps patch from current version).

    /release 1.0.5 or /release patch (bumps patch from current version).
  2. 02

    Process

    When the user triggers /release :

    Gather context — run skills/release/scripts/release-context.sh .Commit outstanding work — if the context shows staged, modified, orWrite the changelog — if [Unreleased] is empty, write it now using
  3. 03

    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").

    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").
  4. 04

    Changelog Standard

    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 changelog lives in CHANGELOG.md and follows Keep a Changelog conventions.
  5. 05

    Heading format

    [Unreleased] — accumulates entries between releases

    [Unreleased] — accumulates entries between releases[X.Y.Z] - YYYY-MM-DD — released versions- [Unreleased] — accumulates entries between releases - [X.Y.Z] - YYYY-MM-DD — released versions

Permission review

Static risk signals and limitations

Runs scripts

medium · line 24

The documentation asks the agent to run terminal commands or scripts.

standard below. Re-run the context script after committing if needed.

Evidence record

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score92/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars29,209SourceRepository attention, not individual Skill quality
Compatibility0 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
tobi/qmd
Skill path
skills/release/SKILL.md
Commit
dbfd0b4736aeaf761d1a16ca8e424f071df8feb9
License
MIT
Collected
2026-08-26
Default branch
main
View the original SKILL.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>:

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. Show the final changelog — print the full [Unreleased] + minor series rollup via scripts/extract-changelog.sh <version>. Ask the user to confirm before pushing.

  7. Push — after explicit confirmation, run git push origin main --tags.

  8. 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.

## [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:

  1. package.json version matches the tag
  2. CHANGELOG.md has a ## [X.Y.Z] - date entry for the version
  3. 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

What to verify before installation and use

What does the release source document cover?

Cut a release, validate the changelog, and ensure git hooks are installed.

How do I install release?

The source record exposes this install command: npx skills add https://github.com/tobi/qmd --skill "skills/release". Inspect the command and pinned source before running it.

Which permission-related actions were detected?

Static rules flagged exec-script in the source; the page lists the matching lines and excerpts.

Alternatives

Compare before choosing