mcpField
C
changelog-writer

changelog-writer

github.com/patricio0312rev開発63617 回インストール41 週間前に更新
リポジトリ

changelog-writer について

changelog-writerは、バージョン管理の履歴から変更履歴やリリースノートを作成する、メンテナー向けスキルです。コミットを種類別に整理し、破壊的変更を示して、セマンティックバージョニングの更新案を提示します。

主な機能

  1. 01リリース間のGitコミット分析
  2. 02変更内容の種類別分類
  3. 03破壊的変更の検出と明示
  4. 04変更履歴とリリースノートの生成
  5. 05セマンティックバージョン更新案

活用シーン

  1. 01新バージョンのコミット整理
  2. 02ユーザー向けリリースノートの作成
  3. 03公開前の破壊的変更の確認
  4. 04変更履歴と移行ガイドの準備

インストール

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

$npx skills add https://github.com/patricio0312rev/skills --skill changelog-writer

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

詳細

変更履歴とリリースノートの作成者

バージョン管理の履歴から、プロフェッショナルな変更履歴とリリースノートを生成します。

基本的なワークフロー

  1. コミットを分析する:前回のリリース以降の Git 履歴を解析します
  2. 変更を分類する:種類(feat、fix、docs など)ごとにグループ化します
  3. 破壊的変更を特定する:互換性のない変更に印を付けます
  4. 主要な変更を抽出する:最も重要な変更を取り上げます
  5. ドキュメントをフォーマットする:Keep a Changelog の形式に従います
  6. バージョンを提案する:セマンティックバージョニングに基づく更新を推奨します
  7. リリースノートを生成する:ユーザーにわかりやすい概要を作成します

コミットの分析

次の情報を抽出する
  • コミットメッセージ(Conventional Commits が望ましい)
  • PR のタイトルと説明
  • Issue の参照(#123)
  • マージコミットのメッセージ
  • コミットの作成者
パターンを解析する
feat(auth): add OAuth2 support
^    ^      ^
|    |      └─ Description
|    └─ Scope (optional)
└─ Type

種類とカテゴリ:

  • feat → 追加
  • fix → 修正
  • docs → ドキュメント
  • style、refactor → 変更
  • perf → パフォーマンス
  • test → テスト
  • chore、ci → 内部
  • BREAKING CHANGE → 破壊的変更

変更履歴の形式(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

- New feature X
- Support for Y

### Changed

- Updated Z behavior

### Fixed

- Resolved issue #123

## [2.1.0] - 2024-01-15

### Added

- OAuth2 authentication support
- User profile management API
- Dark mode toggle

### Changed

- Improved error messages
- Updated dependencies to latest versions

### Deprecated

- Legacy authentication method (will be removed in 3.0.0)

### Fixed

- Memory leak in WebSocket connection
- Incorrect date formatting in reports
- Race condition in concurrent requests

### Security

- Patched XSS vulnerability in user input

## [2.0.0] - 2023-12-01

### Breaking Changes

- ⚠️ Removed support for Node.js 16
- ⚠️ Changed API response format for `/users` endpoint
- ⚠️ Renamed `config.yaml` to `config.yml`

### Added

- Complete API rewrite with improved performance
- WebSocket support for real-time updates

### Migration Guide

See [MIGRATION_v2.md](./docs/MIGRATION_v2.md) for upgrade instructions.

[unreleased]: https://github.com/user/project/compare/v2.1.0...HEAD
[2.1.0]: https://github.com/user/project/compare/v2.0.0...v2.1.0
[2.0.0]: https://github.com/user/project/releases/tag/v2.0.0

リリースノートの形式

# Release v2.1.0 - "Feature Release Name"

Released: January 15, 2024

## 🎉 Highlights

This release brings major improvements to authentication and user experience:

- **OAuth2 Support**: Users can now sign in with Google, GitHub, and Microsoft
- **Dark Mode**: Toggle between light and dark themes
- **Performance**: 40% faster API response times

## ✨ New Features

- OAuth2 authentication with popular providers (#456)
- User profile management API (#478)
- Dark mode toggle in settings (#492)
- Export data in CSV format (#501)

## 🐛 Bug Fixes

- Fixed memory leak in WebSocket connections (#489)
- Resolved incorrect date formatting in reports (#495)
- Fixed race condition in concurrent API requests (#503)

## 🔄 Changes

- Improved error messages across the application
- Updated all dependencies to latest stable versions
- Refined UI animations for smoother experience

## 🔒 Security

- Patched XSS vulnerability in user input validation
- Updated JWT library to address CVE-2024-1234

## 📚 Documentation

- Added OAuth2 setup guide
- Updated API reference with new endpoints
- Improved troubleshooting section

## 🙏 Contributors

Thank you to all contributors who made this release possible:

- @alice - OAuth2 implementation
- @bob - Dark mode feature
- @charlie - Bug fixes and testing

## 📦 Installation

```bash
npm install [email protected]
# or
yarn add [email protected]
```

🔗 リンク


**注:**これはマイナーリリースです。破壊的変更はありません。2.0.x から安全にアップグレードできます。


## Semantic Versioning Rules

Given a version number MAJOR.MINOR.PATCH (e.g., 2.1.0):

1. **MAJOR** (2.x.x → 3.x.x)
   - Breaking changes
   - Incompatible API changes
   - Removed features

2. **MINOR** (2.1.x → 2.2.x)
   - New features
   - Backward-compatible functionality
   - Deprecated features

3. **PATCH** (2.1.0 → 2.1.1)
   - Bug fixes
   - Security patches
   - Performance improvements

**Special versions:**
- `0.x.x` - Initial development (breaking changes allowed in minor)
- `x.y.0-alpha.1` - Pre-release
- `x.y.0-beta.2` - Beta release
- `x.y.0-rc.1` - Release candidate

## Git Commands for Changelog Generation

```bash
# Get commits since last tag
git log $(git describe --tags --abbrev=0)..HEAD --oneline

# Get commits between two tags
git log v2.0.0..v2.1.0 --oneline

# Get commits with PR numbers
git log --merges --pretty=format:"%s" v2.0.0..HEAD

# Get contributors
git log v2.0.0..HEAD --format='%aN' | sort -u

# Get commit count by type
git log v2.0.0..HEAD --oneline | grep -E '^[a-f0-9]+ (feat|fix|docs)' | cut -d' ' -f2 | sort | uniq -c

破壊的変更の検出

次の項目を確認します。

  • コミットメッセージに BREAKING CHANGE: が含まれている
  • コミットの種類に ! が付いている(例:feat!:)
  • PR に「breaking-change」のラベルが付いている
  • 依存関係がメジャーアップデートされている
  • API エンドポイントに変更がある
  • 設定ファイルの形式に変更がある

明確に記載します:

### Breaking Changes

⚠️ **API Response Format Changed**

The `/api/users` endpoint now returns:

```json
// Before
{ "data": [...] }

// After
{ "users": [...], "total": 100 }
```

**移行方法:**API クライアントを更新し、data の代わりに users にアクセスしてください。


## Automation Tools

### Using conventional-changelog
```bash
npm install -g conventional-changelog-cli

# Generate changelog
conventional-changelog -p angular -i CHANGELOG.md -s

# Generate for specific version
conventional-changelog -p angular -i CHANGELOG.md -s -r 0
git-cliff を使用する
# Install git-cliff
cargo install git-cliff

# Generate changelog
git-cliff --tag v2.1.0 > CHANGELOG.md

# Generate release notes
git-cliff --tag v2.1.0 --unreleased
GitHub リリーススクリプト
#!/bin/bash
# scripts/release.sh

VERSION=$1
PREVIOUS_TAG=$(git describe --tags --abbrev=0)

# Generate release notes
gh release create "$VERSION" \
  --title "Release $VERSION" \
  --notes "$(git log $PREVIOUS_TAG..HEAD --pretty=format:'- %s')"

ユーザー向けと開発者向け

ユーザー向け(リリースノート)
  • メリットと機能に焦点を当てます
  • 専門用語を控えめにします
  • スクリーンショットやデモを含めます
  • ユーザーエクスペリエンスの改善を強調します
  • アップグレード手順を記載します
開発者向け(変更履歴)
  • 技術的な詳細
  • API の変更
  • 移行ガイドを伴う破壊的変更
  • 依存関係の更新
  • 内部リファクタリング

プロジェクトの種類別テンプレート

ライブラリ/パッケージ

焦点:API の変更、破壊的変更、新しいメソッド

アプリケーション

焦点:新機能、バグ修正、UI の改善

CLI ツール

焦点:新しいコマンド、フラグの変更、動作の変更

API サービス

焦点:エンドポイントの変更、パフォーマンス、セキュリティ

ベストプラクティス

  1. 具体的にする:「ログインのバグを修正」→「モバイルでのセッションタイムアウトを修正」
  2. Issue にリンクする:GitHub の Issue を参照します(#123)
  3. 貢献者に謝意を示す:貢献を称えます
  4. 影響を強調する:破壊的変更を明確に示します
  5. 論理的にグループ化する:時系列ではなく種類ごとにまとめます
  6. 定期的に更新する:リリースごとに更新します
  7. 規約に従う:Keep a Changelog の形式を使用します
  8. セマンティックバージョニング:正しく使用します

変更履歴エントリーの例

良い例
### Added

- OAuth2 authentication support (#456) - @alice
- Export data in CSV format with custom column selection (#501)

### Fixed

- Resolved memory leak in WebSocket connections affecting long-running sessions (#489)
- Fixed race condition in concurrent API requests that caused data inconsistency (#503)
悪い例
### Added

- Added stuff
- New feature

### Fixed

- Fixed bug
- Updates

バージョン提案アルゴリズム

If breaking changes detected:
  MAJOR++, MINOR=0, PATCH=0
Else if new features:
  MINOR++, PATCH=0
Else if only fixes:
  PATCH++

リリースチェックリスト

リリースを公開する前に、次の項目を確認します。

  • 前回のリリース以降のコミットをすべて確認する
  • 破壊的変更を特定する
  • 変更を適切に分類する
  • CHANGELOG.md を更新する
  • リリースノートを作成する
  • package.json/pyproject.toml のバージョンを更新する
  • Git タグを作成する
  • CI/CD を起動するためにタグをプッシュする
  • パッケージレジストリ(npm、PyPI など)に公開する
  • リリースノートを添えて GitHub リリースを作成する
  • 関連するチャンネルで告知する

出力チェックリスト

変更履歴の生成では、毎回次の内容を提示します。

  • Keep a Changelog に準拠した形式の CHANGELOG.md
  • リリースノートのドラフト(ユーザー向け)
  • セマンティックバージョニングの提案(X.Y.Z)
  • 明確に示された破壊的変更
  • 破壊的変更に対する移行ガイド
  • 実行する Git タグコマンド
  • 比較ビューへのリンク

コメント