CONTRIBUTOR TOOL - Cut a plugin release: bump plugin.json version, finalize CHANGELOG, update README if needed, gate on make ci, commit, tag vX.Y.Z, and create the GitHub release.

MITAuto-check passedDevelopment

Install Release

skills CLI
$ npx skills add oliver-kriska/claude-elixir-phoenix --skill release -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install oliver-kriska/claude-elixir-phoenix release --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/oliver-kriska/claude-elixir-phoenix.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/release .claude/skills/release && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
release
GitHub stars
565
Token cost
~1.7k tokens
SKILL.md length
752 words
Files
2 (incl. references)
Skills in repo
111
Repo updated
First seen
Licence
MIT

At a glance

CONTRIBUTOR TOOL - Cut a plugin release: bump plugin.json version, finalize CHANGELOG, update README if needed, gate on make ci, commit, tag vX.Y.Z, and create the GitHub release.

  • Works in 9 steps: Preconditions → Bump the version — five files by hand,… → Finalize CHANGELOG → …
  • Shipping a new plugin version
  • SKILL.md covers Iron Laws — Never Violate These, Step 0: Preconditions, Step 1: Bump the version —… and Step 2: Finalize CHANGELOG, plus 7 more sections
  • Calls git, make and gh; reaches phxagents.dev

What it does

Release is an agent skill from oliver-kriska/claude-elixir-phoenix. CONTRIBUTOR TOOL - Cut a plugin release: bump plugin.json version, finalize CHANGELOG, update README if needed, gate on make ci, commit, tag vX.Y.Z, and create the GitHub release. Use when shipping a new plugin version. NOT distributed.

Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/templates.md`).

It sits in Development, covering Hooks and plugins, Changelog and release notes and Technical documentation. It works with GitHub and Git. The repository describes itself as: Claude Code plugin for Elixir/Phoenix/LiveView — 26 specialist agents, Iron Laws enforcement, and Tidewave MCP integration. Plan features with parallel research agents, execute… The licence is MIT.

When your agent uses it

  • Shipping a new plugin version
  • Tasks that involve Hooks and plugins
  • Tasks that involve Changelog and release notes

Example prompts

  • “/release”

Requirements

  • Node.js

Workflow steps

9 steps, taken from the step headings in SKILL.md.

  1. Preconditions
  2. Bump the version — five files by hand, two generated
  3. Finalize CHANGELOG
  4. README + intro (only if needed)
  5. Gate on make ci
  6. Commit
  7. Tag
  8. CONFIRM, then publish (outward-facing)
  9. Verify

What it can do on your machine

Read from SKILL.md and the folder at commit 9767a82. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • make
    • gh
    • claude
    • npm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • phxagents.dev

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Release loads about 1.7k tokens when it runs, and up to ~3.1k if it reads all its reference files. Until then it costs about 61 tokens; SKILL.md has 752 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~61
When it runs · the whole SKILL.md, loaded when a task matches
~1.7k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~3.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from oliver-kriska/claude-elixir-phoenix at commit 9767a82, republished under its MIT licence (© oliver-kriska). 752 words, ~1,749 tokens.

Download SKILL.mdSave it as .claude/skills/release/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
release
description
CONTRIBUTOR TOOL - Cut a plugin release: bump plugin.json version, finalize CHANGELOG, update README if needed, gate on make ci, commit, tag vX.Y.Z, and create the GitHub release. Use when shipping a new plugin version. NOT distributed.
argument-hint
[patch|minor|major] | [X.Y.Z]
effort
medium

Plugin Release

Cuts a versioned release of the Elixir/Phoenix plugin. Drives the full checklist from CLAUDE.md (Release + Versioning) so every release is consistent. Contributor tooling — not shipped in the plugin.

Iron Laws — Never Violate These

  1. NEVER release on a red make ci — the gate runs BEFORE committing. No green, no release.
  2. FOUR TAGS PER RELEASE — vX.Y.Z plus phx--vX.Y.Z, ecto--vX.Y.Z, lv--vX.Y.Z from claude plugin tag (what dependency ranges resolve against). Tag only the release commit.
  3. THREE NUMBERS MUST MATCH — plugin.json version == CHANGELOG heading == git tag (vX.Y.Z). Verify before pushing.
  4. CONFIRM BEFORE PUBLISHING — pushing the tag and gh release create are outward-facing and hard to reverse. Stop and confirm with the user; show exactly what will be pushed/published first.
  5. USERS ONLY UPDATE ON A plugin.json BUMP — never ship CHANGELOG/code changes without bumping the version, or installed users get nothing (cache).
  6. ALWAYS leave a fresh empty ## [Unreleased] — one [Unreleased] becomes one version heading; re-add an empty one on top.
  7. NEVER force-push — git push --force is hook-blocked here. If history needs rewriting, the user runs it via !.
  8. EVERY release body links the docs site — append the https://phxagents.dev footer. Releases are this project's one measured promotion lever (v3.0.1: 51 → 120 cloners in a day).
  9. UPGRADE-BREAKING RELEASES LEAD WITH THE WARNING — if users must do anything beyond /plugin update, the release body opens with a > [!WARNING] block carrying the exact commands (see #135).

Step 0: Preconditions

  • On main, working tree clean except intended release files. If feature work is uncommitted, commit it first.
  • Determine version. Run git describe --tags --abbrev=0 --match 'v*' FIRST (the annotated phx--/ecto--/lv-- tags would win otherwise) — the last released tag is the bump base, NOT plugin.json (which may carry an unreleased phased bump). If plugin.json is already ahead of the tag, apply the consolidation check below before picking a number.
  • Read current plugins/elixir-phoenix/.claude-plugin/plugin.json. Pick bump from ## [Unreleased] contents:
    • MAJOR — breaking change (removed command, workflow redesign)
    • MINOR — new skill / agent / command / hook
    • PATCH — bug fix, doc/reference update, description tweak
  • Consolidation check (per memory): if several phased branch bumps never released, collapse to ONE bump from the last released tag — don't stack intermediate versions.

Step 1: Bump the version — five files by hand, two generated

A partial bump does not just cost users the update; it fails scripts/tests/test_codex.py, which asserts the Codex manifest matches canonical.

Set "version" to X.Y.Z in:

  1. plugins/elixir-phoenix/.claude-plugin/plugin.json — canonical
  2. plugins/ecto/.claude-plugin/plugin.json
  3. plugins/lv/.claude-plugin/plugin.json
  4. package.json — Pi package metadata, tracks the plugin version since v3.0.0
  5. package-lock.json — run npm install --package-lock-only, never hand-edit (an unrelated dependency can share the old version string)

Then regenerate the two templated manifests and bless their digests:

make generated-skills-sync        # updates targets/codex + targets/pi manifests
make generated-skills-snapshots   # re-bless after reviewing the diff

Confirm every file agrees before moving on:

grep -rn '"version"' plugins/*/.claude-plugin/plugin.json package.json \
  targets/codex/.codex-plugin/plugin.json targets/pi/package.json

(Often already bumped during the feature work — confirm it matches the target.)

Show full SKILL.md (293 more words)Show less

Step 2: Finalize CHANGELOG

In CHANGELOG.md:

  1. Rename ## [Unreleased] → ## [X.Y.Z] - YYYY-MM-DD (today's date).
  2. Insert a fresh empty section on top (see ${CLAUDE_SKILL_DIR}/references/templates.md).
  3. Optionally add a one-line summary under the new heading (past releases do).

Step 3: README + intro (only if needed)

  • Update README.md ONLY if counts/version callouts changed: skill count, agent count (grep -nE "[0-9]+ (skills|agents|specialist)" README.md), or a version banner. A pure doc/reference PATCH usually needs no README change — verify, don't assume.
  • Check plugins/elixir-phoenix/skills/intro/references/tutorial-content.md cheat sheet if commands/skills/agents were added, removed, or renamed.

Step 4: Gate on make ci

Run make ci (lint + test + validate + eval-all). Must be green. If lint trips on untracked non-source dirs (e.g. social/, .rtk/), that is not a code failure — exclude them, don't ship around real failures. See ${CLAUDE_SKILL_DIR}/references/templates.md.

Step 5: Commit

git add CHANGELOG.md plugins/elixir-phoenix/.claude-plugin/plugin.json   # + README if touched
git commit   # message below

Commit subject (matches history): Release vX.Y.Z — <short summary> End the message with the Co-Authored-By trailer (see CLAUDE.md).

Step 6: Tag

After the release commit, tag each plugin. claude plugin tag validates the plugin, confirms plugin.json matches the marketplace entry, and refuses a dirty tree or an existing tag — so a failure here means the release commit is wrong, not the tag. Run it with --dry-run first if unsure.

for p in elixir-phoenix ecto lv; do claude plugin tag plugins/$p || break; done
git tag vX.Y.Z
git tag --list 'v*' '*--v*' --points-at HEAD   # expect 4 tags

Step 7: CONFIRM, then publish (outward-facing)

Show the user the pending commit, tag, and release notes. On confirmation:

git push origin main
git push origin vX.Y.Z phx--vX.Y.Z ecto--vX.Y.Z lv--vX.Y.Z
gh release create vX.Y.Z --title "vX.Y.Z — <summary>" --notes-file <changelog-section>

Use the new CHANGELOG section as release notes (extract it to a temp file or --notes), then prepend any upgrade warning (Iron Law 9) and append the docs footer before publishing — a release body is read at the moment someone decides whether to install:

---

Docs, install guides, and the runtime compatibility matrix: <https://phxagents.dev>

See ${CLAUDE_SKILL_DIR}/references/templates.md for the one-line printf that appends it to the extracted notes.

Step 8: Verify

gh release view vX.Y.Z
git describe --tags --abbrev=0 --match 'v*'    # should print vX.Y.Z

Confirm to the user: released, tag pushed, GitHub release live.

Reference

  • ${CLAUDE_SKILL_DIR}/references/templates.md — CHANGELOG/release-notes templates, gate snippets, gotchas

© oliver-kriska, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file (references) in .claude/skills/release of oliver-kriska/claude-elixir-phoenix.

  • SKILL.md
  • references/templates.md

Open the folder on GitHubat commit 9767a82

Compare with similar skills

Release next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Release compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Release this skilloliver-kriska/claude-elixir-phoenix565—~1.7kAutomated safety check: PassMIT
Releaseemanuelcasco/pi-mono-extensions106—~2.3kAutomated safety check: PassMIT
Plugin Version Bump and Releasethedotmack/claude-mem99k—~1.7kAutomated safety check: WarnApache-2.0
Draft Release Notesjamiepine/voicebox57k—~941Automated safety check: PassMIT
Mole Release Notes Publishertw93/Mole70k—~1.9kAutomated safety check: PassGPL-3.0
Release Bumpjamiepine/voicebox57k—~1.1kAutomated safety check: PassMIT

Similar skills

  • Release

    emanuelcasco/pi-mono-extensions

    Release a new version of pi-extensions: bump individual package versions (independent mode), update CHANGELOGs and READMEs, create per-package git tags, publish a GitHub release, and publish…

    106 GitHub stars~2.3k tokensUpdated 1 mo ago
    DevelopmentAuto-check passed
  • Plugin Version Bump and Release

    thedotmack/claude-mem

    Runs a semantic-versioning release workflow for a Claude Code plugin: bumps every manifest, builds, tags, creates a GitHub release, generates a changelog and publishes to npm.

    99k GitHub stars~1.7k tokensUpdated today
    DevelopmentAuto-check: warnings
  • Draft Release Notes

    jamiepine/voicebox

    Writes or refreshes the Unreleased section of CHANGELOG.md as a themed narrative built from the commits, PRs and diff since the last version tag.

    57k GitHub stars~941 tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • Publishes curated, bilingual release notes for an existing Mole version tag with gh release edit, including contributor thanks and reactions, after the release workflow finishes.

    70k GitHub stars~1.9k tokensUpdated today
    DevelopmentAuto-check passed
  • Release Bump

    jamiepine/voicebox

    Ends a release cycle by moving the Unreleased changelog notes under a dated version heading, bumping version files with bumpversion and tagging the commit.

    57k GitHub stars~1.1k tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • Takes a change through a verdaccio pull request: branch, local checks, changeset, title and body, labels, CI and review rounds, and ports to other release lines.

    18k GitHub stars~1.9k tokensUpdated today
    DevelopmentAuto-check passed

More from oliver-kriska/claude-elixir-phoenix

All 111 skills in this repo
  • Codex Ab

    oliver-kriska/claude-elixir-phoenix

    Run an A/B codex review experiment — holistic codex review vs 3 focused dimension passes (security, ecto, liveview) on the branch diff, classify findings, report a panel-value verdict.

    565 GitHub stars~977 tokensUpdated 3 days ago
    Auto-check passed
  • Audit

    oliver-kriska/claude-elixir-phoenix

    Project health audit and health check — architecture, performance, tests, dependencies, code quality.

    565 GitHub stars~2k tokensUpdated 3 days ago
    Auto-check passed
  • Compound Docs

    oliver-kriska/claude-elixir-phoenix

    Searchable Elixir/Phoenix/Ecto solution documentation system with; Use when consulting past solutions…

    565 GitHub stars~528 tokensUpdated 3 days ago
    Auto-check passed
  • Compound Docs

    oliver-kriska/claude-elixir-phoenix

    Searchable Elixir/Phoenix/Ecto solution documentation system with YAML frontmatter.

    565 GitHub stars~547 tokensUpdated 3 days ago
    Auto-check passed
  • Deploy

    oliver-kriska/claude-elixir-phoenix

    Elixir/Phoenix deployment patterns — Dockerfile, fly.toml, runtime.exs, mix release, rel/ overlays.

    565 GitHub stars~1.1k tokensUpdated 3 days ago
    Auto-check passed
  • Deps Update

    oliver-kriska/claude-elixir-phoenix

    Bump outdated Hex deps — inventory, snapshot changelogs, update, fix breaks, split reviewable PRs (patches bundled, majors solo).

    565 GitHub stars~1.4k tokensUpdated 3 days ago
    Auto-check passed

Works with

Categories

Questions about Release

What does Release do?

CONTRIBUTOR TOOL - Cut a plugin release: bump plugin.json version, finalize CHANGELOG, update README if needed, gate on make ci, commit, tag vX.Y.Z, and create the GitHub release. Release is an agent skill from oliver-kriska/claude-elixir-phoenix.Z, and create the GitHub release.

When should I use Release?

Release fits situations like: shipping a new plugin version; tasks that involve Hooks and plugins; tasks that involve Changelog and release notes.

How do I install Release in Claude Code?

Run `npx skills add oliver-kriska/claude-elixir-phoenix --skill release -a claude-code`. Or copy the skill folder (.claude/skills/release in oliver-kriska/claude-elixir-phoenix) into .claude/skills/release in your project. Claude Code loads it when a task matches its description.

How do I install Release in Codex?

Run `npx skills add oliver-kriska/claude-elixir-phoenix --skill release -a codex`. Or copy the skill folder (.claude/skills/release in oliver-kriska/claude-elixir-phoenix) into .agents/skills/release in your project. Codex loads it when a task matches its description.

Can I use Release in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add oliver-kriska/claude-elixir-phoenix --skill release -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/release, .gemini/skills/release, .github/skills/release and .opencode/skills/release in your project.

What does Release need to run?

Going by SKILL.md and its folder, Release needs the command-line tools its instructions call (git, make, gh, claude and npm). Our summary lists: Node.js.

Does Release access the network?

SKILL.md names 1 domain. In commands or code: phxagents.dev; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Release safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Release use?

Release is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Release use?

About 1.7k tokens (SKILL.md is roughly 7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.3k tokens, read only when the agent opens those files.

What are the alternatives to Release?

Skills that share tags, products or a category with Release: Release (emanuelcasco/pi-mono-extensions, 106 stars), Plugin Version Bump and Release (thedotmack/claude-mem, 99k stars), Draft Release Notes (jamiepine/voicebox, 57k stars) and Mole Release Notes Publisher (tw93/Mole, 70k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Release?

oliver-kriska (a GitHub user) maintains it in oliver-kriska/claude-elixir-phoenix, which has 565 GitHub stars. The repository holds 111 skills in this directory. The repository was last updated on October 5, 2026.

Source: oliver-kriska/claude-elixir-phoenix on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.