changelog
変更履歴の生成、リリースノートの作成、セマンティックバージョニング、リリース管理といった、プロジェクトのバージョン管理とリリースに関するあらゆる作業を自動化するためのSkillです。
📜 元の英語説明(参考)
Changelog generation, release notes, semantic versioning, and release management. Use when user asks to "write a changelog", "generate release notes", "bump version", "follow conventional commits", "create a release", "update CHANGELOG.md", "write migration guide", "document breaking changes", "set up automated releases", "configure semantic-release", "add deprecation notice", "keep a changelog", "version a project", "squash commits before release", "manage pre-releases", "automate versioning", or any versioning, changelog automation, release notes, and release documentation tasks.
🇯🇵 日本人クリエイター向け解説
変更履歴の生成、リリースノートの作成、セマンティックバージョニング、リリース管理といった、プロジェクトのバージョン管理とリリースに関するあらゆる作業を自動化するためのSkillです。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o changelog.zip https://jpskill.com/download/6069.zip && unzip -o changelog.zip && rm changelog.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/6069.zip -OutFile "$d\changelog.zip"; Expand-Archive "$d\changelog.zip" -DestinationPath $d -Force; ri "$d\changelog.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
changelog.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
changelogフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-17
- 取得日時
- 2026-05-17
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
[スキル名] 変更履歴
変更履歴とリリースノート
変更履歴の生成、セマンティックバージョニング、自動リリース、およびリリースドキュメント。
変更履歴の形式を維持する
keepachangelog.com に従ってください。カテゴリは次の順序です。
# 変更履歴
このプロジェクトにおけるすべての注目すべき変更は、このファイルに記録されます。
この形式は [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) に基づいており、
このプロジェクトは [Semantic Versioning](https://semver.org/spec/v2.0.0.html) に準拠しています。
## [未リリース]
### 追加
- 分析機能付きの新しいユーザーダッシュボード
### 変更
- パスワード要件を最低12文字に更新しました
### 非推奨
- レガシーな /api/v1 エンドポイント (代わりに /api/v2 を使用してください。4.0.0 で削除されます)
### 削除
- XML レスポンス形式 (JSON に置き換えられました)
### 修正
- WebSocket ハンドラーのメモリリークを修正
### セキュリティ
- CVE-2024-XXXX を修正するため jsonwebtoken を更新
## [2.0.0] - 2024-02-01
### 変更
- **破壊的変更**: API レスポンス形式を再設計しました
- **破壊的変更**: Node.js 18 以降を必須とします
### 削除
- **破壊的変更**: XML レスポンス形式を削除しました
[未リリース]: https://github.com/user/repo/compare/v2.0.0...HEAD
[2.0.0]: https://github.com/user/repo/releases/tag/v2.0.0
カテゴリ: Added、Changed、Deprecated、Removed、Fixed、Security (この順序)。最新バージョンが最初です。常に [Unreleased] を一番上に置いてください。ISO 日付 (YYYY-MM-DD) を使用してください。すべてのバージョンを差分にリンクしてください。機械ではなく人間向けに記述してください。
規約に沿ったコミット
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
タイプ
feat: 新機能 (MINOR を上げる)
fix: バグ修正 (PATCH を上げる)
docs: ドキュメントのみ
style: フォーマット、コード変更なし
refactor: コード変更、機能/修正なし
perf: パフォーマンス改善
test: テストの追加/修正
build: ビルドシステム、依存関係
ci: CI 設定
chore: その他の変更 (src/test 以外)
BREAKING CHANGE: フッターに記述 (MAJOR を上げる)
feat!: または fix!: 破壊的変更の省略形
例
feat(auth): OAuth2 ログインフローを追加
fix(api): 決済ゲートウェイからの null レスポンスを処理
docs: API 認証ガイドを更新
refactor(db): 接続プーリングをモジュールに抽出
perf: 遅延ロードで画像読み込みを最適化
feat!: ユーザー API エンドポイントを再設計
BREAKING CHANGE: /api/users はページ分割された結果を返すようになりました。
Migration: 既存のレスポンスハンドラーを `unwrapPaginated()` でラップしてください。
フッター付きの複数段落
fix(payments): リトライ時の二重請求を防止
決済プロセッサは、30秒以内にリトライが発生した場合に冪等性キーをチェックしていませんでした。
請求前にキー検証を追加しました。
Fixes: #1234
Reviewed-by: Alice
セマンティックバージョニングの詳細
MAJOR.MINOR.PATCH
1.0.0 → 1.0.1 (fix: パッチリリース)
1.0.1 → 1.1.0 (feat: マイナーリリース、パッチをリセット)
1.1.0 → 2.0.0 (BREAKING CHANGE: メジャーリリース、マイナー+パッチをリセット)
プレリリースバージョン
1.0.0-alpha.1 # 内部テスト、不安定な API
1.0.0-alpha.2 # アルファ版での修正
1.0.0-beta.1 # 機能完成、外部テスト
1.0.0-beta.2 # ベータ版のバグ修正
1.0.0-rc.1 # リリース候補、本番環境対応を意図
1.0.0-rc.2 # RC のバグ修正
1.0.0 # 安定版リリース
優先順位: 1.0.0-alpha.1 < 1.0.0-beta.1 < 1.0.0-rc.1 < 1.0.0
ビルドメタデータ (例: 1.0.0+build.42) はバージョン優先順位では無視されます。
バージョンアップコマンド
# npm
npm version patch # 1.0.0 → 1.0.1
npm version minor # 1.0.0 → 1.1.0
npm version major # 1.0.0 → 2.0.0
npm version prerelease --preid=alpha # 1.0.0 → 1.0.1-alpha.0
npm version prerelease --preid=beta # 1.0.1-alpha.0 → 1.0.1-beta.0
npm version prerelease --preid=rc # → 1.0.1-rc.0
# Python (bump2version)
pip install bump2version
bump2version patch
bump2version minor
bump2version major
自動変更履歴ツール
conventional-changelog
npm install -D conventional-changelog-cli
# 変更履歴を生成 (新しいエントリを追加)
npx conventional-changelog -p angular -i CHANGELOG.md -s
# 初回リリース (git 履歴から変更履歴全体を書き換え)
npx conventional-changelog -p angular -i CHANGELOG.md -s -r 0
semantic-release
完全に自動化されています: コミットからバージョンを決定し、変更履歴を生成し、公開し、GitHub リリースを作成します。
// .releaserc.json — インストール: semantic-release + @semantic-release/{changelog,git}
{
"branches": ["main", {"name": "beta", "prerelease": true}],
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
["@semantic-release/changelog", {"changelogFile": "CHANGELOG.md"}],
["@semantic-release/npm", {"npmPublish": true}],
["@semantic-release/git", {"assets": ["CHANGELOG.md", "package.json"]}],
"@semantic-release/github"
]
}
Release Please (GitHub Action)
name: Release
on:
push:
branches: [main]
permissions:
contents: write
pull-requests: write
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: googleapis/release-please-action@v4
with:
release-type: node
Release Please は規約に沿ったコミットを読み取り、リリース PR を自動作成し、バージョンを上げ、CHANGELOG.md を更新し、マージ時に GitHub リリースを作成します。
Changesets (モノレポ対応)
npm install -D @changesets/cli
npx changeset init
# 変更セットを追加 (パッケージとセマンティックバージョンアップの対話型プロンプト)
npx changeset
# 変更セットを消費: バージョンを上げ + 変更履歴を更新
npx changeset version
# 変更されたすべてのパッケージを公開
npx changeset publish
git-cliff
cargo install git-cliff # または: npm install -g git-cliff
git cliff -o CHANGELOG.md # 完全な変更履歴
git cliff --latest -o CHANGELOG.md # 最後のタグ以降
git cliff --unreleased --prepend CHANGELOG.md # 未リリースを先頭に追加
git cliff --config cliff.toml # カスタム設定
git cliff -o CHANGELOG.md --tag v2.0.0 # 未リリースを v2.0.0 としてタグ付け
# cliff.toml — 主要セクション
[changelog]
header 📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Changelog & Release Notes
Changelog generation, semantic versioning, automated releases, and release documentation.
Keep a Changelog Format
Follow keepachangelog.com. Categories in this order:
# 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 user dashboard with analytics
### Changed
- Updated password requirements to 12 characters minimum
### Deprecated
- Legacy /api/v1 endpoints (use /api/v2, removal in 4.0.0)
### Removed
- XML response format (replaced by JSON)
### Fixed
- Fix memory leak in WebSocket handler
### Security
- Update jsonwebtoken to fix CVE-2024-XXXX
## [2.0.0] - 2024-02-01
### Changed
- **BREAKING**: Redesign API response format
- **BREAKING**: Require Node.js 18+
### Removed
- **BREAKING**: Remove XML response format
[Unreleased]: https://github.com/user/repo/compare/v2.0.0...HEAD
[2.0.0]: https://github.com/user/repo/releases/tag/v2.0.0
Categories: Added, Changed, Deprecated, Removed, Fixed, Security (in this order). Newest version first. Always keep [Unreleased] at top. Use ISO dates (YYYY-MM-DD). Link every version to a diff. Write for humans, not machines.
Conventional Commits
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
Types
feat: New feature (bumps MINOR)
fix: Bug fix (bumps PATCH)
docs: Documentation only
style: Formatting, no code change
refactor: Code change, no feature/fix
perf: Performance improvement
test: Adding/fixing tests
build: Build system, dependencies
ci: CI configuration
chore: Other changes (no src/test)
BREAKING CHANGE: in footer (bumps MAJOR)
feat!: or fix!: breaking change shorthand
Examples
feat(auth): add OAuth2 login flow
fix(api): handle null response from payment gateway
docs: update API authentication guide
refactor(db): extract connection pooling to module
perf: optimize image loading with lazy load
feat!: redesign user API endpoints
BREAKING CHANGE: /api/users now returns paginated results.
Migration: wrap existing response handlers with `unwrapPaginated()`.
Multi-paragraph with Footers
fix(payments): prevent double-charge on retry
The payment processor was not checking idempotency keys when retries
occurred within the 30-second window. Added key validation before charge.
Fixes: #1234
Reviewed-by: Alice
Semantic Versioning Deep Dive
MAJOR.MINOR.PATCH
1.0.0 → 1.0.1 (fix: patch release)
1.0.1 → 1.1.0 (feat: minor release, resets patch)
1.1.0 → 2.0.0 (BREAKING CHANGE: major release, resets minor+patch)
Pre-release Versions
1.0.0-alpha.1 # Internal testing, unstable API
1.0.0-alpha.2 # Fixes during alpha
1.0.0-beta.1 # Feature-complete, external testing
1.0.0-beta.2 # Beta bugfixes
1.0.0-rc.1 # Release candidate, production-ready intent
1.0.0-rc.2 # RC bugfix
1.0.0 # Stable release
Precedence: 1.0.0-alpha.1 < 1.0.0-beta.1 < 1.0.0-rc.1 < 1.0.0
Build metadata (e.g., 1.0.0+build.42) is ignored for version precedence.
Version Bump Commands
# npm
npm version patch # 1.0.0 → 1.0.1
npm version minor # 1.0.0 → 1.1.0
npm version major # 1.0.0 → 2.0.0
npm version prerelease --preid=alpha # 1.0.0 → 1.0.1-alpha.0
npm version prerelease --preid=beta # 1.0.1-alpha.0 → 1.0.1-beta.0
npm version prerelease --preid=rc # → 1.0.1-rc.0
# Python (bump2version)
pip install bump2version
bump2version patch
bump2version minor
bump2version major
Automated Changelog Tools
conventional-changelog
npm install -D conventional-changelog-cli
# Generate changelog (append new entries)
npx conventional-changelog -p angular -i CHANGELOG.md -s
# First release (rewrite entire changelog from git history)
npx conventional-changelog -p angular -i CHANGELOG.md -s -r 0
semantic-release
Fully automated: determines version from commits, generates changelog, publishes, creates GitHub release.
// .releaserc.json — install: semantic-release + @semantic-release/{changelog,git}
{
"branches": ["main", {"name": "beta", "prerelease": true}],
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
["@semantic-release/changelog", {"changelogFile": "CHANGELOG.md"}],
["@semantic-release/npm", {"npmPublish": true}],
["@semantic-release/git", {"assets": ["CHANGELOG.md", "package.json"]}],
"@semantic-release/github"
]
}
Release Please (GitHub Action)
name: Release
on:
push:
branches: [main]
permissions:
contents: write
pull-requests: write
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: googleapis/release-please-action@v4
with:
release-type: node
Release Please reads conventional commits, auto-creates a release PR, bumps version, updates CHANGELOG.md, and creates a GitHub release on merge.
Changesets (Monorepo-friendly)
npm install -D @changesets/cli
npx changeset init
# Add a changeset (interactive prompt for packages + semver bump)
npx changeset
# Consume changesets: bump versions + update changelogs
npx changeset version
# Publish all changed packages
npx changeset publish
git-cliff
cargo install git-cliff # or: npm install -g git-cliff
git cliff -o CHANGELOG.md # Full changelog
git cliff --latest -o CHANGELOG.md # Since last tag
git cliff --unreleased --prepend CHANGELOG.md # Prepend unreleased
git cliff --config cliff.toml # Custom config
git cliff -o CHANGELOG.md --tag v2.0.0 # Tag unreleased as v2.0.0
# cliff.toml — key sections
[changelog]
header = "# Changelog\n"
body = """
{% for group, commits in commits | group_by(attribute="group") %}
### {{ group | upper_first }}
{% for commit in commits %}
- {{ commit.message | upper_first }} ({{ commit.id | truncate(length=7, end="") }})
{%- endfor %}
{% endfor %}"""
[git]
conventional_commits = true
commit_parsers = [
{ message = "^feat", group = "Added" },
{ message = "^fix", group = "Fixed" },
{ message = "^perf", group = "Performance" },
]
Changelog vs Release Notes
Changelog (CHANGELOG.md): Complete technical record for developers. Every notable change, every version, kept in repo. Structured by semver category.
Release notes (GitHub Releases / blog): Curated summary for users. Highlights what matters, includes upgrade steps, screenshots, migration info. Written per-release.
## Release Notes — v2.1.0
### Highlights
- **OAuth2 Support**: Login with Google and GitHub accounts
- **Performance**: 40% faster API response times
### What's New
- OAuth2 login with Google and GitHub providers
- Rate limiting (100 req/min default, 1000 for authenticated)
### Bug Fixes
- Fixed memory leak in WebSocket connection handler
### Upgrade Guide
npm install myapp@2.1.0 && npx myapp migrate
Writing Good Changelog Entries
Write for the user, not the developer. Describe impact, not implementation.
# Bad (commit message style)
- refactor: extract auth middleware to separate module
- fix: add null check to response handler
# Good (user-facing language)
- Improved login reliability when network is intermittent
- Fixed crash when server returns empty response
Link issues and PRs for traceability:
- Fixed pagination on search results ([#342](https://github.com/org/repo/issues/342))
- Added bulk export for reports ([#401](https://github.com/org/repo/pull/401))
Breaking Changes and Migration Guides
Document every breaking change with: what changed, why, and how to migrate.
### Breaking Changes
#### API response format changed
**Before:** Responses returned raw arrays.
**After:** All list endpoints return `{ data: [], meta: { page, total } }`.
**Migration:**
// Before: const users = await api.getUsers();
// After: const { data: users } = await api.getUsers();
#### Minimum Node.js version raised to 20
Update your CI and local environment. Node.js 16 and 18 are no longer supported.
Deprecation Notices
Announce deprecations at least one major version before removal.
### Deprecated
- `getUserById()` is deprecated. Use `getUser({ id })` instead. Will be removed in v4.0.0.
- The `/api/v1/reports` endpoint is deprecated. Migrate to `/api/v2/reports` by 2025-01-01.
- The `legacyAuth` config option no longer has effect. Use `auth.provider` instead.
Pattern: state what is deprecated, what replaces it, and when it will be removed.
Monorepo Changelog Strategies
Per-package changelogs: Each package gets its own CHANGELOG.md. Tools like Changesets handle this natively. Best when packages are independently versioned and consumed.
Root changelog: Single CHANGELOG.md at repo root. Group entries by package with scope prefixes. Works for tightly coupled packages that release together.
Hybrid: Root changelog for cross-cutting changes, per-package for package-specific changes.
# Root CHANGELOG.md (monorepo)
## [2024-03-15]
### @myorg/api (v2.1.0)
- Added rate limiting on all endpoints
### @myorg/ui (v1.4.0)
- Added dark mode toggle component
### @myorg/shared (v1.2.1)
- Fixed date formatting in non-English locales
GitHub Releases Integration
gh release create v2.1.0 --generate-notes # Auto-generate from PRs/commits
gh release create v2.1.0 --title "v2.1.0" --notes-file notes.md # Custom notes from file
gh release create v2.1.0-beta.1 --prerelease --title "v2.1.0 Beta" # Pre-release
gh release create v2.1.0 --draft --generate-notes # Draft release
gh release upload v2.1.0 dist/*.tar.gz # Attach assets
gh release create v2.1.0 --generate-notes --notes-start-tag v2.0.0 # Notes since specific tag
Changelog in CI/CD Pipeline
# .github/workflows/release.yml
name: Release
on:
push:
tags: ['v*']
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # Full history for changelog generation
- name: Generate changelog
run: npx conventional-changelog -p angular -r 1 -o RELEASE_NOTES.md
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
body_path: RELEASE_NOTES.md
draft: false
prerelease: ${{ contains(github.ref, '-beta') || contains(github.ref, '-rc') }}
Validate changelog updated in PRs by checking git diff --name-only origin/main...HEAD for CHANGELOG.md in a CI step. Fail or warn if missing.