skills-release について
Skills Release は、Kitaru skills プラグインのリリースを管理するリポジトリ管理者向けスキルです。develop から main へのバージョン付き早送りのみの手順を定め、検証、タグ付け、リリースノート作成、結果確認を扱います。
主な機能
- 01早送りのみのブランチ昇格
- 023つのプラグインバージョン欄の同期
- 03jq による JSON 検証
- 04リリースタグとノートの公開
- 05公開後のブランチとページの確認
活用シーン
- 01レビュー済み develop のスナップショット公開
- 02公開前のプラグインバージョン欄の確認
- 03公開時の push やタグのエラー対応
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ zenml-io/ kitaru-skills --skill skills-releaseインストール後、Claude Code で/skills-releaseを入力して読み込まれたか確認します。
詳細
スキルのリリース
概要
main は配布ブランチです。/plugin marketplace add zenml-io/kitaru-skills
を実行すると、その時点で main にある内容がすぐにインストールされます。develop は作業のベースです。
リリースでは、main を develop の現在のコミットまでファストフォワードし、プラグインのバージョンを付与します。そのため、main は常にリリース時点の develop の正確なスナップショットになります。
main-release-only ルールセットにより、リポジトリ管理者以外は main へのプッシュと PR のマージがブロックされます。そのため、リリースは管理者がこのチェックリストを実行して行います。main への PR は作成せず、強制プッシュもしません。
バージョンは、このリポジトリ独自のプラグインバージョンです。Kitaru 製品のバージョン番号を再利用せず、テスト済みの Kitaru 互換性はリリースノートに記載してください。
前提条件
次のいずれかを満たさない場合は、リリース前に作業を中断して解決してください。
developにいて、作業ツリーに変更がないこと。git fetch originを実行済みで、ローカルのdevelopがorigin/developと同期していること。- ファストフォワードが可能であること。
git merge-base --is-ancestor origin/main origin/developの終了コードが 0 であること。 終了コードが 0 以外の場合、mainにdevelopにないコミットがあります。どのように追加されたのか調査してください。それらを上書きする強制プッシュは絶対にしないでください。
手順
-
リリース内容を確認します。
git log --oneline origin/main..origin/developを実行します。 これらのコミットからリリースノートを作成します(何が変わったか、インストールする人にとってなぜ重要かを記載)。分かっている場合は「Tested against Kitaru X.Y」の行も追加します。 -
次のバージョンをユーザーと合意します。新規または変更されたスキルにはマイナーバージョン、修正とドキュメントのみの変更にはパッチバージョンを使用します。
-
3 つすべてのバージョンフィールドを同じ値に更新します。
.claude-plugin/plugin.json→.version.claude-plugin/marketplace.json→.metadata.version.claude-plugin/marketplace.json→.plugins[0].version
-
検証します。
jq . .claude-plugin/plugin.jsonとjq . .claude-plugin/marketplace.jsonが解析でき、3 つすべてのフィールドが一致していることを確認します。jq -r .version .claude-plugin/plugin.json jq -r '.metadata.version, .plugins[0].version' .claude-plugin/marketplace.json -
develop上で 2 つの JSON ファイルのみをコミットし、コミットメッセージにRelease vX.Y.Zを指定してから、developをプッシュします。 -
リリースコミットにタグを付けます。
git tag vX.Y.Z && git push origin vX.Y.Z -
mainをファストフォワードします。git push origin develop:mainを実行します。--forceは絶対に使わないでください。拒否された場合はファストフォワードではないため、「前提条件」に戻ってください。 -
作成したリリースノートは、コマンドに直接記述せず、必ずファイル経由で公開します。コミットメッセージにはバッククォートが頻繁に含まれ、
--notes "..."引数内ではシェルがコマンド置換として実行してしまうためです。 ファイル書き込みツール(または引用符で囲んだヒアドキュメントcat > notes.md <<'EOF')を使って、リリースノートを一時ファイルに書き込んでから、次を実行します。gh release create vX.Y.Z --title "vX.Y.Z" --notes-file notes.md -
確認します。
git ls-remote origin refs/heads/main refs/heads/developで同一の SHA が表示され、GitHub Release ページが存在することを確認します。
復旧
mainへのプッシュが拒否された場合:管理者権限(バイパス権限)を確認し、「前提条件」の祖先チェックを再実行します。- 誤ったバージョンをコミットしたものの、まだタグを付けていない場合:JSON ファイルを修正し、タグ付けの前にリリースコミットを amend します。
- 誤った内容のタグをすでにプッシュしている場合:GitHub Release がまだ公開されていなければ、タグを削除して作り直します。すでに公開されている場合は、履歴を書き換えずに後続のパッチリリースを作成します。
メンテナンス
このスキルの正式なコピーは .claude/skills/skills-release/SKILL.md です。
.agents/skills/skills-release はこのファイルへのシンボリックリンクです。編集するのは正式なファイルのみです。