mcpField
R
release-guard

release-guard

github.com/d-o-hubクラウド・DevOps1336 回インストール今日更新
リポジトリ

release-guard について

Rust プロジェクトのリリース前提条件を確認するスキルです。ブランチ、PR、CI、作業ツリー、バージョンを検証し、条件に合わないリリースを阻止します。

主な機能

  1. 01main からのリリースを必須化
  2. 02PR のマージ状態を確認
  3. 03CI の完了と成功を確認
  4. 04Cargo.toml のバージョンとタグを照合
  5. 05セマンティックバージョンを検査

活用シーン

  1. 01タグ作成前のリリース条件確認
  2. 02CI 未完了または失敗時のリリース阻止
  3. 03リリースブランチと PR 状態の確認
  4. 04公開前のバージョン整合性確認

インストール

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

$npx skills add https://github.com/d-o-hub/rust-self-learning-memory --skill release-guard

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

同梱ファイルci-reference.md

詳細

リリースガードスキル

コア規則(絶対に違反しないこと)

  • リリースは、PR のマージ後に main からのみ行います。
  • すべての CI ジョブが完了し、成功している必要があります。キューに入っているジョブがあってはなりません。
  • ブランチ保護でステータスチェックが必須になっていることを確認します。
  • リリースを作成する前に、バージョンがタグと一致している必要があります(cargo-dist の要件)。

有効化手順

  1. PR の確認:必要に応じて PR 番号を尋ねます。gh pr view $PR_NUM --json state,baseRefName を実行します。条件:state=CLOSED、baseRefName=main。
  2. ブランチ:git branch --show-current と gh repo view --json default_branch を実行します。main 以外の場合は失敗とします。
  3. CI:gh run list --branch main --limit 5 --json status,conclusion を実行します。すべて完了済みかつ成功している必要があります。ログ/スクリーンショットを保存します。
  4. クリーン状態:git status を実行します(作業ディレクトリがクリーンであること)。
  5. バージョン確認(重要):grep '^version =' Cargo.toml の結果がタグと一致している必要があります(v 接頭辞なし)。

失敗時の応答

🚫 BLOCKED: [Exact violation]
Fix:
- Merge PR to main
- Wait CI: gh run list --branch main
- git checkout main && git pull
- BUMP VERSION in Cargo.toml FIRST (must match tag)
Re-run task.

バージョン不一致の例(v0.1.22 のインシデント)

Tag: v0.1.22 pushed at commit 05c0481
Cargo.toml version: 0.1.21 (MISMATCH!)
Result: cargo-dist failed: "This workspace doesn't have anything for dist to Release!"

Fix: ALWAYS bump version BEFORE pushing tag.
Use: cargo release patch|minor|major (handles atomically)

合格:安全なリリース

  • Semver チェック:cargo semver-checks check-release --workspace(ADR-034)
  • タグ:vMAJOR.MINOR.PATCH(セマンティックバージョニング)。
  • 推奨:cargo release patch|minor|major(ADR-034)
  • 代替手段:gh release create v1.2.3 --generate-notes --target main
  • 実行前に確認します。

例

  • ユーザー:「develop の PR #199 からリリースを作成」→ ブロック:ブランチが誤っています。
  • ユーザー:「PR #199 の後に v1.0.0 をタグ付け」→ PR/CI/ブランチを確認 → 条件を満たせば続行。

段階的な開示:CI の詳細については、必要に応じて ci-reference.md を参照してください。


## Best Practices Applied
- **Description**: Keyword-rich for matching ("release", "tag").
- **allowed-tools**: Read + Bash wildcards (gh/git CLI). Install `gh`.[2]
- **Structure**: Essential in SKILL.md; link supports (add `ci-reference.md` for details).
- **Load/Test**: Restart Claude Code. Ask "What Skills available?". Test: "Create release PR #199".

コメント