Agent skill

Release

by rizsotto in rizsotto/Bear

Cut a release of Bear -- verify metadata, run the full check set, fast-forward to master, tag, and publish a GitHub release plus discussion announcement.

GPL-3.0Auto-check passedDevelopment

Install Release

skills CLI
$ npx skills add rizsotto/Bear --skill release -a claude-code

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

GitHub CLI
$ gh skill install rizsotto/Bear 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/rizsotto/Bear.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
6.5k
Token cost
~1.8k tokens
SKILL.md length
661 words
Files
1
Skills in repo
2
Repo updated
First seen
Licence
GPL-3.0

At a glance

Cut a release of Bear -- verify metadata, run the full check set, fast-forward to master, tag, and publish a GitHub release plus discussion announcement.

  • Works in 9 steps: Preconditions → Pre-flight checklist → Merge to master → …
  • The user asks to release
  • SKILL.md covers 1. Preconditions, 2. Pre-flight checklist, 3. Merge to master and 4. Tag, plus 6 more sections
  • Calls git, gh and cargo; reaches repology.org

What it does

Release is an agent skill from rizsotto/Bear. Cut a release of Bear -- verify metadata, run the full check set, fast-forward to master, tag, and publish a GitHub release plus discussion announcement. Use when the user asks to release, cut a version, tag a release, or ship a new Bear version.

Its SKILL.md is about 1.8k 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. It works with GitHub. The repository describes itself as: Generate compilecommands.json for any C or C++ build. The licence is GPL-3.0.

When your agent uses it

  • The user asks to release
  • Ship a new Bear version

Example prompts

  • “/release”

Requirements

  • Python 3

Workflow steps

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

  1. Preconditions
  2. Pre-flight checklist
  3. Merge to master
  4. Tag
  5. Push
  6. Draft release notes
  7. Publish the GitHub release
  8. Announce on the discussions thread
  9. Post-release

What it can do on your machine

Read from SKILL.md and the folder at commit 7238459. 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
    • gh
    • cargo
    • pandoc
    • curl
    • python3

    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:

    • repology.org

    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.8k tokens when it runs. Until then it costs about 64 tokens; SKILL.md has 661 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~64
When it runs · the whole SKILL.md, loaded when a task matches
~1.8k

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 rizsotto/Bear at commit 7238459, republished under its GPL-3.0 licence (© rizsotto). 661 words, ~1,843 tokens.

Download SKILL.mdSave it as .claude/skills/release/SKILL.md (or your agent's skills folder).
name
release
description
Cut a release of Bear -- verify metadata, run the full check set, fast-forward to master, tag, and publish a GitHub release plus discussion announcement. Use when the user asks to release, cut a version, tag a release, or ship a new Bear version.

Release Bear

This skill captures the release process. The goal is that running through it mechanically produces a tagged, published release with consistent metadata.

Replace X.Y.Z with the version being released (e.g. 4.1.2). The release branch is X.Y.Z-rc; the destination branch is master.

Pushing the tag and publishing the GitHub release are outward-facing and hard to undo. Drive the steps below and confirm with the user before any outward-facing action (the fast-forward to master, pushing the tag, creating the release, posting the announcement).

1. Preconditions

  • All work for the release is on X.Y.Z-rc, branched from master.
  • master has no commits the rc branch is missing:
    sh
    git fetch origin
    git log --oneline HEAD..origin/master   # must be empty
    If non-empty, rebase the rc branch onto master first.
  • Latest CI run on X.Y.Z-rc is green:
    sh
    gh run list --branch X.Y.Z-rc --limit 1

2. Pre-flight checklist

Run from the repo root on the rc branch:

sh
cargo fmt --check
cargo clippy --all-targets -- -D warnings
cargo build --verbose          # integration tests need a debug build
cargo test

All four must pass before tagging.

Then verify the release metadata:

ItemWhereCheck
Workspace versionCargo.toml ([workspace.package])matches X.Y.Z
Lockfile in syncCargo.lockbear, compilers-codegen, etc. show X.Y.Z; clean cargo build does not modify it
Man page dateman/bear.1.md line 3set to today (e.g. April 25, 2026)
Man page generatedman/bear.1regenerated from .md (see below)

If the man page date or content changed, regenerate bear.1:

sh
cd man && pandoc -s -t man bear.1.md -o bear.1

Commit any pre-flight fixups to X.Y.Z-rc and let CI run again.

3. Merge to master

Use a fast-forward merge to keep master's first-parent history linear, which is the convention the 4.x series follows.

sh
git checkout master
git pull --ff-only origin master
git merge --ff-only X.Y.Z-rc

Do not create a merge commit. If --ff-only fails, the rc branch is behind master - rebase it and start over.

4. Tag

Tags are unprefixed (4.1.2, not v4.1.2), annotated, and SSH-signed. The message body uses the v-prefixed form.

Verify your signing config once:

sh
git config --get gpg.format        # ssh
git config --get user.signingkey   # path or key starting with "key::"
git config --get tag.gpgsign       # true (recommended)

Then tag the merge tip:

sh
git tag -s X.Y.Z -m "vX.Y.Z"
git tag --verify X.Y.Z             # confirm signature is good

5. Push

sh
git push origin master
git push origin X.Y.Z

6. Draft release notes

Use prior releases as the template (gh release view 4.1.1). Sections, in order, when applicable:

  • ### Features
  • ### Bug Fixes
  • ### Performance
  • ### Internal Refactoring
  • ### Documentation
  • ### Closed Issues - bullet list of #NNN - one-line description
  • ### Thanks - issue reporters and external PR authors, by @handle; plus the downstream packagers currently shipping Bear, by name or @handle where known (see the repology command below). Packagers are chronically invisible volunteers - name them every release.
  • ### New Contributors - first-time contributors only

Commit subjects are not enough on their own. A refactor: or test: commit can still change something a user sees, typically the wording of a diagnostic or the shape of a log line, and its subject will not say so. Read the bodies, and read any rationale entry added since the previous tag: those record accepted user-visible costs in their Consequences section. Anything a user could have scripted against belongs in the notes even when no feature changed.

Trailer:

**Full Changelog**: https://github.com/rizsotto/Bear/compare/PREV...X.Y.Z

Useful inputs while drafting:

sh
# commit subjects since the previous tag
git log --pretty="%s" PREV..X.Y.Z

# rationale entries added since the previous tag; their Consequences
# sections name the user-visible deltas the subjects above will not
git log --diff-filter=A --name-only --pretty=format: PREV..X.Y.Z -- docs/rationale/

# external contributors since the previous tag
git log --pretty="%an <%ae>" PREV..X.Y.Z | sort -u

# issues closed since the previous tag
gh issue list --state closed --search "closed:>=YYYY-MM-DD" --limit 50

# PRs merged since the previous tag
gh pr list --state merged --search "merged:>=YYYY-MM-DD" --limit 50

# downstream packagers shipping the latest Bear (repology needs a User-Agent;
# "newest" entries are the repos that kept up with the previous release)
curl -s -A 'Bear-release-notes' 'https://repology.org/api/v1/project/bear-clang' |
    python3 -c "import json,sys; [print(p['repo'], p['version'], ', '.join(p.get('maintainers',[]))) for p in json.load(sys.stdin) if p.get('status')=='newest']"

Save the notes to a temporary file (e.g. /tmp/release-notes.md) - they are reused for the GitHub release and the discussion announcement.

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

7. Publish the GitHub release

sh
gh release create X.Y.Z \
    --title X.Y.Z \
    --notes-file /tmp/release-notes.md \
    --verify-tag

Use --draft first if you want to review the rendered output before it goes live, then gh release edit X.Y.Z --draft=false.

8. Announce on the discussions thread

The pinned thread for release announcements is https://github.com/rizsotto/Bear/discussions/399.

Keep the announcement short:

  • One-line summary linking to the release page.
  • Three to five highlight bullets.
  • Thanks to issue reporters and external contributors by @handle.
  • Invite users to open new issues for problems; the discussion thread is for general feedback.

Post with:

sh
gh api graphql -f query='
  mutation($id: ID!, $body: String!) {
    addDiscussionComment(input: {discussionId: $id, body: $body}) {
      comment { url }
    }
  }' -f id=DISCUSSION_NODE_ID -f body="$(cat /tmp/announcement.md)"

(Get DISCUSSION_NODE_ID once via gh api graphql -f query='{ repository(owner:"rizsotto",name:"Bear") { discussion(number:399) { id } } }'.)

Alternatively, paste through the web UI.

9. Post-release

  • Pin the announcement comment in discussion #399 if you typically do.
  • Verify the release page renders correctly and the tag signature is shown.
  • Notify downstream packagers if the release contains packaging-relevant changes (install layout, prerequisites, breaking flags). Past channels: Homebrew, Arch, Debian/Fedora maintainers.
  • Open a new branch <next>-rc when work for the next version begins, and bump Cargo.toml ([workspace.package].version) on that branch.

Conventions reference

ItemConvention
Release branch nameX.Y.Z-rc
Tag nameX.Y.Z (no v prefix)
Tag typeannotated, SSH-signed
Tag messagevX.Y.Z
GitHub release titleX.Y.Z
Merge stylefast-forward only
Version source of truthCargo.toml [workspace.package].version

© rizsotto, GPL-3.0. 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 .claude/skills/release of rizsotto/Bear.

Open the folder on GitHubat commit 7238459

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 skillrizsotto/Bear6.5k—~1.8kAutomated safety check: PassGPL-3.0
PR Babysitteropeninterpreter/openinterpreter69k3 repos~4.2kAutomated safety check: PassApache-2.0
Greplooponyx-dot-app/onyx32k4 repos~3.3kAutomated safety check: PassMIT
Check PRonyx-dot-app/onyx32k2 repos~2.3kAutomated safety check: PassMIT
Setup Matt Pocock Skillsbestofjs/bestofjs3.1k20 repos~1.7kAutomated safety check: PassMIT
Summarise Ecosystem Resultsastral-sh/ruff50k1 repos~2.2kAutomated safety check: PassMIT

Similar skills

  • PR Babysitter

    openinterpreter/openinterpreter

    Watches an open GitHub pull request until it merges, handling review comments, diagnosing CI failures and retrying flaky checks along the way.

    69k GitHub starsUsed in 3 repos~4.2k tokens
    DevelopmentAuto-check passed
  • Greploop

    onyx-dot-app/onyx

    Iteratively improves a PR (GitHub), MR (GitLab), or shelved changelist (Perforce) until Greptile gives it a 5/5 confidence score with zero unresolved comments.

    32k GitHub starsUsed in 4 repos~3.3k tokens
    DevelopmentAuto-check passed
  • Check PR

    onyx-dot-app/onyx

    Checks a GitHub, GitLab, or Perforce (p4) pull request (or merge request, or shelved changelist) for unresolved review comments, failing status checks, and incomplete PR descriptions.

    32k GitHub starsUsed in 2 repos~2.3k tokens
    DevelopmentAuto-check passed
  • Setup Matt Pocock Skills

    bestofjs/bestofjs

    Configure this repo for the engineering skills — set up its issue tracker, triage label vocabulary, and domain doc layout.

    3.1k GitHub starsUsed in 20 repos~1.7k tokens
    DevelopmentAuto-check passed
  • Official

    A skill your agent uses when a user says "summarise ecosystem results", "summarize this ty ecosystem report", "what changed in this ecosystem run?", or asks to summarise or summarize ty ecosystem…

    50k GitHub starsUsed in 1 repo~2.2k tokens
    DevelopmentAuto-check passed
  • 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

More from rizsotto/Bear

  • Requirements

    rizsotto/Bear

    Write, modify, or review a requirement file under docs/requirements -- pick the single owning file, keep the text contract-only, name IDs so they need no explanation, and verify cross-references and…

    6.5k GitHub stars~2k tokensUpdated yesterday
    Auto-check passed

Works with

Categories

Questions about Release

What does Release do?

Cut a release of Bear -- verify metadata, run the full check set, fast-forward to master, tag, and publish a GitHub release plus discussion announcement. Release is an agent skill from rizsotto/Bear. Cut a release of Bear -- verify metadata, run the full check set, fast-forward to master, tag, and publish a GitHub release plus discussion announcement.

When should I use Release?

Release fits situations like: the user asks to release; ship a new Bear version.

How do I install Release in Claude Code?

Run `npx skills add rizsotto/Bear --skill release -a claude-code`. Or copy the skill folder (.claude/skills/release in rizsotto/Bear) 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 rizsotto/Bear --skill release -a codex`. Or copy the skill folder (.claude/skills/release in rizsotto/Bear) 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 rizsotto/Bear --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, gh, cargo, pandoc, curl and python3). Our summary lists: Python 3.

Does Release access the network?

SKILL.md names 1 domain. In commands or code: repology.org; 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 GPL-3.0 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.8k tokens (SKILL.md is roughly 7.4k 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?

Skills that share tags, products or a category with Release: PR Babysitter (openinterpreter/openinterpreter, 69k stars), Greploop (onyx-dot-app/onyx, 32k stars), Check PR (onyx-dot-app/onyx, 32k stars) and Setup Matt Pocock Skills (bestofjs/bestofjs, 3.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Release?

rizsotto (a GitHub user) maintains it in rizsotto/Bear, which has 6,509 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on October 7, 2026.

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