changelog-generator について
changelog-generatorは、Gitのコミット履歴をユーザー向けの変更履歴にまとめるスキルです。変更を分類し、内部向けの記録を除外して、指定されたスタイルに沿って構成します。
主な機能
- 01範囲を指定したGit履歴の確認
- 02変更種別ごとのコミット分類
- 03技術的な記述のユーザー向け変換
- 04内部変更やマージ記録の除外
- 05指定ガイドラインに沿った整形
活用シーン
- 01新バージョンのリリースノート作成
- 02週次・月次の製品更新の要約
- 03アプリストア更新文の準備
- 04公開製品更新ページの管理
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ dedalus-erp-pas/ foundation-skills --skill changelog-generatorインストール後、Claude Code で/changelog-generatorを入力して読み込まれたか確認します。
詳細
変更履歴ジェネレーター
このスキルは、技術的な Git コミットを、顧客やユーザーが実際に理解し、役立つと感じられる、洗練された読みやすい変更履歴に変換します。
このスキルを使う場面
- 新しいバージョンのリリースノートを準備するとき
- 週次または月次の製品アップデート概要を作成するとき
- 顧客向けに変更内容を記録するとき
- アプリストアへの提出用に変更履歴の項目を作成するとき
- アップデート通知を生成するとき
- 社内向けのリリース文書を作成するとき
- 公開されている変更履歴/製品アップデートページを管理するとき
このスキルでできること
- Git の履歴をスキャン:指定した期間、またはバージョン間のコミットを分析します
- 変更を分類:コミットを論理的なカテゴリ(機能、改善、バグ修正、破壊的変更、セキュリティ)にまとめます
- 技術用語をユーザー向けに変換:開発者向けのコミット内容を顧客向けの表現に変換します
- プロフェッショナルな形式に整える:見やすく構成された変更履歴を作成します
- 不要な情報を除外:内部向けのコミット(リファクタリング、テストなど)を除外します
- ベストプラクティスに従う:変更履歴のガイドラインとブランドのトーンを適用します
使い方
基本的な使い方
プロジェクトのリポジトリから実行します:
Create a changelog from commits since last release
Generate changelog for all commits from the past week
Create release notes for version 2.5.0
特定の日付範囲を指定する場合
Create a changelog for all commits between March 1 and March 15
カスタムガイドラインを指定する場合
Create a changelog for commits since v2.4.0, using my changelog
guidelines from CHANGELOG_STYLE.md
指示
変更履歴を作成するときは、次の手順に従います。
-
Git の履歴を分析する
git logを使って、指定した期間のコミットメッセージを取得します- 範囲が指定されていない場合は、最後のタグ以降のコミットを対象にします
- コミットの規約(Conventional Commits、セマンティックバージョニングのタグ)を確認します
-
コミットを分類する
- ✨ 新機能:新しい機能や能力
- 🔧 改善:既存機能の強化
- 🐛 バグ修正:不具合の修正
- ⚠️ 破壊的変更:ユーザーによる対応が必要な変更
- 🔒 セキュリティ:セキュリティ関連の修正や改善
- 📚 ドキュメント:ドキュメントの更新(通常、ユーザー向けの変更履歴からは除外します)
- 🧹 内部変更:リファクタリング、テスト、ビルドの変更(ユーザー向けの変更履歴からは除外します)
-
技術的な表現をユーザー向けの表現に変換する
- 実装方法ではなく、ユーザーにとって何が変わったかに焦点を当てます
- 能動態と現在形を使います
- 実装内容ではなく、メリットを説明します
- 専門用語を平易な表現に置き換えます
例:
-
❌ 「認証サービスをリファクタリングし、JWT トークンを使用するようにしました」
-
✅ 「ログインがより速く、安全になりました」
-
❌ 「API エンドポイントに Redis キャッシュレイヤーを追加しました」
-
✅ 「ページの読み込みが 50%速くなりました」
-
❌ 「検索入力コンポーネントにデバウンスを実装しました」
-
✅ 「入力すると、検索結果がすぐに表示されるようになりました」
-
変更履歴の形式を整える
- 絵文字を使った分かりやすいセクション見出しを付け、内容を見つけやすくします
- 影響の大きい変更(機能、破壊的変更)から記載します
- 機能名を太字にし、その後に平易な言葉で説明します
- 各項目は簡潔にまとめます(1~2 文)
- 関連する変更をまとめます
-
フィルターを適用する
chore:、test:、docs:、refactor:が付いたコミットは除外します(ユーザー向けの変更を除く)- マージコミットとバージョン更新コミットは省きます
- 同じ機能に関する複数のコミットを 1 つの項目にまとめます
- 開発者向けの変更を除外します
-
背景情報を加える
- タイトルに日付またはバージョン番号を含めます
- メジャーリリースの場合は、簡潔な紹介文を加えます
- 破壊的変更については、詳細なドキュメントへのリンクを付けます
- 必要に応じて、移行ガイドを含めます
例
ユーザー:「過去 7 日間のコミットについて変更履歴を作成してください」
出力:
# Updates - Week of March 10, 2024
## ✨ New Features
- **Team Workspaces**: Create separate workspaces for different
projects. Invite team members and keep everything organized.
- **Keyboard Shortcuts**: Press ? to see all available shortcuts.
Navigate faster without touching your mouse.
## 🔧 Improvements
- **Faster Sync**: Files now sync 2x faster across devices
- **Better Search**: Search now includes file contents, not just titles
## 🐛 Fixes
- Fixed issue where large images wouldn't upload
- Resolved timezone confusion in scheduled posts
- Corrected notification badge count
参考: Lenny's Newsletter に掲載された Manik Aggarwal のユースケース
変更履歴作成のベストプラクティス
文体
- ユーザー中心:コードではなく、ユーザーにとって何が変わったかを説明します
- メリットを重視:なぜ重要なのかを最初に伝えます
- 簡潔に:各項目を 1~2 文にまとめます
- 見つけやすく:ユーザーが知りたい情報を見つけやすいように書式を整えます
構成
- 一貫した分類:毎回同じカテゴリを使用します
- 重要なものを先に:バグ修正よりも機能や破壊的変更を先に記載します
- カテゴリ内は時系列順:新しい変更から順に記載します
- 視覚的な階層:見出し、太字、絵文字を効果的に使用します
内容に関するガイドライン
- 具体的に記載する:「ログインの問題を修正」→「Google アカウントでログインに失敗する問題を修正」
- 可能な場合は数値で示す:「読み込みが高速化」→「ページの読み込み速度が50%向上」
- 背景を含める:大規模な更新では、変更した理由を説明します
- 詳細へのリンクを追加する:複雑な変更については、ドキュメントや移行ガイドを参照します
ヒント
- Git リポジトリのルートから実行します
- 対象を絞った変更履歴には、日付範囲を指定します
- 一貫した書式を保つため、CHANGELOG_STYLE.md を使用します
- 生成された変更履歴を確認し、公開前に調整します
- 出力を直接 CHANGELOG.md に保存します
関連するユースケース
- GitHub のリリースノートの作成
- アプリストアの更新内容の説明文の作成
- ユーザー向けメール更新の作成
- ソーシャルメディア告知投稿の作成
変換例
技術的なコミット → ユーザー向けの項目
| 技術的なコミット | ユーザー向けの項目 |
|---|---|
| "Add OAuth2 support for SSO integration" | "シングルサインオン:会社のアカウントでログインできます" |
| "Optimize database queries with indexes" | "ダッシュボードの読み込みが3倍高速化" |
| "Implement WebSocket connection for real-time updates" | "更新せずに変更をすぐに確認できます" |
| "Add validation for email input fields" | "無効なメールアドレスを入力すると、わかりやすいエラーメッセージが表示されます" |
| "Fix memory leak in background sync worker" | "長時間のセッション中のアプリの安定性が向上" |
カテゴリの例
✨ 新機能
- これまで存在しなかった新しい機能
- 機能の大幅な追加
- 新しい連携機能やプラットフォームのサポート
🔧 改善
- パフォーマンスの向上
- UI/UX の改善
- 既存機能の拡張
- エラーメッセージの改善
🐛 バグ修正
- 既存機能の修正
- 報告された問題の解決
- エッジケースの修正
⚠️ 破壊的変更
- ユーザーによる対応が必要な変更
- 削除された機能や API
- デフォルトの動作の変更
- 必要な移行手順
🔒 セキュリティ
- セキュリティパッチ
- 権限の改善
- 認証機能の強化
- データ保護の更新
コメント
Markdown 対応