From skrrt-skills
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".
How this skill is triggered — by the user, by Claude, or both
Slash command
/skrrt-skills:release [release-goal][release-goal]The summary Claude sees in its skill listing — used to decide when to auto-load this skill
> Skill instructions for preparing release text and publishing releases with the matching forge CLI.
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.
git must be installed and available on PATH.gh is required for GitHub remotes.glab is required for GitLab remotes.permissions.ask for
mutating git and forge commands, including force-push variants.Before any release command, run:
bash "${CLAUDE_SKILL_DIR}/scripts/detect-forge-cli.sh"
Only continue when:
FORGE=github and MATCHED_CLI=gh, orFORGE=gitlab and MATCHED_CLI=glabIf the repository forge and installed CLI do not match, stop and report the mismatch.
/setup and stop.main or the tag points to a main commit.
If the current branch is not main, switch to main and pull the latest before
tagging or publishing.release/* branch has been merged to main. If the sync-back
PR to develop has not been opened, remind the user to open one using /pr.CHANGELOG.md, Changelog.md,
or changelog.md.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 to main before tagging)git pull origin <branch> (for syncing main before 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'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>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:
feat usually maps to ✨ Features.fix usually maps to 🐛 Fixes.⚠️ Breaking Changes section.docs, chore, ci, build, and purely internal refactors usually belong
in 🧰 Internal only when they matter to release readers.CHANGELOG.md, Changelog.md, or changelog.md exists, update it as part of the release workflow.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:
main. Verify the tag points to
a commit on main before proceeding.release/* → main promotion flow:
release/* branch has been merged to main via PR.main and create the release with release notes.develop using /pr if not
already done.
If the release/* branch has not been merged to main yet, stop and tell the user to
open a PR from the release branch to main first using /pr.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.
unknown-remote, no-remote, or no-compatible-cli.git push --force, git push -f, or git push --force-with-lease as part of the release flow.Handle this request: $ARGUMENTS
npx claudepluginhub skrrt-sh/skillsCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.