rhiza-release

rhiza-release is a skill for Claude Code from Jebel-Quant/rhiza-claude. It costs 60 tokens per session (10,178 once invoked), scanned A, original, MIT.

A release workflow for repositories that declare where their version information is stored. It updates the version, regenerates the changelog, opens a release pull request, merges it after checks, and tags the merged commit.

In plain words
What is it for?
Use it to choose a release version, prepare the release pull request, wait for forge checks, merge it, and create the tag for the merged commit.
Why use it?
It coordinates the version change, review, merge, and tag so the release is based on the checked-in result. It works without requiring the repository to use a particular rhiza directory.

Skill for Claude Code

Written for Claude Code: $ARGUMENTS substitution. Also seen: names the AskUserQuestion tool; mentions Claude Code.

Needs its repository: it runs a file that does not travel with it, so clone the repository first. The line is (`uses: ./.github/actions/<name>`), which needs no tag, cannot drift, and makes the.

Good fit Use it to choose a release version, prepare the release pull request, wait for forge checks, merge it, and create the tag for the merged commit.

Compare 6 skills from other repositories ↓
Install

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.

Clone the repo
git clone --depth 1 https://github.com/Jebel-Quant/rhiza-claude
agentmods
npx agentmods add skills/jebel-quant/rhiza-claude/rhiza-release

Made for: Claude Code.

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

agentmods badge for rhiza-release

README.md
[![agentmods](https://agentmods.dev/badge/skills/jebel-quant/rhiza-claude/rhiza-release/github.svg)](https://agentmods.dev/skills/jebel-quant/rhiza-claude/rhiza-release)
Your own site
<a href="https://agentmods.dev/skills/jebel-quant/rhiza-claude/rhiza-release"><img src="https://agentmods.dev/badge/skills/jebel-quant/rhiza-claude/rhiza-release/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for rhiza-release

Your own site · 80×15
<a href="https://agentmods.dev/skills/jebel-quant/rhiza-claude/rhiza-release"><img src="https://agentmods.dev/badge/skills/jebel-quant/rhiza-claude/rhiza-release.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 60 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 10,178 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
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.1 $0.00060 $0.10178
Opus 5.5 $0.00024 $0.04071
Sonnet 5.5 $0.00012 $0.02036
Haiku 4.5 $0.00006 $0.01018

Measured 6d ago against content hash 06548e5043c9, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-30, from the pricing page.

Security

Grade A, and why

rhiza-release 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 6d 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.

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.

bundle/skills/rhiza-release/SKILL.md · 694 lines

How it starts

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

Portable copy of plugin/skills/release/SKILL.md, generated by plugin/scripts/build_bundle.py. Edit the source and run make bundle — an edit here is overwritten.

  • ${RHIZA_ROOT} is your rhiza-claude checkout. Export it, or substitute the path wherever it appears. Any remark below about the variable being empty in a source checkout is Claude Code's spelling of the same idea — ${RHIZA_ROOT} replaces it, and the repo-relative fallbacks do not apply, because you are working in the user's repo, not in this one.
  • /rhiza:<name> names another skill in this bundle, rhiza-<name>. Invoke it however your client invokes skills.
  • Tools. Read, Edit and Write read and write files; Grep and Glob search; Bash is a shell in the user's repo. Use your equivalents.
  • AskUserQuestion is a multiple-choice question put to the user. With no such tool, ask in plain text, number the options, and wait for a reply: where the procedure says nothing is created without an explicit selection, that holds however the question was asked.
  • Arguments: [version e.g. v1.4.0] (optional; omit to pick from a table of candidates). The text below writes $ARGUMENTS for what the user passed; substitute it yourself if your client does not.
  • Runs: git, gh, glab, uv, uvx, make, cat, grep. Nothing here enforces that list, where the plugin's frontmatter did — your client has to permit them.
  • Never run this on your own initiative — only when the user asks for it by name.

You are running /release in the current working directory's repo. Goal: land the version bump on the default branch through a pull request, like every other change, and tag the commit that actually merged — in one run.

A tag still cannot be cut before the merge, which is why there is a wait in the middle. A tag must point at a commit that exists on the branch you publish from; a squash-merge replaces the branch's commits with a new one, so a tag created before the merge names a SHA that never lands. No reordering of the steps fixes that — the commit to tag does not exist until the request merges. So the run goes through the merge instead of stopping in front of it: it hands the merge to the forge, waits for the bump to appear on the default branch, and tags what landed.

Stage Steps Ends with
Prepare 2–9 the version chosen, the bump and changelog committed on a pushed branch, an open release PR
Land 10–11 auto-merge handed to the forge, and the bump on the default branch
Tag 12–13 the merged commit tagged, the tag pushed, release CI running

phase A and phase B — what step 1a's script reports — name the repo's state, not two runs of this command. Phase A is "nothing pending"; phase B is "a bump is committed that no tag names". An ordinary run starts in A, and steps 10–11 are what put the repo into B; step 12 then tags it. A run that starts in B is one finishing a release whose wait had expired.

The wait can time out, and then the run hands back rather than half-finishing. Review takes as long as it takes and a session does not outlive a weekend; when the wait expires the run reports the open PR and stops, having created no tag. Re-running /rhiza:release finishes the release — step 1a reports phase B and goes straight to step 12. That is not a special case: it is steps 12–13 entered later, and it is why an expired wait leaves nothing to undo.

Never push to the default branch, and never move an existing tag. The run pushes one release branch — the same thing /rhiza:init and /rhiza:update do — and then one tag, onto the commit the forge merged.

The human decision is the version; the checks are the gate. Step 3 stops and makes a person choose the bump, because that is the judgement nothing here can make. What follows is mechanical, so the run carries it through rather than handing back a command to re-type. What keeps that safe is not a second pair of hands, it is step 12's guard: a version that does not strictly increase, or a tag that already exists, stops the run before anything is created. If anything is ambiguous, stop and report.

Read the full file on GitHub · 694 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. 6d ago First seen · 694 lines · 60 tokens per session scan A 06548e5043c9

Subscribe to this mod's changes

rhiza-release is a skill published in the GitHub repository Jebel-Quant/rhiza-claude (4 stars, last pushed today), licensed MIT. It adds 60 tokens to every session and 10,178 once invoked, about $0.0002 per session on Opus 5.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-24.