changelog について
changelogは、Gitの履歴から変更履歴を作成・更新するメンテナー向けスキルです。コミットを種類別に分類し、開発中、Insiders、Stableの段階に分けて、ユーザー向けと開発者向けの形式を用意します。
主な機能
- 01Git履歴から変更履歴を生成
- 02変更の種類ごとにコミットを分類
- 03開発中、Insiders、Stableの段階を区別
- 04ユーザー向けと開発者向けの形式
活用シーン
- 01前回リリース以降のコミットを要約
- 02期間を指定して変更履歴を作成
- 03ユーザー向け説明と技術情報を整理
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ processcube-io/ processcube.agent.skills --skill changelogインストール後、Claude Code で/changelogを入力して読み込まれたか確認します。
詳細
スキル:変更履歴
Git 履歴から、バージョンごとにグループ化し、機能の種類ごとに分類した変更履歴を作成または更新します。
トリガー
/changelog- 変更履歴を作成または更新します- 「変更履歴を作成して」「変更履歴を更新して」「〜以降に何が変わった?」
パラメーター
指定されていない場合は、次の情報をユーザーに確認します。
-
対象読者(デフォルトのファイルも決定します)
- ユーザー →
Changelog.md(簡潔にし、メリットを説明) - 開発者 →
Changelog-Dev.md(技術的な内容とコミットの詳細を記載)
- ユーザー →
-
モード
- 更新(デフォルト):最後の項目以降の新しい変更のみ追加します
- 新規作成:指定した時点からの変更履歴全体を作成します
-
期間(「新規作成」の場合のみ)
- 例:「2025年3月以降」「v2.3.0以降」
ワークフロー
1. 既存の変更履歴を確認する
# Prüfen ob Changelog existiert
ls Changelog.md Changelog-Dev.md 2>/dev/null
変更履歴が存在する場合:
- 最後に記録された時点(バージョンまたはコミット)を特定します
## 🔮 In Entwicklungマーカーの後から、最後に確認できるコミットを探します- または、最後に記録された Insiders/Stable バージョンを基準にします
2. Git データを収集する
# Tags mit Datum abrufen
git for-each-ref --sort=-creatordate --format='%(refname:short) %(creatordate:short)' refs/tags
# Letzten Tag ermitteln
git describe --tags --abbrev=0
# Commits seit letztem Tag (für "In Entwicklung")
git log $(git describe --tags --abbrev=0)..HEAD --pretty=format:"%h %ad %s" --date=short
# Commits seit bestimmter Version
git log v2.3.0..HEAD --pretty=format:"%h %ad %s" --date=short
3. コミットを分類する
コミットメッセージを分析し、次のカテゴリに分類します。
| カテゴリ | キーワード |
|---|---|
| 新機能 | Add, Feat, Feature, New, Implement |
| バグ修正 | Fix, Bugfix, Hotfix, Resolve |
| パフォーマンス | Performance, Optimize, Speed |
| 技術的変更 | Bump, Update, Refactor, Chore, Deps |
除外するもの:
- マージコミット(「Merge branch」「Merge pull request」)
- リリースコミット(「Release v」「Bump version」)
- WIP コミット、ビルド修正
4. バージョンを割り当てる
重要: 機能は次のフェーズを順番に進みます。
🔮 In Entwicklung → 🧪 Insiders → ✅ Stable
(Ausblick) (Early Adopter) (Alle Nutzer)
- 1つの機能を掲載できるフェーズは1つだけです
- Stable に含まれている場合、その前は Insiders に含まれていました
- Insiders に含まれている場合、その前は開発中でした
- 各セクションには、前のバージョンからの新しい変更のみを記載します
5. 変更履歴を更新する
更新する場合:
- 既存のファイルを読み込みます
- 新しいコミットを使って「In Entwicklung」セクションを更新します
- 新しいリリースがある場合:「In Entwicklung」から「Insiders」へ、または「Insiders」から「Stable」へ移動します
- ファイルを保存します
新規作成する場合:
- すべてのバージョンを含む完全なテンプレートを作成します
デフォルトのファイル
| 対象読者 | ファイル | 内容 |
|---|---|---|
| ユーザー | Changelog.md | メリットを説明し、技術的な詳細やコミットハッシュは記載しません |
| 開発者 | Changelog-Dev.md | 技術的な詳細、コミットハッシュ、PR 番号、破壊的変更を記載します |
出力テンプレート(ユーザー向け)
# Changelog [Projektname]
---
## 🔮 In Entwicklung (Ausblick auf nächstes Release)
*Diese Features sind nach [LETZTER_TAG] hinzugekommen und werden im nächsten Release enthalten sein.*
### Neue Funktionen
- Feature-Beschreibung aus Anwendersicht
### Fehlerbehebungen
- Fix-Beschreibung aus Anwendersicht
---
## 🧪 Insiders vX.Y.Z-insiders.N (DD.MM.YYYY)
*Vorschau-Version mit neuen Features gegenüber Stable vX.Y.Z.*
### Neue Funktionen (gegenüber vX.Y.Z)
- Feature-Beschreibung
---
## ✅ Stable vX.Y.Z (DD.MM.YYYY)
*Stabile Version - enthält alle Features aus vX.Y.Z-insiders.1 bis vX.Y.Z-insiders.N.*
### Neue Funktionen (gegenüber vX.Y-1.Z)
- Feature-Beschreibung *(seit insiders.N)*
### Fehlerbehebungen (gegenüber vX.Y-1.Z)
- Fix-Beschreibung *(seit insiders.M)*
---
## Release-Prozess
Features durchlaufen drei Phasen, bevor sie alle Nutzer erreichen:
🔮 In Entwicklung → 🧪 Insiders → ✅ Stable (見通し) (アーリーアダプター) (すべてのユーザー)
| Phase | Zielgruppe | Beschreibung |
|-------|------------|--------------|
| 🔮 **In Entwicklung** | Entwickler | Ausblick auf kommende Features. Noch in keinem Release enthalten. |
| 🧪 **Insiders** | Early Adopter | Vorschau-Versionen zum Testen neuer Features vor dem Stable-Release. |
| ✅ **Stable** | Alle Nutzer | Produktionsreife Version. Features sind vollständig getestet und freigegeben. |
**Hinweis:** Jeder Abschnitt listet nur die Änderungen, die **neu** in dieser Phase sind.
出力テンプレート(開発者向け)
# Changelog (Entwickler)
---
## 🔮 In Entwicklung
*Commits seit [LETZTER_TAG]*
### Neue Funktionen
- `abc1234` Feature X hinzugefügt (#123)
### Fehlerbehebungen
- `def5678` Bug Y behoben (#456)
### Technische Änderungen
- `ghi9012` Dependency Z aktualisiert
---
## 🧪 Insiders vX.Y.Z-insiders.N (DD.MM.YYYY)
### Breaking Changes
- Beschreibung der Breaking Changes
### Neue Funktionen
- `abc1234` Feature-Beschreibung (#123)
### Fehlerbehebungen
- `def5678` Fix-Beschreibung (#456)
---
## ✅ Stable vX.Y.Z (DD.MM.YYYY)
*Enthält Insiders .1 bis .N*
### Breaking Changes
- Beschreibung
### Commits
- Liste aller Commits seit letzter Stable
例
例 1:変更履歴を更新する(デフォルト)
ユーザー:「変更履歴を更新して」
手順:
Changelog.mdが存在するか確認します- 最後に記録された時点を特定します
git log [LETZTER_STAND]..HEAD --pretty=format:"%h %ad %s" --date=short- 新しいコミットを分類します
- 「In Entwicklung」セクションを更新します
例 2:開発者向けの変更履歴
ユーザー:「開発者向けの変更履歴を作成して」
手順:
Changelog-Dev.mdが存在するか確認します- コミットハッシュと PR 番号を含む Git 履歴を収集します
- 技術的な詳細と破壊的変更を記録します
Changelog-Dev.mdに保存します
例 3:新しいリリースを記録する
ユーザー:「v2.4.0-insiders.3 をリリースしました」
手順:
- Changelog.md を読み込みます
- 「In Entwicklung」の内容を「Insiders v2.4.0-insiders.3」に移動します
- 新しい空の「In Entwicklung」セクションを作成します
- 日付を追加します
ヒント
- 長いコミットメッセージでは、最初の文を使用します
- PR 番号(#123)は開発者向けの変更履歴のみに残します
- 関連するコミットをグループ化します(例:1 つの機能に対する複数のコミット)
- コミットが多い場合は、
headコマンドを使用して出力を制限します - 更新時は、既存の変更履歴を常にベースとして使用します
コメント
Markdown 対応