Git Release

Tworzy szkic notatek wydania Keep-a-Changelog, wybiera zwiększenie semver, drukuje polecenie gh release

Autor: wesammustafa · wesammustafa/opencode-primer

Testowano · Działa ★ 8.4/10

Git Release — Tworzy szkic notatek wydania Keep-a-Changelog, wybiera zwiększenie semver, drukuje polecenie gh release

Co robi ten skill

Przekształca commity i scalone PR-y od ostatniego tagu git w szkic notatek wydania Keep-a-Changelog, proponuje zwiększenie wersji semantycznej (major dla BREAKING CHANGE w stopkach lub znacznikach `!`, minor dla funkcji, patch w przeciwnym razie) i drukuje gotowe do uruchomienia polecenie `gh release create`. Uruchamia się, gdy poprosisz o szkic notatek wydania, przygotowanie tagowanego wydania GitHub lub decyzję, jaki numer wersji powinien otrzymać zestaw zmian. Zatrzymuje się przed tagowaniem lub publikowaniem, dopóki nie potwierdzisz zwiększenia, i oznacza niekonwencjonalne komunikaty commitów zamiast wymyślać dla nich podsumowanie.

Raport z testu

Sklonowano repozytorium (GitHub API miało ograniczenia szybkości) i znaleziono dokładnie jeden SKILL.md w .opencode/skills/git-release/; frontmatter sparsowano z name + description (158 znaków) plus license/compatibility/metadata, brak odwołań do skryptów lub spakowanych plików, brak twardo zakodowanych ścieżek, a grep dla curl|sh, base64, eval i fraz iniekcji w katalogu umiejętności zwrócił pusty wynik. Zainstalowano go w tymczasowym HOME, nigdy w prawdziwym ~/.claude/skills (zweryfikowano później). Do testu wyjścia zbudowałem tymczasowe repozytorium git w /tmp/gr-testrepo oznaczone v1.2.0 z sześcioma commitami, w tym `feat(cli)!: rename --out to --output` zawierającym stopkę BREAKING CHANGE i jedną bezużyteczną wiadomość "Update readme", a następnie napisałem baseline-notes.md bez umiejętności i release-notes.md ściśle według treści. Konkretna różnica: linia bazowa zatytułowała plik "# Release v1.3.0" i wymieniła zmianę nazwy pod "New", całkowicie pomijając przełamanie, podczas gdy artefakt umiejętności wygenerował "## [2.0.0]" z sekcją Removed, podanym powodem ("carries a `!` marker and a `BREAKING CHANGE:` footer"), poleceniem `gh release create v2.0.0 --notes-file release-notes.md` i oznaczył "Update readme" jako niemożliwe do przejrzenia zamiast parafrazować je na "Updated the readme", jak to zrobiła linia bazowa. Ocenione frazy wyzwalające: POWINNY załadować — "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" (tak, tak, tak); NIE POWINNY — "Write a commit message for these staged changes" i "Set up a GitHub Actions workflow that publishes to npm on tag push" (nie, nie; oba to praca commit/CI, a nie tworzenie notatek wydania). 5/5. Dokumentacja traci punkt tylko dlatego, że umiejętność jest przedstawiona jako jedyna przykładowa umiejętność repozytorium primer bez README dla każdej umiejętności; to, co twierdzą README.md i docs/skills.md na jej temat, zgadza się z plikiem.

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

Instalacja

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.

Komendy i przykładowe prompty

  • /git-releaseTworzy szkic notatek wydania Keep-a-Changelog, wybiera zwiększenie semver, drukuje polecenie gh release

Skille uruchamiają się na zwykłe polecenia — bez komend do zapamiętania. Po instalacji aktywują go prompty takie jak te (po angielsku):

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