mcpField
S
skills-release

skills-release

github.com/zenml-ioクラウド・DevOps680 回インストール今日更新
リポジトリ

skills-release について

Skills Release は、Kitaru skills プラグインのリリースを管理するリポジトリ管理者向けスキルです。develop から main へのバージョン付き早送りのみの手順を定め、検証、タグ付け、リリースノート作成、結果確認を扱います。

主な機能

  1. 01早送りのみのブランチ昇格
  2. 023つのプラグインバージョン欄の同期
  3. 03jq による JSON 検証
  4. 04リリースタグとノートの公開
  5. 05公開後のブランチとページの確認

活用シーン

  1. 01レビュー済み develop のスナップショット公開
  2. 02公開前のプラグインバージョン欄の確認
  3. 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 にないコミットがあります。どのように追加されたのか調査してください。それらを上書きする強制プッシュは絶対にしないでください。

手順

  1. リリース内容を確認します。git log --oneline origin/main..origin/develop を実行します。 これらのコミットからリリースノートを作成します(何が変わったか、インストールする人にとってなぜ重要かを記載)。分かっている場合は「Tested against Kitaru X.Y」の行も追加します。

  2. 次のバージョンをユーザーと合意します。新規または変更されたスキルにはマイナーバージョン、修正とドキュメントのみの変更にはパッチバージョンを使用します。

  3. 3 つすべてのバージョンフィールドを同じ値に更新します。

    • .claude-plugin/plugin.json → .version
    • .claude-plugin/marketplace.json → .metadata.version
    • .claude-plugin/marketplace.json → .plugins[0].version
  4. 検証します。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
    
  5. develop 上で 2 つの JSON ファイルのみをコミットし、コミットメッセージに Release vX.Y.Z を指定してから、develop をプッシュします。

  6. リリースコミットにタグを付けます。git tag vX.Y.Z && git push origin vX.Y.Z

  7. main をファストフォワードします。git push origin develop:main を実行します。--force は絶対に使わないでください。拒否された場合はファストフォワードではないため、「前提条件」に戻ってください。

  8. 作成したリリースノートは、コマンドに直接記述せず、必ずファイル経由で公開します。コミットメッセージにはバッククォートが頻繁に含まれ、--notes "..." 引数内ではシェルがコマンド置換として実行してしまうためです。 ファイル書き込みツール(または引用符で囲んだヒアドキュメント cat > notes.md <<'EOF')を使って、リリースノートを一時ファイルに書き込んでから、次を実行します。

    gh release create vX.Y.Z --title "vX.Y.Z" --notes-file notes.md
    
  9. 確認します。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 はこのファイルへのシンボリックリンクです。編集するのは正式なファイルのみです。

コメント