Agent skill

Release Management

by ruby-git in ruby-git/ruby-git

Prepares and publishes new releases of the ruby-git gem including version bumps, changelog updates, tagging, and gem publishing.

MITAuto-check passedDevelopment

Install Release Management

skills CLI
$ npx skills add ruby-git/ruby-git --skill release-management -a claude-code

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

GitHub CLI
$ gh skill install ruby-git/ruby-git release-management --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/ruby-git/ruby-git.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/release-management .claude/skills/release-management && 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-management
GitHub stars
1.8k
Token cost
~3.1k tokens
SKILL.md length
1,521 words
Files
1
Skills in repo
30
Repo updated
First seen
Licence
MIT

At a glance

Prepares and publishes new releases of the ruby-git gem including version bumps, changelog updates, tagging, and gem publishing.

  • Works in 4 steps: Developers merge PRs with conventional… → release-please automatically opens (and… → When a maintainer merges the release PR,… → …
  • Preparing a release
  • SKILL.md covers Contents, How to use this skill, Related skills and How Releases Work, plus 7 more sections
  • Calls git, bundle and gem

What it does

Release Management is an agent skill from ruby-git/ruby-git. Prepares and publishes new releases of the ruby-git gem including version bumps, changelog updates, tagging, and gem publishing. Use when preparing a release or checking release readiness.

Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Open source maintenance, Feature launches and release readiness and Changelog and release notes. It works with Ruby and Git. The repository describes itself as: Ruby/Git is a Ruby library that can be used to create, read and manipulate Git repositories by wrapping system calls to the git binary. The licence is MIT.

When your agent uses it

  • Preparing a release
  • Checking release readiness

Example prompts

  • “Use the release-management skill to prepare and publishes new releases of the ruby-git gem including version bumps, changelog updates, tagging, and…”
  • “/release-management”

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Developers merge PRs with conventional commit messages into a release
  2. release-please automatically opens (and keeps updated) a release PR that
  3. When a maintainer merges the release PR, release-please creates a **GitHub
  4. The workflow then publishes the gem to RubyGems.org via rubygems/release-gem

What it can do on your machine

Read from SKILL.md and the folder at commit f3bf20f. 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
    • bundle
    • gem
    • gh
    • ruby
    • jq

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

  • Network

    Links to these hosts (documentation or services it may open):

    • github.com

    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 Management loads about 3.1k tokens when it runs. Until then it costs about 52 tokens; SKILL.md has 1,521 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~52
When it runs · the whole SKILL.md, loaded when a task matches
~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 ruby-git/ruby-git at commit f3bf20f, republished under its MIT licence (© ruby-git). 1,521 words, ~3,107 tokens.

Download SKILL.mdSave it as .claude/skills/release-management/SKILL.md (or your agent's skills folder).
name
release-management
description
Prepares and publishes new releases of the ruby-git gem including version bumps, changelog updates, tagging, and gem publishing. Use when preparing a release or checking release readiness.

Release Management Workflow

This workflow describes how releases are managed for the ruby-git gem.

Contents

How to use this skill

Attach this file to your Copilot Chat context when preparing a release, verifying release readiness, or answering questions about versioning and publishing flow.

How Releases Work

Releases are fully automated via release-please and the .github/workflows/release.yml workflow:

  1. Developers merge PRs with conventional commit messages into a release branch: main for the next major, or a maintenance branch such as 5.x or 4.x for a patch or minor release of an earlier series
  2. release-please automatically opens (and keeps updated) a release PR that bumps lib/git/version.rb and regenerates CHANGELOG.md
  3. When a maintainer merges the release PR, release-please creates a GitHub release with a tag
  4. The workflow then publishes the gem to RubyGems.org via rubygems/release-gem

Key config files:

FilePurpose
.release-please-config.jsonRelease-please settings (release type, changelog sections, versioning strategy)
.release-please-manifest.jsonTracks the current released version
lib/git/version.rbVersion constant (updated automatically by release-please)
CHANGELOG.mdRelease history (updated automatically by release-please)

prerelease is false, so release-please never proposes a beta and every release is a normal release. The config also sets bump-minor-pre-major: true and bump-patch-for-minor-pre-major: true, which affect version bumps only while the major version is 0.

Developer Responsibilities

The only thing developers need to do for releases is use conventional commit messages. release-please determines the version bump from commit types:

  • fix: → patch bump
  • feat: → minor bump
  • feat!: or BREAKING CHANGE: footer → major bump

Everything else (version bump, changelog, tag, gem push) is automated. Do not manually edit lib/git/version.rb or CHANGELOG.md.

Checking Release Readiness

Before a maintainer merges a release PR:

  1. Ensure CI passes on the release branch (main, 5.x, or 4.x):

    bash
    bundle exec rake default
  2. Review unreleased changes since last tag:

    bash
    git log $(git describe --tags --abbrev=0)..HEAD --oneline
  3. Check for open blockers:

    bash
    gh issue list --label "bug" --state open
  4. Review the release PR — verify the auto-generated changelog and version bump look correct.

  5. Retire the release banner — if README.md opens with a banner announcing this major's .0.0 release and the release PR is the major's first minor, merge a docs PR that removes the banner before merging the release PR. The banner announces the major; once the series has a minor, the dated announcement entry carries the history.

Cutting a maintenance branch

main becomes the release line for the next major as soon as the first removal merges (ADR-0007), which can be long before that major ships. Cut the maintenance branch for the current major at that point, not after the major release, so the series can keep releasing while main is pinned to the next major.

The cut is two pull requests, one into each branch, because each branch runs its own copy of the workflows. Both carry the same docs commit: write it once, cherry-pick it onto the other branch, and cherry-pick it again whenever review changes it on either side, so the two branches say the same thing. Merge the main PR first so the pin is in place before anything else lands on main. Below, <N> is the major being cut, <N+1> the major main will release next, and <M> the major of the maintenance branch that already exists.

On main:

  • Add a README announcement entry dated the cut day: every further v<N>.x release comes from the new branch, and the next release from main is v<N+1>.0.0.
  • Put a development note at the top of README.md, replacing the release banner if one is still there: main is unreleased v<N+1>.0.0 development, the current release series is v<N>.x, released from the new branch, and the "Upgrading to v<N+1>.x" section of UPGRADING.md says what changes. Name the series, not a tag: later v<N>.x releases do not touch main, so a tag in the note would go stale. This goes on a main-only commit, never on the shared docs commit: the new branch keeps whatever README.md opened with at the branch point.
  • Pin the next release from main to the next major with a Release-As: <N+1>.0.0 footer on the announcement commit. Without the pin, the first commit merged to main after the cut has release-please open a release PR for the next v<N> patch or minor from main, colliding with the release stream on the new branch. release-please reads the footer from any commit since the last tag, so the pin holds until the major ships and then expires on its own. The footer goes on a main-only commit and never on the shared docs commit, which is cherry-picked onto the new branch and would pin that branch's next release to the major too. Do not use the release-as key in .release-please-config.json instead: it applies to every release PR until someone remembers to remove it.

On the new branch:

  • Create the branch <N>.x from the latest tag of that major and protect it with a ruleset named Release Branch (<N>.x), copied from Release Branch (default). The copy requires the same status checks as main. Until the next item lands, the only PR that can satisfy them is that item's own, whose head carries the triggers.
  • Add the branch to the push trigger and the release job guard in release.yml, to the pull_request triggers in continuous_integration.yml and enforce_conventional_commits.yml, and to the push trigger in warm_bundler_caches.yml, all under .github/workflows/. The workflow that runs is the one on the branch pushed to or targeted, and a Bundler cache is readable only from the ref that wrote it, its base ref, and the default branch, so the copies on main need no change.
  • Expect release-please to open a release PR from the new branch as soon as this PR merges. No commit type is hidden in .release-please-config.json, so the workflow and docs commits alone propose the next patch. Leave that release PR open until the series has something worth releasing, or merge it.

On both, in the shared docs commit:

  • Name the new branch beside the existing maintenance branch everywhere that one is listed: the branch tables in .github/copilot-instructions.md and CONTRIBUTING.md, the release support policy in README.md, the protected branch list in .husky/pre-commit, and the skills that list the protected branches. grep -rn '<M>\.x' .github .husky CONTRIBUTING.md README.md, with the existing maintenance branch's major in place of <M>, finds them all.
Show full SKILL.md (438 more words)Show less

Major release readiness

Before merging the release PR for a major version, run Checking Release Readiness, then confirm each item below. The per-PR removal gate lives in Breaking Change Analysis, Step 4 and is checked when each removal PR merges, not here.

  • Version floors are updated everywhere they are set: required_ruby_version in git.gemspec, TargetRubyVersion in .rubocop.yml, the CI workflow matrices under .github/workflows/, Git::MINIMUM_GIT_VERSION in lib/git.rb, the README "Ruby version support policy" and "Git version support policy" subsections, and the Compatibility list in Project Context. Include any RuboCop cleanup a TargetRubyVersion bump triggers.
  • ADR-0004 audit: the options the new git floor kills are deprecated in this major (ADR-0004).
  • Carried deprecations, if any, have their warning text, @deprecated YARD tag, and UPGRADING.md entry updated to name the major the roadmap decided for them, or "a future major release" while that is undecided, and the horizon passed to ActiveSupport::Deprecation.new in lib/git.rb is bumped to the next major.
  • The "Upgrading to vN.0.0" section of UPGRADING.md is complete.
  • README examples use no removed APIs.
  • The changelog preview in the release PR reads correctly and every removal commit carries a BREAKING CHANGE footer.
  • The development note at the top of README.md is replaced with a release banner naming the new major and linking to UPGRADING.md and CHANGELOG.md, in a docs PR merged before the release PR. README.md ships in the gem and on RubyDoc, so a banner added after the release never reaches the major's own artifact. The major's first minor release removes the banner; see Checking Release Readiness.

After a major release

  • Add a README announcement entry dated the release day.
  • Support for the oldest maintenance branch ends with this release (see the release support policy in README.md). Retire it everywhere it is named. In the workflow triggers and release job guard under .github/workflows/, replace it with the newer maintenance branch, which the cutting step left out of the copies on main. Everywhere else the newer branch is already listed, so remove the retired one: the branch tables in .github/copilot-instructions.md and CONTRIBUTING.md, the release support policy in README.md, the protected branch list in .husky/pre-commit, and the skills that list the protected branches. grep -rn '<M>\.x' .github .husky CONTRIBUTING.md README.md, with the retired branch's major in place of <M>, finds them all.
  • Close the milestone and update the roadmap issue.

What NOT to Do

  • Do not manually bump lib/git/version.rb — release-please does this
  • Do not manually edit CHANGELOG.md — it is auto-generated from commits
  • Do not manually create tags — release-please creates them on merge
  • Do not manually gem push — the workflow handles publishing
  • Do not force-push or rebase the release PR — release-please manages it

Useful Commands

bash
# View recent tags
git tag -l --sort=-v:refname | head -10

# List commits since last release
git log $(git describe --tags --abbrev=0)..HEAD --oneline

# Compare with previous release
git diff $(git describe --tags --abbrev=0)..HEAD

# Check current version
ruby -e "require_relative 'lib/git/version'; puts Git::VERSION"

# View release-please config
cat .release-please-config.json | jq .

# Build gem locally (for testing only)
bundle exec rake build
gem install pkg/git-*.gem

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

Files

Just SKILL.md in .github/skills/release-management of ruby-git/ruby-git.

Open the folder on GitHubat commit f3bf20f

Compare with similar skills

Release Management 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 Management compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Release Management this skillruby-git/ruby-git1.8k—~3.1kAutomated safety check: PassMIT
Contributor-First PR MergeHKUDS/OpenHarness16k1 repos~847Automated safety check: PassMIT
Mole Release Notes Publishertw93/Mole69k—~1.9kAutomated safety check: PassGPL-3.0
Release Bumpjamiepine/voicebox57k—~1.1kAutomated safety check: PassMIT
Git Workflow and Versioningaddyosmani/agent-skills102k2 repos~3.5kAutomated safety check: NotesMIT
Chatbox Pro Cherry-Pick Syncchatboxai/chatbox42k—~1.2kAutomated safety check: PassGPL-3.0

Similar skills

  • Merges external GitHub pull requests while keeping the original author credited, and fixes conflicts after the merge instead of rewriting the contribution.

    16k GitHub starsUsed in 1 repo~847 tokens
    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.

    69k 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 today
    DevelopmentAuto-check passed
  • Git Workflow and Versioning

    addyosmani/agent-skills

    Sets git habits for every change: short-lived branches, atomic commits with descriptive messages, clean pull requests, plus versioning, tagging and changelogs for releases.

    102k GitHub starsUsed in 2 repos~3.5k tokens
    DevelopmentAuto-check: notes
  • Cherry-picks commits from the chatbox-pro repo into the open chatbox repo, skipping mobile-only files and keeping the open package name.

    42k GitHub stars~1.2k tokensUpdated 13 days ago
    DevelopmentAuto-check passed
  • Official

    Prepares a go-redis release locally: picks the next semver, gathers merged PRs, writes the RELEASE-NOTES entry and bumps versions, without publishing.

    22k GitHub stars~1.1k tokensUpdated yesterday
    DevelopmentAuto-check passed

More from ruby-git/ruby-git

All 30 skills in this repo
  • Addresses unresolved pull request review threads and suppressed (low-confidence) Copilot review comments on the current branch, folds each fix into the…

    1.8k GitHub stars~657 tokensUpdated 6 days ago
    Auto-check passed
  • Breaking Change Analysis

    ruby-git/ruby-git

    Assesses what an API change would break before it is made, finds every usage, documents the impact and plans a deprecation or migration path.

    1.8k GitHub stars~1.7k tokensUpdated 6 days ago
    Auto-check passed
  • Diagnoses and fixes failing GitHub Actions runs by identifying the failure, fetching only the relevant logs, finding the root cause and reproducing it locally.

    1.8k GitHub stars~1.9k tokensUpdated 6 days ago
    Auto-check passed
  • Scaffolds and reviews `Git::Commands::*` classes in the ruby-git library, with unit tests, integration tests and YARD docs, using the Base command architecture.

    1.8k GitHub stars~3k tokensUpdated 6 days ago
    Auto-check passed
  • Gem Dependency Management

    ruby-git/ruby-git

    Workflow for updating gem dependencies and fixing CVEs in the ruby-git project: assess with bundle outdated and audit, edit the gemspec, test, then commit with conventional messages.

    1.8k GitHub stars~806 tokensUpdated 6 days ago
    Auto-check passed
  • Migrates a direct command call in Ruby Git's Git::Lib to a Git::Commands class, as part of a Strangler Fig redesign, with a plan, legacy tests and a pull request.

    1.8k GitHub stars~4.4k tokensUpdated 6 days ago
    Auto-check passed

Works with

Questions about Release Management

What does Release Management do?

Prepares and publishes new releases of the ruby-git gem including version bumps, changelog updates, tagging, and gem publishing. Release Management is an agent skill from ruby-git/ruby-git. Prepares and publishes new releases of the ruby-git gem including version bumps, changelog updates, tagging, and gem publishing.

When should I use Release Management?

Release Management fits situations like: preparing a release; checking release readiness.

How do I install Release Management in Claude Code?

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

How do I install Release Management in Codex?

Run `npx skills add ruby-git/ruby-git --skill release-management -a codex`. Or copy the skill folder (.github/skills/release-management in ruby-git/ruby-git) into .agents/skills/release-management in your project. Codex loads it when a task matches its description.

Can I use Release Management 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 ruby-git/ruby-git --skill release-management -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-management, .gemini/skills/release-management, .github/skills/release-management and .opencode/skills/release-management in your project.

What does Release Management need to run?

Going by SKILL.md and its folder, Release Management needs the command-line tools its instructions call (git, bundle, gem, gh, ruby and jq).

Does Release Management access the network?

SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.

Is Release Management 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 Management use?

Release Management 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 Management use?

About 3.1k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Release Management?

Skills that share tags, products or a category with Release Management: Contributor-First PR Merge (HKUDS/OpenHarness, 16k stars), Mole Release Notes Publisher (tw93/Mole, 69k stars), Release Bump (jamiepine/voicebox, 57k stars) and Git Workflow and Versioning (addyosmani/agent-skills, 102k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Release Management?

ruby-git (a GitHub organization) maintains it in ruby-git/ruby-git, which has 1,799 GitHub stars. The repository holds 30 skills in this directory. The repository was last updated on October 2, 2026.

Source: ruby-git/ruby-git on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.