Git Release

Drafts Keep-a-Changelog release notes, picks the semver bump, prints the gh release command

Tested · Works

Test report

Verdict
Tested · Works
Score
8.4/10
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-release Drafts 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.