Git Release
Drafts Keep-a-Changelog release notes, picks the semver bump, prints the gh release command
Otestováno · Funguje
Co umí
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.
Testovací report
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.
Testováno: 2026-07-21 · Claude Code 2.x (agent harness)
Instalace
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.
Příkazy a ukázkové prompty
/git-releaseDrafts Keep-a-Changelog release notes, picks the semver bump, prints the gh release command
Skilly se spouštějí běžnými požadavky — žádné příkazy k zapamatování. Po instalaci ho aktivují prompty jako tyto (anglicky):
Draft release notes for this tagged releasePropose the next semver bump for this releasePrepare a gh release create command