Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/uHappyLogic/cairnnpx agentmods add skills/uhappylogic/cairn/release-pluginWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/uhappylogic/cairn/release-plugin)<a href="https://agentmods.dev/skills/uhappylogic/cairn/release-plugin"><img src="https://agentmods.dev/badge/skills/uhappylogic/cairn/release-plugin.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00034 | $0.04809 |
| Opus 5 | $0.00017 | $0.02405 |
| Sonnet 5 | $0.00007 | $0.00962 |
| Haiku 4.5 | $0.00003 | $0.00481 |
Grade A, and why
release-plugin scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 454 lines — stays where its author put it; the contents beside it link to each section on GitHub.
release-plugin
Releases the cairn plugin at a maintainer-supplied MAJOR.MINOR.PATCH version. This
SKILL.md is the single place the release procedure is documented — no release prose lives
in CLAUDE.md or README.md. It is a maintainer-only, project-local skill: it lives under
.claude/skills/, outside the shipped skills/ tree, so it is never transpiled into
.agents/plugins/cairn/ and never reaches a consuming project.
The going-forward tag format is a bare MAJOR.MINOR.PATCH. The legacy v.0.9.x and
v0.9.7 tags are never created, moved, or deleted by this skill.
Nothing is written, committed, pushed, tagged, or published until every gate below has passed and the release notes have been composed. The pre-flight and version gates (steps 2 and 3) are hard stops: on failure, report the specific reason and exit, having changed nothing. Never work around a gate, and never ask the maintainer to waive one.
Resuming an interrupted release. Re-running with the same version after a failed run is the whole recovery story — there is no rollback of already-published refs and no hand-run recovery command. A resumption is detected once, up front:
git log -1 --format='%s' HEAD
If that prints exactly Release: <VERSION>, this version's release commit is already
recorded and the run is a resumption. When it is, step 1 excludes <VERSION> from the
last-release lookup, step 3b tolerates a tag that points at HEAD, and step 6 is skipped whole
— the commit it would produce already exists. Every other step runs unchanged, and step 8's
per-artifact checks pick the run up from the first step that did not complete.
Usage
/release-plugin <MAJOR.MINOR.PATCH>
<MAJOR.MINOR.PATCH>: the version literal to release, e.g.1.0.0. Bare — novprefix, no suffix.
Example:
/release-plugin 1.0.0
Call the argument <VERSION> from here on.
Workflow
1. Resolve the last release
The last release is the nearest tag reachable from HEAD:
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- today First seen · 454 lines · 34 tokens per session scan A 8591399152a2
release-plugin is a skill published in the GitHub repository uHappyLogic/cairn (2 stars, last pushed 2d ago), licensed MIT. It adds 34 tokens to every session and 4,809 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-06.
Other skills, from other repositories
release
Prepare a version release — bump version files, commit, and tag. Just run /release with no arguments.
release-init
Detect project type and generate a tailored project-level /release skill. Run once per project to set up releasing.
id-rollback
The infra-delivery INCIDENT safe-revert PROCEDURE skill (the recurring/incident rollback step) — the PROCEDURE the generic agent runs when a delivered change did NOT land (a NOT-LANDED realization, an escaped defect, bad config) to restore the last-known-good IaC and prove reality matches it again. The shape is git…
yolo-finish
Use when a feature is implemented and verified, to land it. Default path is PR + CI check, with the ship gate confirming before the irreversible merge; fast-local is the escape hatch. Includes the risk classifier whose hard triggers always stop for a human. Triggers on "ship it", "land this", "open a PR", or as the…
memstack-development-changelog-generator
Use when the user says 'generate changelog', 'update changelog', 'what changed', 'release notes', 'write changelog', or needs a formatted CHANGELOG.md from git commit history. Do NOT use for diary entries, git log viewing, or commit message writing.
aiwg-pr
AIWG-specific pull request delivery workflow for AIWG product/workspace changes; not the generic repository PR process.