Install the "github-release" agent skill from https://github.com/github/awesome-copilot/tree/main/skills/github-release into .claude/skills/github-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "github-release", then confirm the skill loads.
Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Type this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
skills CLI
$ npx skills add github/awesome-copilot --skill github-release -a codex
Project install goes to .agents/skills/; add -g for ~/.codex/skills/.
Install the "github-release" agent skill from https://github.com/github/awesome-copilot/tree/main/skills/github-release into .agents/skills/github-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "github-release", then confirm the skill loads.
Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add github/awesome-copilot --skill github-release -a cursor
Project install goes to .agents/skills/; add -g for ~/.cursor/skills/.
Install the "github-release" agent skill from https://github.com/github/awesome-copilot/tree/main/skills/github-release into .cursor/skills/github-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "github-release", then confirm the skill loads.
Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
skills CLI
$ npx skills add github/awesome-copilot --skill github-release -a gemini-cli
Project install goes to .agents/skills/; add -g for ~/.gemini/skills/.
Install the "github-release" agent skill from https://github.com/github/awesome-copilot/tree/main/skills/github-release into .gemini/skills/github-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "github-release", then confirm the skill loads.
Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Installs for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
skills CLI
$ npx skills add github/awesome-copilot --skill github-release -a github-copilot
Project install goes to .agents/skills/; add -g for ~/.copilot/skills/.
Install the "github-release" agent skill from https://github.com/github/awesome-copilot/tree/main/skills/github-release into .github/skills/github-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "github-release", then confirm the skill loads.
GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add github/awesome-copilot --skill github-release -a opencode
OpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
Install the "github-release" agent skill from https://github.com/github/awesome-copilot/tree/main/skills/github-release into .opencode/skills/github-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "github-release", then confirm the skill loads.
OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Facts
Skill name
github-release
GitHub stars
40k
Used in
1 other repo
Token cost
~3.6k tokens
SKILL.md length
1,554 words
Files
3 (incl. references)
Skills in repo
417
Repo updated
First seen
Licence
MIT
At a glance
Guides IA through releasing a new version of a GitHub library end-to-end.
Works in 9 steps: Ensure main is up to date → Grab the latest version tag → Analyse what changed since the last… → …
Tasks that involve Changelog and release notes
SKILL.md covers When to Use This Skill, Prerequisites, The 9-Step Release Workflow and Error handling, plus 3 more sections
Calls git and gh; reaches github.com
What it does
GitHub Release is an agent skill from github/awesome-copilot, published by the product's own GitHub organization. Guides IA through releasing a new version of a GitHub library end-to-end. Handles SemVer versioning and Keep a Changelog formatting automatically.
Its SKILL.md is about 3.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/commit-classification.md` and `references/semver-rules.md`). Compatibility notes: requires: gh CLI and git
It sits in Development, covering Changelog and release notes. It works with GitHub and Git. The repository describes itself as: Community-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot. The licence is MIT.
When your agent uses it
Tasks that involve Changelog and release notes
Example prompts
“Use the github-release skill to guide IA through releasing a new version of a GitHub library end-to-end”
“/github-release”
Requirements
Compatibility (from SKILL.md): requires: gh CLI and git
Workflow steps
9 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 727ff2e. 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
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:
github.com
Also links to:
keepachangelog.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.
Compatibility
requires: gh CLI and git
From compatibility in the SKILL.md frontmatter.
Context cost
GitHub Release loads about 3.6k tokens when it runs, and up to ~5.1k if it reads all its reference files. Until then it costs about 40 tokens; SKILL.md has 1,554 words of instructions outside code blocks.
Always· name and description, kept in context so the agent knows when to use it
~40
When it runs· the whole SKILL.md, loaded when a task matches
~3.6k
With references· SKILL.md plus every file in references/, read only if the agent opens them
~5.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.
Download SKILL.mdSave it as .claude/skills/github-release/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
github-release
description
Guides IA through releasing a new version of a GitHub library end-to-end. Handles SemVer versioning and Keep a Changelog formatting automatically.
compatibility
requires: gh CLI and git
GitHub Release Skill
This skill automates the full release workflow for a single-package GitHub repository,
from analysis through changelog authoring and PR creation. It relies exclusively on
gh (GitHub CLI) and git no other tools needed.
Steps 1 - 4 are read-only reconnaissance nothing is written to the repo until
Step 5, once the version number is confirmed.
When to Use This Skill
Use this skill whenever the user wants to cut a new release, publish a new version,
bump a version, create a release branch, generate a changelog, or open a release PR
on a GitHub repository. Trigger even if the user says something casual like "let's
ship a new version" or "time to release".
Prerequisites
Examples below include both Bash and PowerShell variants; Windows users should prefer
the PowerShell blocks.
Before starting, verify the environment:
bash
gh auth status # must be authenticated
gh repo view --json nameWithOwner # must be inside a GitHub repo
git status # working tree should be clean
If any check fails, stop and tell the user what to fix before continuing.
Then ask the user one question:
"Which directory contains your library's public-facing source code?
(e.g. src/, lib/, pkg/ - used to focus the diff on what consumers
actually see. Press Enter to scan the whole repo.)"
Store the answer as PUBLIC_PATH. If empty, PUBLIC_PATH is . (repo root).
Exclude these paths from all diffs regardless: tests/, test/, spec/,
__tests__/, docs/, *.lock, *-lock.json, *.sum, generated files
(files with a "do not edit" header comment), and build artefacts.
The 9-Step Release Workflow
Work through every step in order. Show the user what command you're about to run and
its output. Pause and ask for confirmation only when explicitly noted.
Step 1 - Ensure main is up to date
bash
git checkout main
git pull origin main
Stay on main for now. The release branch is created in Step 5, after the version
is confirmed.
Step 2 - Grab the latest version tag
Why not gh release list? GitHub Releases are an optional layer on top of Git
tags. Many repos tag releases with git tag without ever creating a GitHub Release,
so gh release list can return empty even when version tags exist. Reading tags
directly from git is the reliable source of truth.
bash
# Fetch all tags from remote to ensure local view is current
git fetch --tags
# Find the latest version tag, sorted semantically
# --sort=-version:refname handles 1.10.0 > 1.9.0 correctly (unlike alphabetical)
PREV_TAG=$(git tag --sort=-version:refname | grep -E '^v?[0-9]+\.[0-9]+\.[0-9]+' | head -1)
echo "Latest tag: $PREV_TAG"
PowerShell
# Fetch all tags from remote to ensure local view is current
git fetch --tags
# Find the latest version tag, sorted semantically
# --sort=-version:refname handles 1.10.0 > 1.9.0 correctly (unlike alphabetical)
$prevTag = git tag --sort='-version:refname' | `
Select-String '^[vV]?\d+\.\d+\.\d+' | `
Select-Object -First 1 -ExpandProperty Line
if ($prevTag) {
$prevSha = git rev-list -n 1 $prevTag
} else {
$prevSha = git rev-list --max-parents=0 HEAD
}
Write-Output "Latest tag: $prevTag"
Then verify the tag exists on the remote (not just locally):
If the remote check returns nothing, warn the user that the tag appears to be local-only
and hasn't been pushed - they may want to push it before continuing.
PREV_TAG is the tag name exactly as found (e.g. v1.4.2). Strip any leading v
when doing arithmetic; preserve it when naming things.
If no tags exist at all, treat PREV_TAG as (none), set PREV_SHA to the
first commit, and default the new version to 1.0.0 (skip Step 4 versioning logic;
go straight to Step 5).
If the tag does not point to a real commit (orphaned tag), fall back to
git rev-list --max-parents=0 HEAD and warn the user.
Focus your detailed reading on files with the most changes and files whose names
suggest they define public interfaces (e.g. index.*, api.*, exports.*,
public.*, mod.*, __init__.*).
3b - Commit log (secondary signal)
bash
git log "$PREV_SHA"..HEAD --oneline --no-merges
Use this to:
Understand the intent behind code changes that aren't self-explanatory from
the diff alone (e.g. a one-line security fix labelled as such).
Catch changes that may be in paths outside PUBLIC_PATH but are still user-visible
(e.g. a CLI flag change in a cmd/ directory).
Fill in context for changelog entries where the code alone doesn't tell the whole
story.
See references/commit-classification.md for mapping message patterns to change types.
3c - Reconcile the two signals
When signals agree ? use that classification with confidence.
When signals conflict ? prefer the code diff. Examples:
Commit says fix: typo but the diff shows a removed public method ? treat as MAJOR.
Commit says feat: new API but the diff only touches private internals ? treat as PATCH.
Commit says chore: refactor but the diff adds new exported symbols ? treat as MINOR.
Document any conflicts you notice - flag them to the user during the changelog review
in Step 6.
Step 4 - Determine the next SemVer version
Apply these rules to your analysis from Step 3 (full rules in references/semver-rules.md):
Condition
Bump
Any breaking change to public API (removal, signature change, behaviour change)
MAJOR
New exported symbol or feature, no breaking changes
MINOR
Bug fix, perf improvement, security fix, docs, chore only
PATCH
When a release contains a mix, the highest precedence wins:
MAJOR > MINOR > PATCH.
Compute NEXT_VERSION:
Split PREV_TAG into MAJOR.MINOR.PATCH integers.
Apply the appropriate bump.
Format as vMAJOR.MINOR.PATCH.
Present the proposed version to the user with a brief rationale that cites
specific code findings, not just commit messages. Example:
"I'm proposing v2.1.0. The diff shows two new exported functions (NewClient and
WithTimeout) in src/client.go, and no existing public symbols were removed or
changed. Commit messages corroborate this as feature additions."
Ask: "Does this version look right, or would you like to adjust it?"
Wait for confirmation before proceeding.
Show full SKILL.md (603 more words)Show less
Step 5 - Create the release branch
Now that the version is confirmed, create the branch with the correct name from the start:
Omit sections that have no entries - don't leave empty headings.
Write entries in plain English from a user's perspective, derived primarily
from what the code diff shows, supplemented by commit message context.
Good: "Added WithTimeout option to HTTP client constructor."
Bad: "feat: add timeout cfg param"
Map findings to sections:
New exported symbol ? Added
Breaking removal ? Removed
Breaking change to existing API ? Changed (flag it as breaking)
Bug/logic fix, perf ? Fixed
Security fix ? Security
Internal refactor, docs, chore, test ? omit unless user-visible
If a commit message revealed intent that the code diff alone wouldn't convey
(e.g. a security fix disguised as a one-line change), include that context in
the changelog entry.
Also update the diff link at the bottom of the file:markdown
Show the user the proposed changelog section before writing it to disk.
If any signal conflicts were found in Step 3c, flag them here so the user can verify.
Ask: "Does this changelog look accurate? Any entries to add, remove, or reword?"
Incorporate feedback, then write to disk.
?? IMPORTANT: Always use --body-file to pass PR body text, never --body with inline text.
Inline escape sequences like \n are not interpreted as newlines by PowerShell and will appear
as literal text in the PR. Using a file ensures proper markdown formatting.
bash
gh pr create \
--base main \
--head release/vX.Y.Z \
--title "Release vX.Y.Z" \
--body "$(cat <<'EOF'
## Release vX.Y.Z
This PR prepares the **vX.Y.Z** release.
### What's included
<!-- paste the changelog section here -->
### Checklist
- [ ] Changelog reviewed
- [ ] Version bump verified
- [ ] CI passing
After merging, create the tag on the merge commit:
\`\`\`
git tag vX.Y.Z <merge-commit-sha>
git push origin vX.Y.Z
\`\`\`
EOF
)"
PowerShell
# Create PR body using here-string (preserves actual newlines, not escape sequences)
$prBody = @"
## Release vX.Y.Z
This PR prepares the **vX.Y.Z** release.
### What's included
<paste changelog here>
### Checklist
- [ ] Changelog reviewed
- [ ] Version bump verified
- [ ] CI passing
After merging, create the tag on the merge commit:
```
git tag vX.Y.Z <merge-commit-sha>
git push origin vX.Y.Z
```
"@
# Write to file and use --body-file (do NOT use inline --body with escape sequences)
$prBody | Out-File -FilePath release_pr_body.md -Encoding utf8 -NoNewline
gh pr create --base main --head release/vX.Y.Z --title "Release vX.Y.Z" --body-file release_pr_body.md
Paste the changelog section into the PR body's "What's included" block (or leave placeholder for manual review).
Step 9 - Hand off to the user
Tell the user:
Release PR is open! ??
New version: vX.Y.Z
Once the PR is reviewed and merged, you'll need to create the tag yourself on
the merge commit:
bash
git tag vX.Y.Z <merge-commit-sha>
git push origin vX.Y.Z
Then go to GitHub Releases and publish the release from that tag. You can copy the
changelog section directly into the release notes.
Error handling
Situation
What to do
gh auth status fails
Stop; tell user to run gh auth login
Not inside a git repo
Stop; tell user to cd into their repo
Working tree is dirty
Warn; ask if they want to stash or abort
No commits since last tag
Tell user there's nothing to release
Tag exists but points to no commit
Use first commit as diff base; warn user
Latest tag exists locally but not on remote
Warn user; ask if they want to push the tag first or continue anyway
Diff is empty for PUBLIC_PATH but commits exist
Warn; all changes may be internal; ask if they still want to proceed
git push fails (e.g. protected branch rules)
Report the error verbatim; suggest they check branch protection settings
Troubleshooting in PowerShell
If a command that works locally prints gh usage or treats a subcommand as separate token, ensure you're
invoking the gh.exe on PATH (Get-Command gh) and avoid passing unexpanded nested substitutions; use the PowerShell
patterns above.
Recommend tests: gh --version; git fetch --tags; run the PowerShell snippet to set $prevTag and run git diff --name-only $prevSha..HEAD -- src/
Limitations
Requires the gh CLI to be installed and authenticated.
Requires git tags to determine current version.
Reference files
references/semver-rules.md - Extended SemVer decision rules and edge cases
references/commit-classification.md - Heuristics for classifying commit messages into change types
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in github/awesome-copilot, which our catalogue first saw on October 7, 2026.
GitHub 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.
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.
Ends a release cycle by moving the Unreleased changelog notes under a dated version heading, bumping version files with bumpversion and tagging the commit.
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.
Maps an unfamiliar codebase into seven evidence-backed documents in docs/codebase/, using a scan script and templates, for onboarding or architecture write-ups.
Designs Azure infrastructure from a natural-language description, or diagrams an existing resource group, then refines the design through conversation and deploys it with Bicep.
Cleans raw credit data and screens variables before loan modeling, dropping unstable, noisy or redundant features and writing an Excel report of every step.
Builds a warm, browser-based daily focus board the user updates by talking to their agent, with Eisenhower priorities, a brain-dump box and kind not-today carryover.
Guides IA through releasing a new version of a GitHub library end-to-end. GitHub Release is an agent skill from github/awesome-copilot, published by the product's own GitHub organization. Guides IA through releasing a new version of a GitHub library end-to-end.
When should I use GitHub Release?
GitHub Release fits situations like: tasks that involve Changelog and release notes.
How do I install GitHub Release in Claude Code?
Run `npx skills add github/awesome-copilot --skill github-release -a claude-code`. Or copy the skill folder (skills/github-release in github/awesome-copilot) into .claude/skills/github-release in your project. Claude Code loads it when a task matches its description.
How do I install GitHub Release in Codex?
Run `npx skills add github/awesome-copilot --skill github-release -a codex`. Or copy the skill folder (skills/github-release in github/awesome-copilot) into .agents/skills/github-release in your project. Codex loads it when a task matches its description.
Can I use GitHub 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 github/awesome-copilot --skill github-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/github-release, .gemini/skills/github-release, .github/skills/github-release and .opencode/skills/github-release in your project.
What does GitHub Release need to run?
Going by SKILL.md and its folder, GitHub Release needs the command-line tools its instructions call (git and gh). Compatibility (from SKILL.md): requires: gh CLI and git.
Does GitHub Release access the network?
SKILL.md names 2 domains. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. As links in the text: keepachangelog.com. This is read from the text; nothing was executed.
Is GitHub 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 GitHub Release use?
GitHub 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 GitHub Release use?
About 3.6k tokens (SKILL.md is roughly 14k 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.5k tokens, read only when the agent opens those files.
What are the alternatives to GitHub Release?
Skills that share tags, products or a category with GitHub Release: Draft Release Notes (jamiepine/voicebox, 57k stars), Mole Release Notes Publisher (tw93/Mole, 69k stars), Release Bump (jamiepine/voicebox, 57k stars) and Verdaccio Pull Request Workflow (verdaccio/verdaccio, 18k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Who maintains GitHub Release?
github (a GitHub organization, an official publisher) maintains it in github/awesome-copilot, which has 39,748 GitHub stars. The repository holds 417 skills in this directory. The repository was last updated on October 7, 2026.
Source: github/awesome-copilot on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.