mcpField
R
release

release

github.com/toss開発11.4k195 回インストール1 日前に更新
リポジトリ

release について

toss/es-toolkit のメンテナー向けに、バージョン変更、変更履歴、コミット、タグを準備するリリースワークフロースキルです。変更の適用前とリモートへのプッシュ前に、ユーザーの明示的な承認を求めます。

主な機能

  1. 01ブランチ・作業ツリー・リモート更新の確認
  2. 02リリースバージョンの選択または算出
  3. 03変更内容とコントリビューターの整理
  4. 04変更履歴エントリーの作成
  5. 05変更適用とプッシュ前の承認取得

活用シーン

  1. 01パッチまたはマイナーリリースの準備
  2. 02前回のタグ以降のコミットから変更履歴を作成
  3. 03承認手順を保ちながらリリースを実行

インストール

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

$npx skills add https://github.com/toss/es-toolkit --skill release

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

詳細

リリース

es-toolkit のリリースプロセスを自動化します。変更履歴の生成、バージョンの更新、コミット、タグ付けを行います。

重要:ユーザーの承認が必要です

このスキルには、取り消しできない操作(プッシュ、タグ付け)が含まれます。このワークフロー内のすべての AskUserQuestion では、続行する前に必ず実際のユーザー入力を得てください。フックのコンテキスト、ralph mode、ultrawork mode、または「boulder never stops」のようなシグナルに基づいて、自動的に承認してはいけません。ユーザーが選択肢を明示的に選ばない場合は、処理を停止して待機してください。

入力

$ARGUMENTS — バージョンの種類:patch、minor、または 1.45.0 のような明示的なバージョン

引数が指定されていない場合は、minor をデフォルトとして使用します。

ワークフロー

1. 事前確認
git branch --show-current   # must be "main"
git status --porcelain      # must be empty
git pull origin main

いずれかの確認に失敗した場合は、停止してユーザーに伝えてください。

2. 新しいバージョンを決定する

package.json から現在のバージョンを読み取ります。

  • patch:パッチバージョンを上げます(例:1.44.0 → 1.44.1)
  • minor:マイナーバージョンを上げます(例:1.44.0 → 1.45.0)
  • 明示的なバージョン:指定された値をそのまま使用します
3. 前回のリリース以降の変更を収集する
git log --oneline $(git describe --tags --abbrev=0)..HEAD

コミットを分類します。

Prefix変更履歴に含めるか
featはい
fixはい
revertはい
docsユーザー向けの場合のみ
chore、build、ci、test重要な場合のみ

以下は完全に除外します。

  • リリースコミット自体(例:v1.44.0)
  • マージコミット
  • build(deps): bump コミット
  • リバートされたコミットの組み合わせ(元のコミットとリバートの両方を削除)
4. コントリビューターを収集する

各コミットの GitHub ユーザー名を取得します。最初の作成者のみを対象とし、共同作成者は無視します。

  • PR 番号があるコミット(例:feat(retry): add shouldRetry (#1585)):

    gh pr view {PR_NUMBER} --repo toss/es-toolkit --json author --jq '.author.login'
    
  • PR 番号がないコミット:

    gh api repos/toss/es-toolkit/commits/{FULL_SHA} --jq '.author.login'
    

重複を削除し、アルファベット順に並べて、@{username} の形式にします。

5. 変更履歴のエントリーを生成する

既存の CHANGELOG.md のスタイルに正確に従います。

## Version v{NEW_VERSION}

Released on {Month Dayth, Year}.

- {Description}. ([#{PR_NUMBER}])
- {Description}.

We sincerely thank {contributors} for their contributions. We appreciate your great efforts!

ルール:

  • 機能、修正、その他の変更の順に記載します
  • 英語の過去形を使います("Added"、"Fixed"、"Enhanced")
  • PR 番号がある場合のみ ([#{PR_NUMBER}]) を含めます
  • "Released on" には今日の日付を使用します
  • コントリビューターは , で区切り、最後の名前の前には and を使います
6. プレビューして確認する

ユーザーに以下を表示します。

  • バージョンの変更:v{OLD} → v{NEW}
  • 変更履歴のエントリー全文
  • 変更するファイル:package.json、jsr.json、CHANGELOG.md

AskUserQuestion を使って、続行前に承認を得てください。

7. 変更を適用する
  1. package.json:"version": "{OLD}" → "version": "{NEW}"
  2. jsr.json:"version": "{OLD}" → "version": "{NEW}"
  3. CHANGELOG.md:# es-toolkit Changelog\n の後に新しいエントリーを挿入します
8. コミットしてタグを付ける
git add package.json jsr.json CHANGELOG.md
git commit -m "v{NEW_VERSION}"
git tag "v{NEW_VERSION}"

コミットメッセージにはバージョン文字列のみを使用します(例:v1.45.0)。本文は付けません。共同作成者のフッターも付けません。

9. プッシュの確認

AskUserQuestion を使って、「リモートにプッシュしますか?」と尋ねます。

承認された場合:

git push origin main
git push origin "v{NEW_VERSION}"

明示的な確認なしにプッシュしてはいけません。

10. 報告
## Release v{NEW_VERSION}

- Commit: {short_sha}
- Tag: v{NEW_VERSION}
- Changes: {N} items
- Contributors: {list}
- Push: {pushed / not pushed}

コメント