Atlas / Skills / tobi / Release

ReleaseBLOCK

skills/tobi/release

mini cli search engine for your docs, knowledge bases, meeting notes, whatever. Tracking current sota approaches while being all local

Verdict
BLOCK
Grade
D
Trust score
69 /100
Version
—
Hosts
—
License
MIT
Stars
30,531
01

Overview

mini cli search engine for your docs, knowledge bases, meeting notes, whatever. Tracking current sota approaches while being all local

Read from source at commit af367b510fcbOBSERVED · 2026-10-21
Advertisement
02

What it tells the agent

The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.

---
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.
disable-model-invocation: true
---

# 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](https://keepachangelog.com/) 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.

```markdown
## [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`)**

```markdown
### 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).
03

Trust audit

BLOCKgrade D · trust 69/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codePASS
L2Instruction surface (what it tells the agent)FAIL
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
none-observed
Network
none-observed
Shell
none-observed
Dependencies
pinned
Secrets in source
none-found

Findings (6)

HIGHPrompt injection · review.data_transfer · CWE-94, CWE-1427
SKILL.md
run `git push origin main --tags`
Why it matters. The instruction transfers the user's commits and release tags to a remote origin, a data-leaving-the-machine action, without an explicit user gate other than a vague 'confirm'.
Fix. rewrite it so the instruction says plainly what it does, and asks the user before it acts
MEDIUMObfuscation / stealth · review.concealment · CWE-506, CWE-94
SKILL.md
This silently installs git hooks and prints everything needed: version info, working directory status, commits since last release
Why it matters. The context script implicitly performs a hidden, persistent git hook installation, concealing a privilege-modifying side effect from the agent and user.
Fix. rewrite it so the instruction says plainly what it does, and asks the user before it acts
MEDIUMPrivilege escalation / persistence · review.unsafe_action · CWE-269, CWE-250
SKILL.md
This renames `[Unreleased]` → `[X.Y.Z] - date`, inserts a fresh `[Unreleased]`, bumps `package.json`
Why it matters. The release script performs a persistent, destructive versioning mutation to package.json and CHANGELOG.md as a side effect, not merely a dry-run.
Fix. rewrite it so the instruction says plainly what it does, and asks the user before it acts
MEDIUMPrivilege escalation / persistence · review.unsafe_action · CWE-269, CWE-250
SKILL.md
start a background dispatch to watch the publish workflow
Why it matters. It initiates a privileged CI dispatch in a detached background process, an unbounded persistent action not explicitly gated by the user at trigger time.
Fix. rewrite it so the instruction says plainly what it does, and asks the user before it acts
LOWPrompt injection · review.misleading_scope · CWE-94, CWE-1427
<listing:description>
Use when user says "/release", "release 1.0.5", "cut a release",...
Why it matters. The description lists a simple 'release' trigger, but the process implicitly triggers a background CI watcher and a detached agent process.
Fix. rewrite it so the instruction says plainly what it does, and asks the user before it acts
LOWPrompt injection · review.misleading_scope · CWE-94, CWE-1427
SKILL.md
If updates exist, bump them (pinned, no `^` ranges) and re-run tests before proceeding.
Why it matters. The scope extends to auto-updating third-party dependencies (sqlite-vec, node-llama-cpp) and their pinned versions, an action that goes beyond the 'validates changelog' description.
Fix. rewrite it so the instruction says plainly what it does, and asks the user before it acts

Gates applied: no_behavioural_pass.

Audited 2026-10-21 · audit v0.4.1 · source sha af367b510fcbfull audit observations/trust-audit/skill/tobi__release.json · Report an issue / request a re-scan
04

Audit history

Every audit this skill has had.

DateSourceVerdictGradeScoreChange
2026-10-21af367b510fcbBLOCKD69first audit
05

Questions

What does the release — tobi/qmd skill do?

mini cli search engine for your docs, knowledge bases, meeting notes, whatever. Tracking current sota approaches while being all local

Is release — tobi/qmd safe to install?

No — not without reading the findings first. The audit graded it D (69/100) and found 1 critical or high issue in the source. Each one is listed on this page with the file and line it is on.

What can release — tobi/qmd access on my machine?

The audit observed no filesystem, network or shell use at all in its source.

How current is this page?

The grade is for one exact copy of the source (af367b510fcb), read on 2026-10-21. The repository is watched, and a new audit runs when it changes — this is the first audit.

Add this badge to your README

Shows this page's audit result and links back to it. It updates when the audit does.

ModelsAtlas audit badge

Markdown
[![ModelsAtlas audit: Release](https://modelsatlas.com/skills/tobi/release/badge.svg)](https://modelsatlas.com/skills/tobi/release/)

Not your listing, or something out of date? Claim or update your listing.

Advertisement