mcpField
S
specsfy-specialist-versioning

specsfy-specialist-versioning

github.com/promovawebクラウド・DevOps87138 回インストール1 週間前に更新
リポジトリ

specsfy-specialist-versioning について

specsfy-specialist-versioningは、リリースやデプロイに向けてプロジェクトのバージョンを準備・検証するエージェントスキルです。SEMVERをバージョンの基準とし、ローカルでの準備と明示的に承認された公開を分けます。

主な機能

  1. 01SEMVERの読み取りと検証
  2. 02変更をpatch、minor、majorに分類
  3. 03バージョンを成果物メタデータへ反映
  4. 04Dockerタグの生成と検証
  5. 05公開前の成果物確認

活用シーン

  1. 01予定するリリースのバージョン準備
  2. 02ビルドやデプロイ前のDockerイメージタグ検証
  3. 03成果物間のバージョン整合性確認

インストール

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

$npx skills add https://github.com/promovaweb/specsfy --skill specsfy-specialist-versioning

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

agents/
openai.yaml
references/
standards.md
scripts/
semver.mjs

詳細

バージョニング

使用するタイミング

  • リリース、デプロイ用イメージ、Git タグ、または環境間の昇格を準備するときに、$specsfy-specialist-deploy から呼び出します。
  • リリースまたはデプロイの一連の依頼では、バージョンを準備して確認した後、調整を $specsfy-specialist-deploy に戻します。
  • 明示的な許可なしに、イメージ、タグ、GitHub Release を公開したり、デプロイを実行したりしないでください。ローカルでの準備では SEMVER を作成または更新できます。

フロー

  1. プロジェクトのルートを特定し、SEMVER、Git タグ、変更履歴、および納品に関連する成果物を確認します。
  2. SEMVER が存在せず、初期バージョンが確認済みの場合に限り、SEMVER を作成します。
  3. 変更を patch、minor、major に分類し、その影響を説明してから、次のバージョンを提案します。
  4. 許可された準備作業中に SEMVER を更新し、納品に属するメタデータ、イメージ、マニフェストに同じ値を反映します。
  5. テストを実行し、バージョンが前回の公開版より新しいことを確認します。
  6. 公開の許可がある場合は、まず不変の成果物を送信します。成果物が利用可能になってから、Git タグと GitHub Release を作成します。
  7. バージョン、ダイジェスト、コミット、適用された環境、およびロールバックコマンドを報告します。

標準

  • ルートに SEMVER を置き、安定版の MAJOR.MINOR.PATCH を 1 つだけ記載し、末尾に改行を入れます。
  • 互換性のある修正には patch、互換性のある機能追加には minor、互換性のない変更には major を使用します。
  • 準備したバージョンの情報源として SEMVER を扱います。Git タグ、OCI アノテーション、変更履歴、スタックの参照先には、同じ値を反映します。
  • イメージは SemVer タグとコミットを付けて公開し、ダイジェストを記録します。プラットフォームが対応している場合は、ダイジェストを指定してデプロイします。
  • プッシュする前に、不変のタグがすでに存在するか確認します。公開済みのイメージやタグを置き換えてはいけません。
  • 決定的な操作にはローカルユーティリティを使用します。
node scripts/semver.mjs current --project .
node scripts/semver.mjs bump patch --project .
node scripts/semver.mjs verify 1.4.1 --project .
node scripts/semver.mjs docker-tag registry.example/app --project .
node scripts/semver.mjs verify-docker-tag registry.example/app:1.4.1 --project .

スキルをインストールするときは、最初のパスがエージェントのスキルライブラリ内にある specsfy-specialist-versioning/scripts/semver.mjs を指すように調整します。

アンチパターン

  • 納品物の識別子として latest を使用する。
  • 別の値でイメージをすでにビルドした後に SEMVER を変更する。
  • レジストリにイメージが存在することを確認する前に Git タグを作成する。
  • 公開済みの成果物を修正するために同じバージョン番号で再ビルドする。新しいバージョンに更新してください。
  • ローカルでの準備と、公開またはリモート環境の変更に対する暗黙の許可を混同する。

検証

  • current と verify を実行し、SEMVER の内容を確認します。
  • docker-tag で Docker タグを生成し、ビルド、プッシュ、またはデプロイの前に verify-docker-tag を実行します。タグが SEMVER と異なる場合、フローは中断されます。
  • バージョンを直前の Git タグと比較し、同じ値またはそれ以下の値を拒否します。
  • SEMVER、イメージタグ、OCI アノテーション、変更履歴、デプロイマニフェストを照合します。
  • Git タグを作成する前に、公開済みのダイジェストを確認します。
  • ロールバック先が、すでに利用可能なバージョンとダイジェストを指していることを確認します。

関連スキル

  • リリースまたはデプロイの一連のフローを調整する唯一の責任者は $specsfy-specialist-deploy です。
  • $specsfy-specialist-docker は、ここで準備したバージョンを識別子とするイメージをビルドして公開します。
  • $specsfy-specialist-docker-swarm は、このスキルで確認したイメージとダイジェストをクラスターに適用します。
  • $specsfy-specialist-ansible は、バージョン管理されたマニフェストを転送し、ホスト上でプリフライトを実行します。
  • $specsfy-specialist-delivery-engineering は、テスト、昇格、タグ、GitHub Release を調整します。

SemVer、Git、OCI イメージの対応関係と公開手順については、references/standards.md を参照してください。

コメント