Git Release

Udarbejder Keep-a-Changelog release notes, vælger semver-bump, udskriver gh release-kommandoen

Af wesammustafa · wesammustafa/opencode-primer

Testet · Virker ★ 8.4/10

Git Release — Udarbejder Keep-a-Changelog release notes, vælger semver-bump, udskriver gh release-kommandoen

Hvad det gør

Omdanner commits og mergede PR'er siden den sidste git tag til et Keep-a-Changelog release-notes udkast, foreslår et semantisk versionsbump (major ved BREAKING CHANGE footers eller `!` markører, minor ved features, patch ellers), og udskriver en klar-til-at-køre `gh release create`-kommando. Udløses, når du beder om at udarbejde release notes, forberede en tagget GitHub release, eller beslutte hvilket versionsnummer et sæt ændringer skal have. Den stopper kort før tagging eller publicering, indtil du bekræfter bumpet, og flagger ikke-konventionelle commit-beskeder i stedet for at opfinde en opsummering for dem.

Testrapport

Klonede repoet (GitHub API var rate-begrænset) og fandt præcis én SKILL.md i .opencode/skills/git-release/; frontmatter parsed med navn + beskrivelse (158 tegn) plus licens/kompatibilitet/metadata, ingen scripts eller bundtede filer refereret, ingen hardkodede stier, og en grep efter curl|sh, base64, eval og injection-frasering over skill-mappen returnerede intet. Installerede den under en mktemp HOME, aldrig den rigtige ~/.claude/skills (verificeret bagefter). Til output-testen byggede jeg et midlertidigt git-repo i /tmp/gr-testrepo tagget v1.2.0 med seks commits, inklusive `feat(cli)!: rename --out to --output` med en BREAKING CHANGE footer og én skrald-besked "Update readme", og skrev derefter baseline-notes.md uden skillen og release-notes.md efter kroppen strengt. Konkret forskel: baseline overskrev filen "# Release v1.3.0" og listede omdøbningen under "New", idet den helt manglede bruddet, mens skill-artefaktet producerede "## [2.0.0]" med en Removed-sektion, den angivne årsag ("carries a `!` marker and a `BREAKING CHANGE:` footer"), en `gh release create v2.0.0 --notes-file release-notes.md`-kommando, og den flaggede "Update readme" som ikke-anmeldelsesværdig i stedet for at parafrasere den til "Updated the readme", som baseline gjorde. Udløsningsfraser jeg bedømte: SKULLE indlæses — "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" (ja, ja, ja); SKULLE IKKE — "Write a commit message for these staged changes" og "Set up a GitHub Actions workflow that publishes to npm on tag push" (nej, nej; begge er commit/CI-arbejde, ikke udarbejdelse af release-notes). 5/5. Dokumentation mister et point, kun fordi skillen præsenteres som primer-repoets ene eksempel-skill uden en per-skill README; hvad README.md og docs/skills.md hævder om den, matcher filen.

Testet: 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.

Kommandoer og eksempelprompter

  • /git-releaseUdarbejder Keep-a-Changelog release notes, vælger semver-bump, udskriver gh release-kommandoen

Skills udløses af almindelige forespørgsler — ingen kommandoer at huske. Efter installationen aktiverer prompter som disse skillen (på engelsk):

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