mcpField
R
release-notes-generator

release-notes-generator

github.com/florianbruniaux開発6.3k35 回インストール今日更新
リポジトリ

release-notes-generator について

Git のコミットから3種類のリリースノートを生成するスキルです。リリース告知を準備する開発・リリースチーム向けに、変更の分類、技術内容のユーザー向け表現への変換、データベースマイグレーションの検出を行います。

主な機能

  1. 01指定したバージョン範囲のコミット分析
  2. 02gh api による PR 詳細の取得
  3. 03変更種別ごとの分類
  4. 04CHANGELOG、PR 本文、Slack メッセージの生成
  5. 05データベースマイグレーションの検出と通知

活用シーン

  1. 01リリースの技術的な変更履歴の作成
  2. 02PR リリースノートとデプロイチェックリストの準備
  3. 03ユーザー向け Slack リリース告知の作成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/florianbruniaux/claude-code-ultimate-guide --skill release-notes-generator

インストール後、Claude Code で/release-notes-generatorを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

assets/
changelog-template.md
README.md
slack-template.md
references/
commit-categories.md
README.md
tech-to-product-mappings.md
scripts/
README.md

詳細

リリースノート生成ツール

Git のコミットから、3 つの形式で包括的なリリースノートを生成します。

ワークフロー

  1. Git の履歴を分析し、最後のリリースタグまたは指定されたバージョン以降の変更を確認します
  2. gh api を使って PR の詳細(タイトル、説明、ラベル)を取得します
  3. 変更を機能、バグ修正、改善、セキュリティ、破壊的変更に 分類します
  4. 3 つの出力を生成します:CHANGELOG.md のセクション(技術者向け)、PR のリリース本文(技術者向けと一般向けの中間)、Slack メッセージ(ユーザー向け)
  5. 専門用語を分かりやすい表現に 変換します
  6. データベースのマイグレーションを検出した場合は 警告します

使い方

基本的な使い方
Generate release notes since last release
Create release notes for version 0.18.0
特定の範囲を指定する場合
Generate release notes from v0.17.0 to HEAD
プレビューのみ
Preview release notes without writing files

出力形式

1. CHANGELOG.md セクション

開発者向けの技術的な形式です。

## [0.18.0] - 2025-12-08

### Objective
[1-2 sentence summary]

### New Features
#### [Feature Name] (#PR)
- **Description**: ...
- **Impact**: ...

### Bug Fixes
- **[Module]**: Description (#issue, [error-tracker] ISSUE-XX)

### Technical Improvements
#### Performance / UI/UX / Architecture
- [Description]

### Database Migrations
[If applicable]

### Statistics
- PRs: X
- Features: Y
- Bugs: Z
2. PR のリリース本文

.github/PULL_REQUEST_TEMPLATE/release.md のテンプレートを使用します:

  • 目的の概要
  • 仕様へのリンク付きの機能
  • エラートラッカーの参照付きのバグ修正
  • カテゴリ別の改善
  • マイグレーション手順
  • デプロイのチェックリスト
3. Slack のお知らせ

.github/COMMUNICATION_TEMPLATE/slack-release.md の製品中心の形式です:

  • 追跡できるよう PR リンク を含めます
  • 専門用語を使わない表現
  • ユーザーへの影響(エンドユーザー、管理者、関係者)に重点を置きます
  • 読みやすさのために絵文字を使用します
  • 統計の概要を記載します

ワークフローとの連携

このスキルはリリースワークフローと連携します:

1. Analyze commits: git log <last-tag>..HEAD
2. Determine version number (MAJOR.MINOR.PATCH)
3. Generate 3 outputs
4. Create PR develop -> main with "Release" label
5. Update CHANGELOG.md
6. After merge: create git tag
7. Generate Slack announcement

技術的な表現から製品向けの表現への変換

このスキルは、技術的な表現を自動的に変換します:

技術的な表現製品向けの表現
"N+1 query optimization with DataLoader""リストの読み込みが高速化"
"AI embeddings implementation with pgvector""新しいインテリジェント検索"
"Fix scope permissions in getPermissionScope()""アクセス権限のバグを修正"
"Migration webpack -> Turbopack"告知しない
"React hooks refactoring"告知しない
"Fix N+1 in user loaders""パフォーマンスを改善"
"Add retry logic for DB connection errors""接続の安定性が向上"

コミットのカテゴリ

コミットは Conventional Commits のプレフィックスに基づいて分類されます:

プレフィックスカテゴリSlack に含める?
feat:新機能はい
fix:バグ修正はい(ユーザー向けの場合)
perf:パフォーマンスはい(簡潔な表現で)
security:セキュリティはい
refactor:アーキテクチャいいえ
chore:メンテナンスいいえ
docs:ドキュメントいいえ
test:テストいいえ
style:スタイルいいえ

コンソール出力形式

リリースノートを生成する際は、コンソールに必ず明確な概要を表示します:

マイグレーションの警告(重要)

マイグレーションが検出された場合は、目立つように表示します:

╔══════════════════════════════════════════════════════════════════╗
║  ⚠️  [WARNING] DATABASE MIGRATIONS REQUIRED                      ║
╠══════════════════════════════════════════════════════════════════╣
║                                                                  ║
║  This release contains X migration(s):                           ║
║                                                                  ║
║  • 20251210123456_add_feature_description                        ║
║  • 20251211094532_update_status_enum                             ║
║                                                                  ║
║  Action required BEFORE deployment:                              ║
║  → Run: [migration-command]                                      ║
║                                                                  ║
╚══════════════════════════════════════════════════════════════════╝

マイグレーションがない場合:

✅ [OK] No database migrations required
検出方法

最後のリリース以降に追加されたマイグレーションファイルを確認します:

# Find new migrations since last tag
git diff <last-tag>..HEAD --name-only -- migrations/

例

ユーザー:「v0.17.0 以降のリリースノートを生成して」

出力:

Analyzing commits from v0.17.0 to HEAD...

Found:
- 15 commits
- 8 PRs merged
- 2 new features
- 5 bug fixes
- 3 improvements

╔══════════════════════════════════════════════════════════════════╗
║  ⚠️  [WARNING] DATABASE MIGRATIONS REQUIRED                      ║
╠══════════════════════════════════════════════════════════════════╣
║  This release contains 1 migration(s):                           ║
║  • 20251208143021_add_user_preferences                           ║
║  Action required: [migration-command]                             ║
╚══════════════════════════════════════════════════════════════════╝

--- CHANGELOG.md Section ---
[Technical format output]

--- PR Release Body ---
[Semi-technical format output]

--- Slack Announcement ---
[Product-focused format output]

Write to files? (CHANGELOG.md, clipboard for PR/Slack)

使用するコマンド

# Get last release tag
git tag --sort=-v:refname | head -n 1

# List commits since tag
git log <tag>..HEAD --oneline --no-merges

# Get PR details
gh api repos/{owner}/{repo}/pulls/{number}

# Get commit details
git show --stat <sha>

ヒント

  • リポジトリのルートから実行します
  • gh CLI の認証が済んでいることを確認します
  • 公開前に生成された内容を確認します
  • 対象読者に合わせて製品向けの表現を調整します
  • --preview を使うと、書き込みを行わずに出力を確認できます

参照ファイル

  • assets/changelog-template.md - CHANGELOG セクションのテンプレート
  • assets/slack-template.md - Slack のお知らせのテンプレート
  • references/tech-to-product-mappings.md - 変換ルール
  • references/commit-categories.md - 分類ルール

関連スキル

  • github-actions-templates - CI/CD ワークフロー向け
  • changelog-generator - 元になったツール(ComposioHQ)

コメント