my-release-note

star 4

Generate release notes from merged PR history and commits. Categorizes changes by type and creates GitHub releases with semantic versioning. Use when the user asks to create a release or generate release notes (e.g., "リリースノート", "release note", "リリース作成"). Do NOT use for changelogs, commit summaries, or PR descriptions.

Ynakatsuka By Ynakatsuka schedule Updated 5/5/2026

name: my-release-note description: >- Generate release notes from merged PR history and commits. Categorizes changes by type and creates GitHub releases with semantic versioning. Use when the user asks to create a release or generate release notes (e.g., "リリースノート", "release note", "リリース作成"). Do NOT use for changelogs, commit summaries, or PR descriptions. argument-hint: "[patch|minor|major|]"

Release Note — Release Note Generator

マージ済み PR とコミット履歴からリリースノートを生成する。

手順1: 情報収集

# Get last release tag
LAST_TAG=$(gh release list --limit 1 --json tagName -q '.[0].tagName')

# Get merged PRs since last release
gh pr list --state merged --limit 50 --json number,title,body,mergedAt,author,labels,url

# Get commit history since last release
git log ${LAST_TAG}..HEAD --oneline --pretty=format:"%h %s (%an, %ad)" --date=short

# Get PR-commit associations
gh pr list --state merged --limit 50 --json number,title,mergeCommit

手順2: バージョン番号の決定

引数 ($1) によって挙動が変わる:

引数 挙動
patch / minor / major 自動判定をスキップし、$LAST_TAG の対応コンポーネントを 1 つ上げる
vX.Y.Z 形式の明示バージョン そのまま採用
引数なし 下記の自動判定ロジックを使用

patch/minor/major を計算する例 ($LAST_TAG=v1.2.3):

# patch → v1.2.4 / minor → v1.3.0 / major → v2.0.0
IFS='.' read -r MAJ MIN PAT <<< "${LAST_TAG#v}"
case "$1" in
  patch) NEW_TAG="v${MAJ}.${MIN}.$((PAT + 1))" ;;
  minor) NEW_TAG="v${MAJ}.$((MIN + 1)).0" ;;
  major) NEW_TAG="v$((MAJ + 1)).0.0" ;;
esac

自動判定 (引数なしの場合)

  • 前回リリース: $LAST_TAG
  • デフォルトは PATCH。迷ったら PATCH を選ぶ。
  • セマンティックバージョニングに基づき、以下の基準で判定:
    • MAJOR: 破壊的変更あり(互換性を壊す API/設定/挙動の変更、削除)
    • MINOR: 利用者が認識できるまとまった新機能の追加。次のいずれかを満たす場合に限る:
      • 新しいコマンド・サブコマンド・スキル・公開 API の追加
      • 既存機能に対するユーザー向けの大きな拡張(オプション追加程度では不十分)
      • 複数の新機能 PR がまとまって含まれる
    • PATCH: 上記以外すべて。バグ修正、軽微な機能改善、既存機能の小さな拡張(フラグ追加・デフォルト値変更など)、ドキュメント、リファクタ、依存更新、内部変更
  • 判断に迷う場合の指針:
    • 「新機能っぽいが小さい」→ PATCH
    • 「既存機能の挙動が少し変わる(互換性は保たれる)」→ PATCH

手順3: 変更の分類

PR タイトル・説明・コミットメッセージを分析し、以下のカテゴリに分類:

カテゴリ 対象
✨ New Features 新機能・機能拡張
🐛 Bug Fixes バグ修正
📝 Documentation ドキュメント更新
♻️ Refactoring 動作変更なしの構造改善
⚡ Performance パフォーマンス改善
🔧 Maintenance 依存関係更新、ツール変更
🚨 Breaking Changes 互換性に影響する変更

分析の優先順位: PR タイトル・説明 > PR ラベル > コミットメッセージ

手順4: リリースノートの生成

## vX.X.X - YYYY-MM-DD

### 🚨 Breaking Changes
- [変更内容] ([PR #N](URL))

### ✨ New Features
- [機能説明] ([PR #N](URL))
  - 補足詳細
  - 関連コミット: ([hash](URL))

### 🐛 Bug Fixes
- [修正内容] ([PR #N](URL))

### 📝 Documentation
- [更新内容] ([PR #N](URL))

### ♻️ Refactoring
- [リファクタ内容] ([PR #N](URL))

### 🔧 Maintenance
- [メンテ内容] ([PR #N](URL))

**Full Changelog**: https://github.com/owner/repo/compare/vOLD...vNEW

該当なしのカテゴリは省略する。

手順5: GitHub Release の作成

gh release create vX.X.X --title "vX.X.X" --notes "リリースノート内容"

注意事項

  • 日本語で記述(技術用語は英語)
  • PR と コミット両方のリンクを含める
  • Breaking Changes は最上部に配置
  • 空のカテゴリは省略
  • 関連する PR はテーマごとにグループ化
Install via CLI
npx skills add https://github.com/Ynakatsuka/dotfiles --skill my-release-note
Repository Details
star Stars 4
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator