mcpField
J
jackin-release-notes

jackin-release-notes

github.com/jackin-project開発3469 回インストール4 週間前に更新
リポジトリ

jackin-release-notes について

前回リリース以降にマージされたすべての PR を分類し、`CHANGELOG.md` の `[Unreleased]` を作成するリリースノート用スキルです。PR のないコミットも確認し、リリース前に内容をレビューに提示します。

主な機能

  1. 01前回リリースの境界を特定
  2. 02マージ済み PR の収集
  3. 03変更をカテゴリ別に分類
  4. 04未分類コミットの確認
  5. 05`[Unreleased]` の作成と提示

活用シーン

  1. 01リリース前の変更履歴作成
  2. 02次回リリース内容のプレビュー
  3. 03マージ済み PR の記載漏れ確認

インストール

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

$npx skills add https://github.com/jackin-project/jackin-dev --skill jackin-release-notes

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

同梱ファイルagents/openai.yaml

詳細

jackin-release-notes

最後のリリースタグ以降にマージされたすべての PR を Keep a Changelog のカテゴリに分類し、CHANGELOG.md の [Unreleased] セクションを作成します。網羅性が重要です。マージされた PR をすべて記載し、漏れも重複もないようにします。

使用する場面

  • リリース前に、変更履歴を作成するとき。
  • オペレーターから次のリリースに含まれる内容のプレビューを求められたとき。

使用しない場面

  • リリース自体を作成するとき → jackin-release(リリースノートのステップとしてこのスキルを実行します)。

プロセス

  1. 境界を特定します。 LAST_TAG=$(git describe --tags --abbrev=0) を実行します。タグがない場合は、最初のコミットから開始します(git rev-list --max-parents=0 HEAD)。TAG_DATE=$(git log -1 --format=%aI "$LAST_TAG") を実行します。

    完了条件:境界となるコミットとその日付を特定していること。

  2. マージ済み PR を収集します。 gh pr list --state merged --base main --search "merged:>$TAG_DATE" --json number,title,labels,mergedAt を実行します。

    完了条件:タグ以降にマージされた PR がすべて一覧に含まれていること。

  3. 各 PR を分類します。 Conventional Commits のプレフィックスとラベルに基づいて分類します。

    プレフィックス/ラベルカテゴリ
    feat: / feature追加
    fix: / bug修正
    security:セキュリティ
    refactor:、chore:、docs:、ci:、build:変更
    deprecate:非推奨
    remove:削除
    該当なし変更(デフォルト)

    タイトルからプレフィックスを取り除き、最初の単語を大文字にします(feat: add TUI launcher → Add TUI launcher)。

    完了条件:すべての PR がいずれか 1 つのカテゴリに分類されていること。

  4. カテゴリ未分類のコミットを確認します。 git log <last-tag>..HEAD --oneline --no-merges を実行し、各コミットについて gh pr list --state merged --search "<sha>" を実行します。PR に紐づかないコミットは カテゴリ未分類のコミット に記載します。

    完了条件:タグ以降のすべての非マージコミットが、PR に紐づけられるか、一覧に記載されていること。

  5. [Unreleased] を作成します。 Keep a Changelog 形式に従い、空でないカテゴリごとにセクションを設け、各項目に PR へのリンク([#N](…/pull/N))を追加します。既存の [Unreleased] ブロック(## [Unreleased] と次の ## [ の間)を置き換えます。オペレーターが編集した項目を上書きする前に確認してください。`` マーカーはそのまま残します。

    完了条件:CHANGELOG.md にマージ済み PR がすべて適切なカテゴリの下に記載され、空のカテゴリは省略され、マーカーが維持されていること。

  6. レビュー用に提示します。 セクションを表示し、オペレーターが分類や表現を修正できるようにします。承認されるまでリリースには進みません。

冪等性

安全に再実行できます。毎回 CHANGELOG.md を読み込み直し、既存の項目を上書きする前に確認し、GitHub から PR データを最新の状態で取得します。

よくある間違い

  • Conventional Commits のプレフィックスがない PR を漏らすこと。デフォルトで 変更 に分類されるため、省略しないでください。
  • 空のカテゴリを記載すること(「削除 の項目なし」は不要です。セクションごと省略してください)。
  • 各項目に PR へのリンクを付け忘れること。
  • オペレーターが編集した [Unreleased] を確認せずに上書きすること。

コメント