Release
Agent skills for markdown writing, conventional commits, PRs, and releases — works with Claude Code, Codex, Cursor, and 40+ agents
npx -y skills add skrrt-sh/skills --skill releaseAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Drafts and publishes GitHub or GitLab releases with curated release notes. Use when the agent needs to prepare release text, compare tags, summarize release changes, or create a release. Always use this skill when the user asks to create a release, draft release notes, publish a release, summarize changes for a version, update a changelog for a release, or anything involving GitHub or GitLab releases. Trigger for phrases like "release notes", "draft a release", "publish release", "create a release", "v1.x.x release", "what changed since last tag", or "prepare release text".
SKILL.md
7.3 KB, as published. Nobody here has run it
Git Release Skill
Skill instructions for preparing release text and publishing releases with the matching forge CLI.
This skill is reserved for release work. Use it only when the user asks for a release, a release draft, or release notes.
Requirements
gitmust be installed and available onPATH.ghis required for GitHub remotes.glabis required for GitLab remotes.- If the matching CLI is missing, stop and tell the user exactly what is missing.
- When the project uses agent permission settings, prefer
permissions.askfor mutating git and forge commands, including force-push variants.
Forge Detection
Before any release command, run:
bash "${CLAUDE_SKILL_DIR}/scripts/detect-forge-cli.sh"
Only continue when:
FORGE=githubandMATCHED_CLI=gh, orFORGE=gitlabandMATCHED_CLI=glab
If the repository forge and installed CLI do not match, stop and report the mismatch.
Workflow
- Check the branching strategy — read the branching block from the agent instruction file
(see "Branching Strategy Awareness" below). Determine the correct release flow before
proceeding. If no block is found, tell the user to run
/setupand stop. - Run the forge detection script.
- Validate the release context per the configured strategy:
- GitHub Flow / TBD: verify you are on
mainor the tag points to amaincommit. If the current branch is notmain, switch tomainand pull the latest before tagging or publishing. - Gitflow: verify the
release/*branch has been merged tomain. If the sync-back PR todevelophas not been opened, remind the user to open one using/pr.
- GitHub Flow / TBD: verify you are on
- Inspect tags and commit history to identify the release range.
- Check whether the repository has a changelog file such as
CHANGELOG.md,Changelog.md, orchangelog.md. - Summarize user-facing changes, fixes, and migration notes.
- Draft release text in the required house format.
- If a changelog file exists, update it for the new release before publishing.
- Create the release with the matched CLI only after the text is ready.
Git Command Subset
Stay within this git subset unless the user explicitly asks for more:
git tag --listgit describe --tags --abbrev=0git log --oneline <range>git diff --stat <range>git remote get-url origingit diff --name-only <range>git branch --show-currentgit branch --listgit switch <branch>(for switching tomainbefore tagging)git pull origin <branch>(for syncingmainbefore release)git branch --contains <commit>(to verify a commit is on a specific branch)git cherry-pick <commit>(only for TBD just-in-time release branch fixes)
Stay within this file-discovery subset unless the user explicitly asks for more:
rg --files -g 'CHANGELOG*.md'rg --files -g 'changelog*.md'
CLI Command Subset
For GitHub with gh:
gh release create <tag> --title <title> --notes-file <file>gh release view <tag>
For GitLab with glab:
glab release create <tag> --name <title> --notes-file <file>glab release view <tag>
Release Text Rules
- Make the title stable and version-oriented.
- Prefer a curated summary over raw commit logs.
- Group notable changes by theme using conventional-commit intent when possible.
- Include testing only if it is known.
- Include migration, rollout, or breaking-change notes when relevant.
- Add a compare link when the forge and previous tag are known.
- End the release text with the co-authorship line unless the user asks not to:
Co-Authored-By: Skrrt Bot <[email protected]>
Preferred structure:
## What's Changed
### ✨ Features
- ...
### 🐛 Fixes
- ...
### ⚠️ Breaking Changes
- ...
### 🧰 Internal
- ...
**Full Changelog**: <compare link>
Co-Authored-By: Skrrt Bot <[email protected]>
Section rules:
- Omit an empty section instead of filling it with noise.
featusually maps to✨ Features.fixusually maps to🐛 Fixes.- Breaking changes always get a dedicated
⚠️ Breaking Changessection. docs,chore,ci,build, and purely internal refactors usually belong in🧰 Internalonly when they matter to release readers.- Prefer reader-facing summaries over commit-message restatements.
Changelog Rules
- Always check for an existing changelog before publishing a release.
- If
CHANGELOG.md,Changelog.md, orchangelog.mdexists, update it as part of the release workflow. - If the changelog follows Keep a Changelog, preserve its structure and add the new version entry in the existing style.
- If the changelog does not follow Keep a Changelog, still preserve the repository's established style.
- Do not create a brand-new changelog unless the user asks for one.
- Keep the release text and changelog entry consistent, but adapt the changelog to the repository's existing format.
Branching Strategy Awareness
Before creating a release, check the project's agent instruction file for a
<!-- skrrt:branching --> block. Search these locations in order: CLAUDE.md, AGENTS.md,
.claude/CLAUDE.md, .github/AGENTS.md. If present, respect the configured strategy:
- GitHub Flow / Trunk-Based: Releases are created from tags on
main. Verify the tag points to a commit onmainbefore proceeding. - Gitflow: Releases follow the
release/*→mainpromotion flow:- Verify the
release/*branch has been merged tomainvia PR. - Tag the merge commit on
mainand create the release with release notes. - Remind the user to open a PR from the release branch to
developusing/prif not already done. If therelease/*branch has not been merged tomainyet, stop and tell the user to open a PR from the release branch tomainfirst using/pr.
- Verify the
If no branching strategy block is found, tell the user to run /setup to configure a branching
strategy before proceeding. Do not guess or assume a default release flow.
Guardrails
- Never create a release against an unknown forge.
- Never use the wrong CLI for the remote host.
- Never invent release notes from guesswork; derive them from tags, commits, diffs, and user context.
- Never publish a release silently when the user only asked for draft text.
- Stop if the detector reports
unknown-remote,no-remote, orno-compatible-cli. - Never skip updating an existing changelog for a real release unless the user explicitly asks you not to.
- Never use
git push --force,git push -f, orgit push --force-with-leaseas part of the release flow. - Treat release creation as a human-approval action when the project uses agent permission rules.
Task
Handle this request: $ARGUMENTS