changelog について
changelogは、Keep a Changelog 1.1.0に沿ってCHANGELOG.mdを管理するためのライティングスキルです。リリース記録や比較リンク、READMEとの同期確認を案内します。
主な機能
- 01Keep a Changelog 1.1.0の構成
- 02英語のみの変更履歴
- 03セマンティック/日付ベースの版見出し
- 04変更分類と比較リンク
- 05リリースとREADMEのチェックリスト
活用シーン
- 01プロジェクトのCHANGELOG.md作成
- 02リリース用の変更記録の準備
- 03版の日付と比較リンクの確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ itechmeat/ llm-code --skill changelogインストール後、Claude Code で/changelogを入力して読み込まれたか確認します。
同梱ファイルassets/CHANGELOG.example.mdassets/CHANGELOG.template.md
詳細
変更履歴
Keep a Changelog 1.1.0 に基づく CHANGELOG.md の書式仕様です。
言語要件(必須)
- 変更履歴の内容はすべて英語で記述する必要があります。
- 元の情報が別の言語で提供されている場合は、英語に翻訳してください。
- 同じ変更履歴内で複数の言語を混在させないでください。
クイックリファレンス
ファイルヘッダー
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
セクション構成
## [Unreleased]
### Added
- New feature description
## [1.0.0] - 2024-01-15
### Added
- Feature A
- Feature B
### Changed
- Modified behavior X
### Fixed
- Bug fix Y
変更の種類
| 種類 | 目的 |
|---|---|
Added | 新機能 |
Changed | 既存機能の変更 |
Deprecated | まもなく削除される機能 |
Removed | 削除済みの機能 |
Fixed | バグ修正 |
Security | 脆弱性 |
書式ルール
バージョンヘッダー
## [X.Y.Z] - YYYY-MM-DD
- バージョンは角括弧で囲み、比較リンクを設定します
- 日付は ISO 8601 形式(YYYY-MM-DD)で記述します
日付ベースのバージョン管理(代替方式)
semver の代わりに日付ベースのバージョン管理を使用するプロジェクト向けです。
## [YYYY-MM-DD]
[Unreleased] の代わりに現在の日付を使用します。このプロジェクトでは日付ベースのバージョン管理を使用しています。
ヤンクされたリリース
## [0.0.5] - 2014-12-13 [YANKED]
重大なバグまたはセキュリティ上の問題により、バージョンが取り下げられた場合に使用します。
比較リンク(ファイル末尾)
[unreleased]: https://github.com/user/repo/compare/v1.0.0...HEAD
[1.0.0]: https://github.com/user/repo/compare/v0.9.0...v1.0.0
[0.9.0]: https://github.com/user/repo/releases/tag/v0.9.0
基本原則
- 機械ではなく人のために — 明確で読みやすい項目を記述します
- すべてのバージョンを記録 — すべてのリリースを記録します
- 同じ種類の変更をまとめる — Added/Changed/Fixed をまとめます
- リンク可能なバージョン — 比較リンクを使用します
- 最新のものを先頭に — 新しい順に並べます
- リリース日を記載 — ISO 8601 形式を使用します
- バージョン管理方式を明記 — 使用している場合はセマンティックバージョニングについて記載します
完全な例
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
### Added
- New authentication method
## [1.2.0] - 2024-01-20
### Added
- User profile page
- Export to CSV functionality
### Changed
- Improved loading performance by 40%
### Deprecated
- Legacy API endpoint `/api/v1/users` (use `/api/v2/users`)
### Fixed
- Login timeout issue on slow connections
## [1.1.0] - 2024-01-10
### Added
- Dark mode support
### Security
- Fixed XSS vulnerability in comment field
## [1.0.0] - 2024-01-01
### Added
- Initial release with core features
- User registration and login
- Dashboard with analytics
[unreleased]: https://github.com/user/project/compare/v1.2.0...HEAD
[1.2.0]: https://github.com/user/project/compare/v1.1.0...v1.2.0
[1.1.0]: https://github.com/user/project/compare/v1.0.0...v1.1.0
[1.0.0]: https://github.com/user/project/releases/tag/v1.0.0
避けるべき慣行
コミットログの差分
避けてください。git log を変更履歴にそのまま貼り付けないでください。
- ノイズが多くなります(マージコミットや内容が分かりにくいタイトルなど)
- 人間にとって読みづらくなります
- 重要な変更と些細な変更が混在します
非推奨の無視
避けてください。非推奨のお知らせを省略しないでください。
- ユーザーは何が動作しなくなるのかを知る必要があります
- 削除する前に非推奨であることを記録します
- 破壊的変更を明確に列挙します
日付の混乱
避けてください。地域ごとの日付形式を使用しないでください。
- ISO 8601(
YYYY-MM-DD)を使用します - 曖昧さを避けられます(01/02/2024 は 1 月 2 日ですか、それとも 2 月 1 日ですか?)
変更の不統一
避けてください。一部の変更だけを記録しないでください。
- 変更履歴は唯一の信頼できる情報源であるべきです
- 重要な変更は必ず記載します
- 一貫して更新します
執筆のヒント
良い項目の例
### Added
- OAuth2 authentication with Google and GitHub providers
- Rate limiting for API endpoints (100 req/min)
### Changed
- Database queries now use prepared statements for better security
- Upgraded dependency `lodash` from 4.17.20 to 4.17.21
### Fixed
- Memory leak in WebSocket connection handler
- Race condition in concurrent file uploads
項目のガイドライン
- 下書きの前に現在の git の変更(差分または変更ファイル一覧)を確認し、重要な変更がすべて含まれていることを確認します。
- 変更を表す動詞または名詞から始めます
- 具体的に記述します(影響を受けるコンポーネント/エンドポイントを記載します)
- 該当する場合は issue/PR 番号を参照します:
(#123) - 簡潔でありながら、情報を十分に含めます
- 空のセクションは省略します(該当する項目がない場合、セクション見出しを含めないでください)
ファイル名
必須:CHANGELOG.md(大文字)。小文字または別の名前は使用しないでください。
別のファイル名は使用しないでください。
GitHub Releases と CHANGELOG.md
| 項目 | GitHub Releases | CHANGELOG.md |
|---|---|---|
| 可搬性 | GitHub のみ | 汎用 |
| 見つけやすさ | 見つけにくい | 標準的な場所 |
| バージョン管理 | 別の UI | リポジトリ内 |
| 差分リンク | 手動で設定 | 簡単に追加 |
GitHub Releases は補完的に使用できますが、CHANGELOG.md の代わりにしてはいけません。
Conventional Commits との統合
変更履歴は、Conventional Commits 形式に沿っていると、より効果的に作成できます。
| コミットの種類 | 変更履歴のセクション |
|---|---|
feat: | 追加 |
fix: | 修正 |
perf: | 変更 |
refactor: | 変更 |
docs: | (多くの場合、省略) |
BREAKING CHANGE | 「変更」で強調 |
| セキュリティ修正 | セキュリティ |
revert: | 削除または修正 |
自動生成
Conventional Commits を解析して変更履歴を生成するツール:
コミットメッセージの形式については、commits スキルを参照してください。
ワークフローへの統合
未リリースセクションのパターン
- 開発中は変更内容を
## [Unreleased]に追加します - リリース時に
## [X.Y.Z] - YYYY-MM-DDに変更します - 新しい空の
## [Unreleased]セクションを作成します - 新しいバージョンの比較リンクを追加します
コミット前チェックリスト
リリース前に確認します。
- 重要な変更がすべて記録されている
- 未リリースセクションをバージョン表記に変更した
- ISO 8601 形式の日付を追加した
- 比較リンクを追加した
- 破壊的変更を強調した
- 非推奨項目を記録した
重要な禁止事項
- 変更履歴として git log を使用しないでください
- 破壊的変更や非推奨項目を省略しないでください
- 曖昧な日付形式を使用しないでください
- 変更履歴の更新に一貫性を欠かさないでください
- リリース時に Unreleased → バージョン表記への更新を忘れないでください
- 変更履歴の項目を英語以外の言語で記述しないでください
README との同期
変更履歴を作成した後、プロジェクトのメイン README.md を確認します。
- 古い情報がないか確認する — 機能、スキル、ツールの一覧
- 新しい項目を追加する — 変更履歴に新しいスキル、機能、コンポーネントがある場合
- 非推奨項目を削除する — 変更履歴で機能が削除された場合
- 説明を更新する — 変更履歴で既存機能が変更された場合
同期する項目:
- スキル/機能の表
- 互換性の一覧
- インストール手順
- リンクと参照
同期しない項目:
- 変更履歴の内容そのもの(重複を避ける)
- バージョン履歴
- 詳細な変更説明
CHANGELOG で README.md の更新に言及しないでください — README の同期は当然行うものとし、独立した変更として記録する必要はありません。
リンク
- 公式仕様:https://keepachangelog.com/en/1.1.0/
- セマンティックバージョニング:https://semver.org/spec/v2.0.0.html
- 関連項目:commits スキル — Conventional Commits 形式
テンプレート
- CHANGELOG.template.md — 作成開始用の空のテンプレート
- CHANGELOG.example.md — 完成した動作例