Git Release

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

av wesammustafa · wesammustafa/opencode-primer

Testad · Fungerar ★ 8.4/10

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

Vad den gör

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.

Testrapport

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.

Testad: 2026-07-21 · Claude Code 2.x (agent harness)

Installation

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.

Kommandon och exempelprompter

  • /git-releaseDrafts Keep-a-Changelog release notes, picks the semver bump, prints the gh release command

Skills triggas av vanliga förfrågningar — inga kommandon att memorera. Efter installationen aktiverar prompter som dessa skillen (på engelska):

  • Draft release notes for this tagged release
  • Propose the next semver bump for this release
  • Prepare a gh release create command