github-release-notes について
最新タグ以降のコミットを基に、Keep a Changelog の分類に沿って GitHub のリリースノートを作成するスキルです。既存の変更履歴を文体の参考にでき、リリースを準備するメンテナー向けです。
主な機能
- 01最新リリースタグの特定
- 02タグ以降のコミット確認
- 03Keep a Changelog に沿った分類
- 04コピー可能な Markdown コードブロックで出力
活用シーン
- 01次回 GitHub リリースの説明作成
- 02タグ以降のユーザー向け変更の要約
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ ycs77/ skills --skill github-release-notesインストール後、Claude Code で/github-release-notesを入力して読み込まれたか確認します。
詳細
GitHub リリースノートジェネレーター
プロジェクトの次期バージョン向けに、GitHub リリースにそのまま貼り付けられるリリースノートを生成します。Keep a Changelog 1.1.0 の「変更の種類」の規約に従ってください。
手順
- 最新のリリースタグを確認します。
git describe --tags --abbrev=0(フォールバック:git tag --sort=-v:refname | head -n 1)- タグが存在しない場合は、全履歴を使用します。
- そのタグ以降のコミットを一覧表示します:
git log <tag>..HEAD --no-merges --pretty=format:"%h %s"。 - 既存の
CHANGELOG.mdがある場合は、プロジェクトのトーン、言語、表現スタイルに合わせるため、簡単に目を通します。ただし、このファイルを変更または作成してはいけません。 - 各コミットを、Keep a Changelog の変更の種類に分類します。該当する項目がない種類は省略します。
- リリースノートを Markdown 形式で出力し、単一のフェンス付きコードブロックで囲みます。これにより、ユーザーは GitHub のリリース画面にコピーして貼り付けられます。
変更の種類(Keep a Changelog 1.1.0)
次の見出しラベルを正確に使用し、常に英語のままにします(「執筆ルール」を参照)。
Added— 新機能Changed— 既存機能の変更Deprecated— 近く削除される機能Removed— 削除された機能Fixed— バグ修正Security— 脆弱性の修正
破壊的変更
Keep a Changelog には、破壊的変更専用のカテゴリーはありません。Breaking という見出しを新たに作ってはいけません。代わりに、各破壊的変更を最も関連性の高い種類(通常は Changed または Removed)に記載し、箇条書きの先頭に固定の **Breaking:** を付けます。毎回この綴りと大文字小文字を正確に使用してください。**breaking change**、**BREAKING**、その他の表記は使用しないでください。
### Changed
- **Breaking:** Renamed the `config.load()` option `path` to `configPath`
### Removed
- **Breaking:** Dropped support for Node.js 18
**Breaking:** マーカーは、他のノートを翻訳する場合でも英語のままにします(「執筆ルール」を参照)。
出力形式
リリースノートの Markdown のみを、単一のフェンス付きコードブロック内に出力します。前置きや後書きのコメント、周辺の説明は含めないでください。
バージョン見出し(## [x.y.z])や日付は含めないでください。GitHub のリリースページにはタグと公開日がすでに表示されるため、重複して記載する必要はありません。### の種類別見出しから直接始めてください。
### Added
- Short, user-facing description of the change
### Fixed
- Short, user-facing description of the fix
執筆ルール
- 各箇条書きは1行で、ユーザー向けに、実装ではなく影響を説明します。
- コミットハッシュや作成者名は記載しません。既存の
CHANGELOG.mdで PR 番号を使用している場合は、PR 番号を記載して構いません。 - 重複するコミットや関連するコミットは、1つの箇条書きにまとめます。
- 純粋に内部向けの変更(lint 設定の調整、CI のみの変更、フォーマットの適用、ユーザーへの影響を伴わない依存関係の更新)は省略します。ただし、それらしかない場合は、意味のある項目を
Changedにまとめます。 - 既存の
CHANGELOG.mdがある場合は、その言語に合わせます。ない場合は英語を使用します。 - 変更の種類の見出し(
Added、Changed、Deprecated、Removed、Fixed、Security)と**Breaking:**マーカーは、ユーザーが明示的に別の言語への翻訳を求めている場合でも、必ず英語のままにします。翻訳するのは箇条書きの説明のみです。これらの固定ラベルは翻訳しません。 - 該当項目のない変更の種類は省略します。