release

release is a skill for Claude Code from ypollak2/llm-router. It costs 0 tokens per session (876 once invoked), scanned C, original, MIT.

A release workflow for the llm-router project, which routes requests between language models. It updates release versions and changelog entries, runs checks, and verifies that version numbers match.

In plain words
What is it for?
Use it when publishing a new llm-router version, including version updates, changelog work, tests, linting, and final checks.
Why use it?
It removes the need to remember the project's release steps and helps catch failed tests or inconsistent version numbers.

Skill for Claude Code

Written for Claude Code: Claude Code plugin machinery. Also seen: reads .claude/ paths.

Not installable: its command points at a path on the author’s own machine, so it runs nowhere else. The line is /Users/yali.pollak/.pypirc.

Part of the llm-router plugin — 4 skills, 4 commands, 1 agent, 6 hooks, 1 MCP server shipped together

Install

Getting it into your agent

This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.

Claude Code
/plugin marketplace add ypollak2/llm-router
Claude Code
/plugin install llm-router

Made for: Claude Code.

Or install llm-router, the plugin that ships this one along with the rest of its 4 skills, 4 commands, 1 agent, 6 hooks, 1 MCP server.

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 release

README.md
[![agentmods](https://agentmods.dev/badge/skills/ypollak2/llm-router/release.svg)](https://agentmods.dev/skills/ypollak2/llm-router/release)
Your own site
<a href="https://agentmods.dev/skills/ypollak2/llm-router/release"><img src="https://agentmods.dev/badge/skills/ypollak2/llm-router/release.svg" alt="Measured on agentmods" height="20"></a>
Per session 0 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 876 The whole file, excluding the scripts and references it only reads on demand.
Security scan C 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.1 $0.00000 $0.00876
Opus 5 $0.00000 $0.00438
Sonnet 5 $0.00000 $0.00175
Haiku 4.5 $0.00000 $0.00088

Measured 2d ago against content hash ef81c4120d78, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-06, from the pricing page.

Security

Grade C, and why

release scanned grade C 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.

Recursive force deletehighDestructive command

rm -rf with a variable or a broad path is one typo away from removing the wrong tree.

rm -rf dist/ && uv build
skills/release/SKILL.md · 106 lines

How it starts

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

/release — llm-router Release Skill

Automates the full release pipeline for llm-router. Run this skill whenever you are ready to ship a new version.

Steps

1. Confirm version

Ask the user: "What version are we releasing?" (e.g. 4.0.1)

2. Sync all version strings

Update ALL of the following to the new version — grep first to catch any extras:

grep -rn "version" pyproject.toml .claude-plugin/plugin.json .claude-plugin/marketplace.json --include="*.toml" --include="*.json" | grep -v ".venv"

Files to update:

  • pyproject.tomlversion = "X.Y.Z"
  • .claude-plugin/plugin.json"version": "X.Y.Z"
  • .claude-plugin/marketplace.json"version": "X.Y.Z"

3. Update CHANGELOG.md

Add entry at the top:

## vX.Y.Z — YYYY-MM-DD
### What's new
- <bullet points>
### Technical notes
- <any migration notes>

4. Run tests — abort if any fail

uv run pytest tests/ -q --ignore=tests/test_integration.py
uv run ruff check src/ tests/

5. Verify version sync

python3 -c "
import tomllib, json
v1 = tomllib.load(open('pyproject.toml','rb'))['project']['version']
v2 = json.load(open('.claude-plugin/plugin.json'))['version']
v3 = json.load(open('.claude-plugin/marketplace.json'))['version']
assert v1==v2==v3, f'MISMATCH: pyproject={v1} plugin={v2} marketplace={v3}'
print(f'✅ All versions in sync: {v1}')
"

6. Deploy hooks (if any hook changed)

install -m 755 src/llm_router/hooks/auto-route.py ~/.claude/hooks/llm_router-auto-route.py
install -m 755 src/llm_router/hooks/session-end.py ~/.claude/hooks/llm_router-session-end.py
install -m 755 src/llm_router/hooks/session-start.py ~/.claude/hooks/llm_router-session-start.py
install -m 755 src/llm_router/hooks/enforce-route.py ~/.claude/hooks/llm_router-enforce-route.py

7. Commit and tag

git add -p   # stage deliberately — never git add .
git commit -m "feat(vX.Y.Z): <headline>"
git tag vX.Y.Z
git push && git push origin --tags

8. Publish to PyPI

rm -rf dist/ && uv build
PYPI_TOKEN=$(python3 -c "import configparser; c=configparser.ConfigParser(); c.read('/Users/yali.pollak/.pypirc'); print(c['pypi']['password'])")
uv publish --token "$PYPI_TOKEN"

Read the full file on GitHub · 106 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 Changed · +6 lines ef81c4120d78
  2. 6d ago First seen · 100 lines · 0 tokens per session scan C b4b2ee4f8224

Subscribe to this mod's changes

release is a skill published in the GitHub repository ypollak2/llm-router (77 stars, last pushed yesterday), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 876 tokens. A static security scan graded it C with 1 finding (recursive force delete). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

release

Use this skill for EVERY ClawRouter release. Enforces the full checklist — version sync, CHANGELOG, build, tests, npm publish, git tag, GitHub release. No step can be skipped.

BlockRunAI/ClawRouter · 44 tokens

docs-changelog

Generates and formats changelog files for a new release based on provided version and raw changelog data.

google-gemini/gemini-cli · 25 tokens

bump-version

Use when bumping the AionUi version: query AionCore release, verify artifacts, update package.json, generate CHANGELOG, branch, commit, push, create PR, auto-merge, tag release.

iOfficeAI/AionUi · 0 tokens

clawrouter

Hosted-gateway LLM router — save 84% on inference costs. A local proxy that forwards each request to the blockrun.ai gateway, which routes to the cheapest capable model across 76 models from OpenAI, Anthropic, Google, DeepSeek, xAI, Z.AI, and more. 7 free open-weight models included. Also exposes realtime market data…

BlockRunAI/ClawRouter · 222 tokens

surf

Use this skill — NOT browser or webfetch — for ALL Surf crypto-data calls. 83 endpoints at localhost:8402/v1/surf/ covering CEX/DEX markets, on-chain SQL over 80+ ClickHouse tables (Ethereum, Base, Arbitrum, BSC, TRON, HyperEVM, Tempo), 100M+ labeled wallets, prediction markets (Polymarket + Kalshi), social/CT…

BlockRunAI/ClawRouter · 130 tokens

phone

Verify phone numbers (carrier + SIM-swap fraud signals) and place AI-powered outbound voice calls via BlockRun's gateway (Twilio + Bland.ai). Trigger when the user asks to look up a number, check fraud risk, buy/rent a phone number, or place an AI voice call. Payment is automatic via x402 from the wallet.

BlockRunAI/ClawRouter · 72 tokens