release について
brooks-lintのreleaseスキルは、メンテナー向けにバージョン選定、変更履歴の監査、検証、公開までの手順を示します。未リリースの全コミットを確認し、対象コミットのCI成功後に公開する流れです。
主な機能
- 01バージョン決定前の未リリース変更確認
- 02マニフェストとテキストファイルへの版数反映
- 03分類した変更履歴の作成と監査
- 04検証とテストの実行
- 05公開前の対象コミットCI確認
活用シーン
- 01未リリースのコミット範囲からリリースを準備
- 02検証前に変更履歴の記載漏れを確認
- 03GitHub Release作成前にCIを確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ hyhmrright/ brooks-lint --skill releaseインストール後、Claude Code で/releaseを入力して読み込まれたか確認します。
同梱ファイルagents/openai.yaml
詳細
brooks-lint — リリース
対象バージョンはユーザーのリクエストから取得します(例:1.4.0)。空の場合は、何も行う前にメンテナーにセマンティックバージョンの更新内容を確認してください。
そのバージョンを受け入れる前に、バックログを確認してください。 npm run changelog:audit を実行し、実際に未リリースの変更を確認します。バージョンの更新内容は、リリースのきっかけとなった変更ではなく、全範囲に基づいて決定します。範囲内に機能追加や新しいプラットフォームが含まれているのにメンテナーがパッチリリースを求めた場合は、作業を中断してその旨を伝えてください。未リリースの20件のコミット(新しいプラットフォームを含む)をパッチリリースにまとめてしまったため、v1.5.1を公開後に削除し、v1.6.0として再リリースしたことがあります。
以下の手順を順番に実行してください。bump-version.mjs は package.json からバージョンを読み取り、変更履歴には手を加えません。そのため、バージョンの編集とCHANGELOGの項目追加は手動で行います。このスクリプトは、マニフェストとバージョンを含むすべてのテキストファイルにバージョンを反映するだけです。
-
信頼できる唯一の情報源を設定します。
npm version <version> --no-git-tag-versionを実行します(--no-git-tag-versionフラグは必須です。通常のnpm versionは独自のコミットとタグを作成し、手順5で行う手動コミットと衝突します)。 -
バージョンを反映します。
npm run bumpを実行します。バージョンは.claude-plugin/plugin.json、.claude-plugin/marketplace.json、.codex-plugin/plugin.json、gemini-extension.jsonと、scripts/version-refs.mjsによって検出されるバージョンを含むすべてのテキストファイルに書き込まれます(READMEの6つすべてのバッジとアクションのuses:ピン、ドキュメントのランディングページにあるJSON-LDのsoftwareVersion、およびdocs/github-action-example.yml)。ここに一覧を記載して管理しないでください。正式な一覧はスクリプト内のものです。 -
変更履歴を記述します。
CHANGELOG.mdの先頭に、最後のリリースタグ以降のコミットを要約したカテゴリ別の注記(Added / Fixed / Changed)を含む新しいセクションを追加します。見出しは必ず## [<version>] - YYYY-MM-DDにしてください。npm run validateはこの正確な形式を解析するため、## <version>のような日付のない形式では失敗します。 3a. 全範囲を監査します。抜き取りではなく、すべてのコミットを確認してください。 次を実行します。npm run changelog:audit最後のリリースタグから範囲を特定し、3つの例外のみを適用して(リリースバンプ、ブランチ上のコミットが個別に一覧表示されているマージコミット、star-historyの更新――チャート専用の2ファイルのみを変更するボットのコミット)、残りをチェックリストとして出力します。 全項目を確認してください。各行には、今記述した項目を対応させるか、項目が不要な理由を示します。 それ以外に例外はありません。 ユーザーに見える変更のない内部的な強化にも項目が必要です。また、外部のコントリビューターによるメンテナー向けの修正にも項目が必要で、その場合は
@handleのクレジットも記載します。コミットのChangelog:トレーラーはフラグとして表示されます。そのコミットの項目は、今記述しているものです。スクリプトは、範囲内のプルリクエストの
#Nがセクションに一度も記載されていないことを検出できる場合、ゼロ以外の値で終了します。この同じチェックはリリース作業中にnpm run validate内でも実行されるため、省略できません。また、validateは停止するたびに1行出力します。チェックリストのそれ以外の項目は判断に委ねられ、強制されません。監査が成功しても、変更履歴が完全であるとは限りません。セクション内のどこかに単独の#Nがあればゲートを通過し、リベースマージされたPRは照合対象を残さず、リリースバンプ自体にステージされた変更は監査されません。AGENTS.mdのRelease Processを参照してください。 -
検証します。
npm run validateを実行します。マニフェスト、バージョンを含むテキストファイル、または CHANGELOG の項目に不整合がある場合は失敗します。修正して、問題がなくなるまで再実行します。その後、npm testを実行します。 -
コミットしてプッシュします。
npm run bumpによって書き換えられたファイルとCHANGELOG.mdをすべてステージングします。バージョンを含むファイルの対象はディスクから検出され、README は1つではないため、ファイル名を指定せずgit statusを確認します。chore(release): bump version to <version>のような規約に従ったメッセージでコミットし、mainにプッシュします(main に直接プッシュするリポジトリのため、PR はありません)。 5a. リリースに関わる各所を同期し、承認を確認します。 6つすべての README 翻訳、CHANGELOG、プラグインのマニフェスト、ウェブサイト、インストールガイドがリリースの状態と一致していることを確認します。npm run github:metadata -- --applyを実行し、続けて--checkを実行して、About、ホームページ、トピック、管理対象ラベルを同期します。無関係なラベルは保持します。明示的な公開保留に従ってください。準備が完了していて CI が成功していても、承認されたことにはなりません。npm から取り下げられたバージョンは、GitHub のタグを削除していても再利用できません。 5b. 対象のリリースコミットに対するリモート CI の完了を待ちます。 プッシュ後、git rev-parse HEADでコミットを特定し、そのコミットとheadShaが一致するValidateワークフローの実行を探して、gh run watch <run-id> --exit-statusで完了を待ちます。すべてのマトリックスジョブを確認します。実行が存在しない、キューに入っている、キャンセルされた、または失敗した場合は成功ではありません。ローカルのチェックではこのゲートを代替できません。この対象コミットの実行が正常に完了するまで、GitHub リリースを作成したり npm に公開したりしないでください。CI が失敗した場合は原因を調査して修正をコミットし、その新しいコミットの CI が完了するまで待ちます。 -
タグを付けて公開します。 リモートゲートの通過後に限り、GitHub リリースを作成します。
gh release create v<version> --title "v<version>" --notes "<changelog section>"
完了したら、リリースしたバージョンと GitHub リリースの URL を報告してください。