mcpField
R
release-engine

release-engine

github.com/igmarin開発2838 回インストール4 週間前に更新
リポジトリ

release-engine について

Rails エンジンを gem としてリリースする、または新バージョンを準備する開発者向けのスキルです。バージョン選定、テスト、変更履歴とアップグレード情報、ビルド確認、公開前の承認を案内します。

主な機能

  1. 01パッチ・マイナー・メジャーの選択
  2. 02RSpec テストスイートの実行
  3. 03バージョンと変更履歴の更新
  4. 04gemspec とビルド内容の確認
  5. 05公開前の承認の必須化

活用シーン

  1. 01Rails エンジン gem のリリース準備
  2. 02バージョン変更の互換性影響の評価
  3. 03公開前の gem ビルド検証

インストール

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

$npx skills add https://github.com/igmarin/rails-agent-skills --skill release-engine

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

同梱ファイル

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

EXAMPLES.md
assets/
examples.md
release_checklist.md
release_notes_template.md

詳細

リリースエンジン

Rails エンジンを gem としてリリースするときや、新しいバージョンを準備するときにこのスキルを使用します。

クイックリファレンス

バージョンアップ使用するタイミング対応
パッチ公開動作に影響しないバグ修正や内部変更バージョン定数を更新し、「修正」に記載する
マイナー後方互換性のある機能や新しい拡張ポイントバージョン定数を更新し、「追加/変更」に記載する
メジャーAPI、セットアップ、ルート、マイグレーション、設定、またはサポート対象のフレームワークバージョンに関する破壊的変更バージョン定数を更新し、「変更/非推奨」に記載する。明確なアップグレード手順を書く

必須ゲート

DO NOT release without updating CHANGELOG and version file.

基本プロセス

  1. 範囲と互換性への影響を確認します。これはパッチ、マイナー、メジャーのどれですか?
  2. テストスイート全体を実行します:bundle exec rspec。先に進む前に、すべての失敗を修正してください。
  3. バージョンアップを設定します。バージョン定数を一度だけ更新します:lib/my_engine/version.rb 内の module MyEngine; VERSION = "1.2.0"; end。
  4. 変更履歴とアップグレード手順を更新します。
  5. gemspec のメタデータと依存関係が、テスト済みの Rails/Ruby バージョンに合っていることを確認します。
  6. gem のビルドをドライランします:gem build *.gemspec && gem push --dry-run *.gem。内容を確認します。
  7. インストール手順と README がリリース内容に合っていることを確認し、必要に応じて更新します。
  8. 公開する正確な gem 名とバージョンについて、ユーザーの承認を求めます。リリースの準備は公開の許可を意味しません。
  9. 承認を得た後にのみ公開します:gem push *.gem。

追加リソース

リリース用アセットは必要に応じて読み込み、出力にどれを使用したか明記します。

  • リリースの検証チェックリストや品質ゲートを作成するときは、assets/release_checklist.md を読み込みます。
  • GitHub リリースノート、詳細な告知、または一般公開用のリリース文面を作成するときは、assets/release_notes_template.md を読み込みます。
  • ユーザーが具体的なリリース例を必要とする場合にのみ、assets/examples.md を読み込みます。

変更履歴のガイドライン

  • コミットではなく、ユーザーに見える変更を記載し、「追加/変更/修正/非推奨」に分類します。
  • 非推奨化については、削除計画と代替手段を記載します。非推奨コードは、少なくともマイナーリリースの1サイクルは維持します。
  • アップグレード時にホスト側の変更が必要な場合は、バージョンアップがマイナーであっても、その内容を明記します。

例

## [1.2.0] - 2024-03-15
### Added
- `widget_count` config option to limit dashboard widgets (default: 10).
### Changed
- Minimum Rails version is now 7.0.

出力形式

  1. バージョンアップ — パッチ/マイナー/メジャーと、明確な理由。
  2. バージョン定数 — 更新した lib/[engine_name]/version.rb。
  3. CHANGELOG の項目 — 「追加/変更/修正/非推奨」の見出しの下に記載します。
  4. アップグレード手順 — ホストアプリの作業(設定、マイグレーション、依存関係)。
  5. Gemspec とテスト状況 — メタデータ、ファイル、依存関係の範囲を確認し、bundle exec rspec の合格/不合格の結果を示します。
  6. ドライランの出力 — 正確なコマンド gem build *.gemspec && gem push --dry-run *.gem と、内容の確認(tar tf pkg/*.gem または gem contents)。
  7. アセットの使用状況 — assets/release_checklist.md、assets/release_notes_template.md、assets/examples.md のうち、読み込んだものを記載するか、必要なかったことを明記します。
  8. GitHub リリースノート — 概要、主な内容、アップグレード手順、検証状況を簡潔にまとめた草案。
  9. リリースの阻害要因 — 未解決の問題を記載するか、「阻害要因なし」と明記します。

連携

スキル連携するタイミング
document-engineリリースに合わせて README、セットアップ手順、または API ドキュメントを更新するとき
upgrade-engineRails/Ruby バージョンのサポートや非推奨化の影響を確認するとき
test-engineリリース前にテストの合格を確認し、文書化された動作と一致させるとき

コメント