release

A release procedure for an r3 project. It updates the changelog, changes every version string together, creates a commit, and adds an annotated version tag.

In plain words
What is it for?
Use it when releasing a new version or bumping the project version. It covers the changelog, shared version file, package files, commit, and tag.
Why use it?
It prevents the published tag, package versions, and release notes from getting out of sync.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/hyperlogue/r3/release
Any agent
npx skills add hyperlogue/r3 --skill release
Clone the repo
git clone --depth 1 https://github.com/hyperlogue/r3

Made for: Claude Code, Codex.

Per session 81 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,931 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5 $0.00081 $0.01931
Opus 5 $0.00041 $0.00966
Sonnet 5 $0.00016 $0.00386
Haiku 4.5 $0.00008 $0.00193

Measured 2d ago against content hash 436e30480346, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

release scanned grade A with 1 finding 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 2d ago.

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.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

Release (curl / Homebrew) and publishes the npm launcher (`@hyperlogue/r3`) with
.claude/skills/release/SKILL.md · 141 lines

How it starts

The opening of the file, as written. The whole thing — 141 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Releasing r3

A release is one version-bump commit plus an annotated tag on it. The whole job is: write the changelog, move every version string to the new number together, commit, tag that commit, and push. The release CI reads CHANGELOG.md out of the tagged tree for the GitHub release notes, so the changelog entry is the release's public face and the tag carries no notes of its own.

The one rule: bump before you tag

The tag must point at the version-bump commit. Cutting the tag first and bumping afterward leaves the tag on a commit whose in-code version is still the previous release — this skill exists because that exact mistake happened once. Do the changelog and the version bump in the release commit, then tag that commit.

Version sources — all must read the same number

Three files hold the version. The release-build scripts (scripts/release-binaries.ts, scripts/stage-npm-packages.ts) refuse to build if they drift, so keep them in lockstep:

  1. shared/version.tsR3_VERSION (baked into the binary + CLI, reported by /api/health; the CLI warns on skew).
  2. package.json — top-level "version".
  3. npm/package.json"version" and all four optionalDependencies pins: @hyperlogue/r3-darwin-arm64, -darwin-x64, -linux-x64, -linux-arm64. All four must equal the new version (the launcher resolves the matching per-platform binary at exactly its own version).

Steps

  1. Pick the version (SemVer). Previous tag: git describe --tags --abbrev=0.

  2. Draft the CHANGELOG entry (CHANGELOG.md, [Keep a Changelog] format). Survey what shipped since the last tag — git log v<prev>..HEAD --oneline — then:

    • Insert a new ## [X.Y.Z] - YYYY-MM-DD section directly under the intro block, above the previous version. Use the release date.
    • Group bullets under ### Added / ### Changed / ### Fixed / ### Removed — only the groups that apply, in that order.
    • Write from the user's vantage point: what they can now do, or no longer run into — not the internal mechanics, refactors, or scaffolding that got it there. Frame each entry as what shipped, not what was turned off or reworked mid-development; internal churn a user never observes doesn't belong in the log at all. Match the existing voice: a bold lead-in (**Feature.**) then a sentence or two on the change and why it matters; fold related commits into one bullet.
    • Add the compare link at the very bottom, with the others: [X.Y.Z]: https://github.com/hyperlogue/r3/compare/v<prev>...vX.Y.Z

Read the full file on GitHub · 141 lines

Changes

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.

  1. 2d ago First seen · 141 lines · 81 tokens per session scan A 436e30480346

Subscribe to this mod's changes

release is a skill published in the GitHub repository hyperlogue/r3 (23 stars, last pushed 7d ago), licensed MIT. It adds 81 tokens to every session and 1,931 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.