mcpField
D
draft-release-notes

draft-release-notes

github.com/jamiepine開発58.9k70 回インストール3 週間前に更新
リポジトリ

draft-release-notes について

draft-release-notesは、前回のタグ以降の変更を基に、CHANGELOG.mdの[Unreleased]欄にリリースの説明を作成するスキルです。開発中やリリース前の下書きに使え、バージョン更新やコミットは行いません。

主な機能

  1. 01コミットとリリースノートのプレビューを収集
  2. 02差分統計からテーマを把握
  3. 03[Unreleased]欄のみを書き換え
  4. 04確定済みリリース記録を保持
  5. 05未コミットかつ未タグの状態を維持

活用シーン

  1. 01開発中のリリースノート作成
  2. 02前回タグ以降の変更の要約
  3. 03バージョン更新前のノート刷新
  4. 04変更がない場合に欄を空のまま維持

インストール

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

$npx skills add https://github.com/jamiepine/voicebox --skill draft-release-notes

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

詳細

リリースノートの下書き

目的

CHANGELOG.md の先頭にある [Unreleased] セクションを、前回のタグ以降の実際の変更に基づいたストーリー性のあるリリース内容で更新します。これは非破壊的な作業コピーです。開発中は何度でも実行できます。

ワークフロー

  1. 前回のリリースタグを特定し、変更を収集します。

    LAST_TAG=$(git tag --list "v*" --sort=-v:refname | head -n 1)
    echo "Last tag: $LAST_TAG"
    

    次に、3 つのソースから素材を収集します。

    a. 前回のタグ以降のコミットログ:

    git log --oneline "$LAST_TAG"..HEAD
    

    b. GitHub が生成するリリースノートのプレビュー (PR タイトル、新しいコントリビューター):

    gh api repos/:owner/:repo/releases/generate-notes \
      -f tag_name="vNEXT" \
      -f target_commitish="$(git rev-parse HEAD)" \
      -f previous_tag_name="$LAST_TAG" \
      --jq '.body'
    

    c. テーマ分析のための diff 統計:

    git diff --stat "$LAST_TAG"..HEAD
    
  2. リリースのストーリーを下書きします。

    以下の形式に従って、[Unreleased] セクション用の Markdown を書きます。## [Unreleased] という見出し自体は含めず、本文の内容だけを書きます。

  3. CHANGELOG.md を更新します。

    ## [Unreleased] と次の ## [ 見出しの間にあるすべてを、新しい下書きで置き換えます。HTML コメントのヘッダーと、その下にある既存のリリースセクションはすべて保持します。

    [Unreleased] セクションは常に存在し、ヘッダーコメントの直後の最初のセクションでなければなりません。

  4. コミット、タグ付け、バージョンの更新は行わないでください。 ファイルをワーキングツリー内で変更したままにしておきます。

リリースストーリーの形式

[Unreleased] セクションは次のように構成します。

## [Unreleased]

<One strong opening paragraph: what this release is about and why it matters.
Tie it to concrete shipped changes. No vague hype.>

<One paragraph on major technical shifts, if applicable.>

### <Feature/Theme Group>
- Bullet points with specifics
- Reference PRs where available: ([#123](https://github.com/jamiepine/voicebox/pull/123))

### <Another Group>
- ...

### Bug Fixes
- ...

_Voicebox is free and open source, built with [Capy](https://capy.ai?utm_source=voicebox&utm_medium=changelog&utm_campaign=built-with-capy)._
スタイルガイドライン
  • 事実に基づき、具体的に。 すべての記述は実際のコミットまたは PR にひも付けられるべきです。
  • 箇条書きよりもストーリー性を重視。 ストーリーを語る段落を先に置き、その後を箇条書きで補足します。
  • コミット単位ではなくテーマ単位でグループ化。 関連する変更を説明的な見出しの下にまとめます。
  • PR が存在する場合は参照する ただし、でっち上げないこと。
  • 些細な雑務は省略(タイプミス修正、CI の調整)ただしそれがリリースの大部分を占める場合を除きます。
  • Capy の行で締めくくる。 すべてのリリースセクションは、テンプレートにある斜体の「built with Capy」の行で変更なく終わります。これはクレジットであり、Capy や未出荷の作業について主張する場ではありません。
  • 既存のリリースの語調に合わせる — トーンの参考として、CHANGELOG.md の v0.2.1 と v0.2.3 のエントリを参照してください。

変更がない場合

git log "$LAST_TAG"..HEAD が空の場合、[Unreleased] セクションを空のまま (見出しのみ) にし、下書きするものがないことをユーザーに伝えます。

注意事項

  • このスキルは [Unreleased] セクションにのみ触れます。確定済みのリリースセクションを変更することはありません。
  • エージェントは、機能開発の途中、PR の前、リリースを切る直前など、いつでもこのスキルの実行を求められることがあります。
  • release-bump スキルは、確定する前にこの下書きが最新であることに依存しています。

コメント