CHANGELOGとリリースノート生成ガイド。 Conventional Commits、Keep a Changelog形式、セマンティックバージョニング対応。
/plugin marketplace add sk8metalme/ai-agent-setup/plugin install development-toolkit@ai-agent-setupThis skill is limited to using the following tools:
プロジェクトの変更履歴を適切に管理し、ユーザーにとって有用なCHANGELOGとリリースノートを生成する。
Keep a Changelogに準拠した形式:
# 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.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
### Added
- 新機能A
- 新機能B
### Changed
- 変更された機能C
### Deprecated
- 非推奨となった機能D
### Removed
- 削除された機能E
### Fixed
- 修正されたバグF
### Security
- セキュリティ修正G
## [1.0.0] - 2024-01-15
### Added
- 初回リリース
- 基本機能の実装
[Unreleased]: https://github.com/user/repo/compare/v1.0.0...HEAD
[1.0.0]: https://github.com/user/repo/releases/tag/v1.0.0
| カテゴリ | 説明 | 例 |
|---|---|---|
| Added | 新機能 | 新しいAPI、新しいコマンド |
| Changed | 既存機能の変更 | パラメータ変更、デフォルト値変更 |
| Deprecated | 非推奨(将来削除予定) | 古いAPI、レガシー機能 |
| Removed | 削除された機能 | 非推奨だった機能の削除 |
| Fixed | バグ修正 | クラッシュ修正、表示バグ修正 |
| Security | セキュリティ修正 | 脆弱性対応、CVE修正 |
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
| Type | 説明 | CHANGELOGカテゴリ |
|---|---|---|
feat | 新機能 | Added |
fix | バグ修正 | Fixed |
docs | ドキュメントのみ | - |
style | コードの意味に影響しない変更 | - |
refactor | リファクタリング | - |
perf | パフォーマンス改善 | Changed |
test | テスト追加・修正 | - |
build | ビルドシステム変更 | - |
ci | CI設定変更 | - |
chore | その他の変更 | - |
revert | コミットの取り消し | - |
BREAKING CHANGE を含むコミットはメジャーバージョンアップの対象:
feat!: drop support for Node 14
BREAKING CHANGE: Node 14 is no longer supported. Minimum version is Node 16.
feat(auth): add OAuth2 login support
Implemented OAuth2 authentication flow with Google and GitHub providers.
Closes #123
fix(api): handle null response in user endpoint
Fixed crash when user data is null.
Fixes #456
feat(api)!: change user endpoint response format
BREAKING CHANGE: User endpoint now returns nested user object instead of flat structure.
Before:
{ "name": "John", "email": "john@example.com" }
After:
{ "user": { "name": "John", "email": "john@example.com" } }
MAJOR.MINOR.PATCH
例: 1.2.3
| 変更内容 | バージョン | 例 |
|---|---|---|
| 破壊的変更 | MAJOR | 1.0.0 → 2.0.0 |
| 新機能(後方互換) | MINOR | 1.0.0 → 1.1.0 |
| バグ修正 | PATCH | 1.0.0 → 1.0.1 |
1.0.0-alpha.1 # アルファ版
1.0.0-beta.2 # ベータ版
1.0.0-rc.1 # リリース候補
# 最新タグから現在までのコミット
git log $(git describe --tags --abbrev=0)..HEAD --oneline
# 特定の期間のコミット
git log --since="2024-01-01" --until="2024-01-31" --pretty=format:"%h - %s (%an, %ad)" --date=short
# Conventional Commits形式でフィルタ
git log --pretty=format:"%s" | grep -E "^(feat|fix|docs|style|refactor|perf|test|build|ci|chore|revert)(\(.+\))?:"
# すべてのタグを日付順で表示
git tag -l --sort=-version:refname
# タグ間の差分
git log v1.0.0..v1.1.0 --oneline
# タグの作成日時
git log --tags --simplify-by-decoration --pretty="format:%ai %d"
# GitHub CLIでPR情報取得
gh pr list --state merged --limit 100 --json number,title,mergedAt,labels
# マージされたPRのコミット取得
gh pr view 123 --json commits
# インストール
npm install -g conventional-changelog-cli
# CHANGELOG生成
conventional-changelog -p angular -i CHANGELOG.md -s
# 初回生成(全履歴)
conventional-changelog -p angular -i CHANGELOG.md -s -r 0
# インストール
npm install -g standard-version
# バージョンアップ + CHANGELOG生成
standard-version
# 初回リリース
standard-version --first-release
# プレリリース
standard-version --prerelease alpha
# インストール
brew install git-chglog
# 初期設定
git-chglog --init
# CHANGELOG生成
git-chglog -o CHANGELOG.md
# 特定バージョン
git-chglog v1.0.0..v1.1.0
# ❌ 悪い例
- Refactored UserService class
# ✅ 良い例
- Improved user authentication performance by 50%
# ❌ 悪い例
- Changed database query from N+1 to eager loading with includes
# ✅ 良い例
- Fixed slow user list loading (reduced from 5s to 0.5s)
## [2.0.0] - 2024-01-15
### Changed
- **BREAKING**: Minimum Node.js version is now 16
- **BREAKING**: User API endpoint response format changed
### Migration Guide
See [MIGRATION.md](MIGRATION.md) for upgrade instructions.
### Fixed
- Fixed authentication timeout (#123, @username)
- Resolved crash on startup (PR #456)
# ISO 8601形式(推奨)
## [1.0.0] - 2024-01-15
# または
## [1.0.0] - 2024-01-15T10:30:00Z
# Version 2.0.0 - Major Update! 🎉
We're excited to announce Version 2.0 with significant improvements!
## 🚀 New Features
- **OAuth2 Support**: Sign in with Google and GitHub
- **Dark Mode**: New dark theme option in settings
- **Performance**: 3x faster page load times
## 💥 Breaking Changes
- Minimum Node.js version is now 16
- API response format has changed (see migration guide)
## 🐛 Bug Fixes
- Fixed crash on startup
- Resolved authentication timeout issues
## 📖 Documentation
Full changelog: [CHANGELOG.md](CHANGELOG.md)
Migration guide: [MIGRATION.md](MIGRATION.md)
## 🙏 Contributors
Thanks to @user1, @user2, @user3 for their contributions!
# リリース作成
gh release create v1.0.0 \
--title "Version 1.0.0" \
--notes-file RELEASE_NOTES.md
# CHANGELOGから自動生成
gh release create v1.0.0 \
--generate-notes
# プレリリース
gh release create v1.0.0-beta.1 \
--prerelease \
--notes "Beta release for testing"
GitHub Actionsでの自動化:
name: Release
on:
push:
tags:
- 'v*'
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Generate Changelog
id: changelog
run: |
echo "## What's Changed" > release_notes.md
git log $(git describe --tags --abbrev=0 HEAD^)..HEAD --pretty=format:"- %s (%h)" >> release_notes.md
- name: Create Release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ github.ref }}
body_path: release_notes.md
# Conventional Commitsでコミット
git commit -m "feat(auth): add OAuth2 support"
git commit -m "fix(ui): resolve button alignment issue"
# CHANGELOGを自動生成
conventional-changelog -p angular -i CHANGELOG.md -s
# または
standard-version
# 手動で編集(必要に応じて)
vim CHANGELOG.md
# タグ作成
git tag -a v1.0.0 -m "Release version 1.0.0"
# プッシュ
git push origin v1.0.0
# GitHub Releasesを作成
gh release create v1.0.0 --notes-file RELEASE_NOTES.md
# 次の開発サイクル開始
# CHANGELOG.mdの[Unreleased]セクションに新しい変更を追加
A: 手動でCHANGELOGを編集するか、フィルタリングする
# 特定のパターンにマッチするコミットのみ抽出
git log --grep="^feat\|^fix" --pretty=format:"%s"
A: --no-mergesオプションを使用
git log --no-merges --oneline
A: semantic-releaseを使用した完全自動化
npm install -g semantic-release-cli
semantic-release-cli setup
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.