Git Release
Drafts Keep-a-Changelog release notes, picks the semver bump, prints the gh release command
Test report
- Verdict
- Tested · Works
- Score
- Tested
- Jul 21, 2026
- Environment
- Claude Code 2.x (agent harness)
- Upstream re-checked
- Aug 10, 2026 · 40f0bb6
Cloned the repo (GitHub API was rate-limited) and found exactly one SKILL.md at .opencode/skills/git-release/; frontmatter parsed with name + description (158 chars) plus license/compatibility/metadata, no scripts or bundled files referenced, no hardcoded paths, and a grep for curl|sh, base64, eval and injection phrasing over the skill dir came back empty. Installed it under a mktemp HOME, never the real ~/.claude/skills (verified afterwards). For the output test I built a throwaway git repo at /tmp/gr-testrepo tagged v1.2.0 with six commits including `feat(cli)!: rename --out to --output` carrying a BREAKING CHANGE footer and one junk message "Update readme", then wrote baseline-notes.md without the skill and release-notes.md following the body strictly. Concrete difference: the baseline headed the file "# Release v1.3.0" and listed the rename under "New", missing the break entirely, while the skill artifact produced "## [2.0.0]" with a Removed section, the stated reason ("carries a `!` marker and a `BREAKING CHANGE:` footer"), a `gh release create v2.0.0 --notes-file release-notes.md` command, and it flagged "Update readme" as unreviewable instead of paraphrasing it into "Updated the readme" as the baseline did. Trigger phrasings I judged: SHOULD load — "Draft release notes for v2.0.0 from what's merged since the last tag", "I'm cutting a release tomorrow, is this a major or a minor bump?", "Prepare a GitHub release for this repo" (yes, yes, yes); should NOT — "Write a commit message for these staged changes" and "Set up a GitHub Actions workflow that publishes to npm on tag push" (no, no; both are commit/CI work, not release-note drafting). 5/5. Docs lose a point only because the skill is presented as the primer repo's one example skill with no per-skill README; what README.md and docs/skills.md claim about it matches the file.
Scored on four weighted criteria — install, triggering, output vs. baseline, docs. How scoring works
- Installs cleanly 5/5
- Triggers reliably 5/5
- Output vs. baseline 7/10
- Docs & honesty 4/5
What Git Release does
Turns the commits and merged PRs since the last git tag into a Keep-a-Changelog release-notes draft, proposes a semantic version bump (major on BREAKING CHANGE footers or `!` markers, minor on features, patch otherwise), and prints a ready-to-run `gh release create` command. Triggers when you ask to draft release notes, prepare a tagged GitHub release, or decide what version number a set of changes should get. It stops short of tagging or publishing until you confirm the bump, and flags non-conventional commit messages instead of inventing a summary for them.
How to install Git Release
git clone --depth 1 https://github.com/wesammustafa/opencode-primer.git /tmp/git-release-src
mkdir -p ~/.claude/skills
cp -R /tmp/git-release-src/.opencode/skills/git-release ~/.claude/skills/git-release
# Single-file skill (SKILL.md only), no scripts or deps to install.
# Frontmatter carries `compatibility: opencode`, but the folder is a standard
# Claude Code skill and loads unchanged from ~/.claude/skills/git-release/.
# Runtime expectation from the skill body: an authenticated `gh` CLI if you want
# it to read merged PR data and actually run the emitted release command.
# Without `gh` it still works off `git log <last-tag>..HEAD`.
# Usage: "draft release notes since the last tag" in a repo with at least one tag.
Skills live in ~/.claude/skills/ (global) or .claude/skills/
(per-project). Restart Claude Code after installing.
Commands — how to trigger Git Release
-
/git-releaseDrafts Keep-a-Changelog release notes, picks the semver bump, prints the gh release command
It also activates on plain-language prompts like these:
-
Draft release notes for this tagged release -
Propose the next semver bump for this release -
Prepare a gh release create command
Frequently asked questions
- Is the Git Release skill free?
- Yes. The skill itself is free from wesammustafa/opencode-primer. SkillProof publishes the install command and an independent test verdict at no cost.
- Does Git Release work with Claude Code?
- We tested it with Claude Code 2.x (agent harness) on Jul 21, 2026. Verdict: Tested · Works. Cloned the repo (GitHub API was rate-limited) and found exactly one SKILL.md at .opencode/skills/git-release/; frontmatter parsed with name + description (158 chars) plus license/compatibility/metadata, no scripts or bundled files referenced, no hardcoded paths, and a grep for curl|sh, base64, eval and injection phrasing over the skill dir came back empty. Installed it under a mktemp HOME, never the real ~/.claude/skills (verified afterwards). For the output test I built a throwaway git repo at /tmp/gr-testrepo tagged v1.2.0 with six commits including `feat(cli)!: rename --out to --output` carrying a BREAKING CHANGE footer and one junk message "Update readme", then wrote baseline-notes.md without the skill and release-notes.md following the body strictly. Concrete difference: the baseline headed the file "# Release v1.3.0" and listed the rename under "New", missing the break entirely, while the skill artifact produced "## [2.0.0]" with a Removed section, the stated reason ("carries a `!` marker and a `BREAKING CHANGE:` footer"), a `gh release create v2.0.0 --notes-file release-notes.md` command, and it flagged "Update readme" as unreviewable instead of paraphrasing it into "Updated the readme" as the baseline did. Trigger phrasings I judged: SHOULD load — "Draft release notes for v2.0.0 from what's merged since the last tag", "I'm cutting a release tomorrow, is this a major or a minor bump?", "Prepare a GitHub release for this repo" (yes, yes, yes); should NOT — "Write a commit message for these staged changes" and "Set up a GitHub Actions workflow that publishes to npm on tag push" (no, no; both are commit/CI work, not release-note drafting). 5/5. Docs lose a point only because the skill is presented as the primer repo's one example skill with no per-skill README; what README.md and docs/skills.md claim about it matches the file.
- What is the Git Release SkillProof Score?
- 8.4/10 — installs cleanly 5/5, triggers reliably 5/5, output vs. baseline 7/10, docs & honesty 4/5.
- How do I install Git Release?
- Copy the install command from this page, run it in your terminal, and restart Claude Code. Skills live in ~/.claude/skills/ (global) or .claude/skills/ inside a project.
- Can I use Git Release with Cursor, Copilot, Gemini CLI, Codex or other AI tools?
- The SKILL.md format is native to Claude (Claude Code, Desktop, claude.ai). The instructions inside adapt to other assistants: Cursor rules, GitHub Copilot instructions, Windsurf rules, Custom GPTs, AGENTS.md for OpenAI Codex, and GEMINI.md for Google Gemini CLI — our conversion guides cover each, and the free converter on the tools page does the wrapping for you.