● コミュニティ
ombulabs
⚡ 即起動
claude-code_rails-upgrade-skill
作者 ombulabs · ombulabs/claude-code_rails-upgrade-skill
監査から非推奨の修正、bundle updateまで、Railsのアップグレードを体系的に進めるClaude Codeスキルです。既存の動作を壊さずにアップグレードを完了します。
Rails Upgrade Skill(OmbuLabs製)は、Claudeを標準的なRailsアップグレード手順に沿って導きます。コードベースの監査、非推奨の修正、フレームワークデフォルトの適用、Gem非互換への対応、新バージョンでの動作検証を行います。OmbuLabsの本番環境でのRailsアップグレード経験に基づいています。N → N+1のアップグレードや、古いバージョンからの追い上げに適しています。
なぜ使うのか
主な機能
- バージョン別プレイブック(Rails 6 → 7、7 → 7.1、7.1 → 7.2、7.2 → 8)
- 非推奨警告の一括検出と修正提案
- フレームワークデフォルトの移行(rails app:update)
- 対象Railsバージョンに対するGem互換性チェック
- Spring整理(新しいRailsでのSpring除去)
- テストファースト・アップグレード:切り替え前にテストを修正
ライブデモ
実際の動作
claude-code-rails-upgrade-skill.replay
▶ 準備完了
ユースケース
実用的な使い方: claude-code_rails-upgrade-skill
使うタイミング: Rails 6.1を使用中で7.2まで上げる必要がある場合。運任せではなく、計画が欲しいとき。
フロー
-
現在の状態を監査する
このRailsアプリを監査してください:現在のバージョン、Rubyバージョン、Gem、テスト実行時の非推奨警告。✓ コピーしました
→ ベースラインレポート
-
アップグレードパスを構築する
Rails 7.2へのアップグレードを計画してください。バージョンごとに段階的に進め(6.1 → 7.0 → 7.1 → 7.2)、各段階のマイルストーン基準を設定。✓ コピーしました
→ 複数段階の計画
-
ブロッカーを特定する
7.2互換バージョンが存在しないGemはどれですか?各Gemへの対応案(アップグレード/置換/フォーク)を提示してください。✓ コピーしました
→ Gem別ブロッカーリスト
結果: 段階的なマイルストーンを含む現実的なアップグレード計画。
注意点
- メジャーバージョンを2つ一度に飛ばす — スキルは一度に1マイナー/メジャーずつ進めるよう制御します。上書きしないでください
使うタイミング: バージョン間の移行中で、テスト実行結果が非推奨警告で埋め尽くされているとき。
フロー
-
収集
テストを実行し、ユニークな非推奨警告をすべて収集してください。✓ コピーしました
→ 重複を除いたリスト(ファイル名:行番号付き)
-
グループ化して修正
原因別にグループ化し、各グループに対して最小限の修正をdiff形式で提案してください。✓ コピーしました
→ グループ化された修正diff
結果: 次のバージョンアップに向けてクリーンなテスト実行結果が得られる。
使うタイミング: Gemfileのバージョンを上げてrails app:updateを実行した後、新しいイニシャライザが大量に生成されたとき。
フロー
-
diffをレビューする
rails app:updateのdiffをレビューしてください。アプリに破壊的影響を与える可能性のあるデフォルト変更(strict_loading、zeitwerkモードなど)をフラグ付けしてください。✓ コピーしました
→ 変更ごとのリスク注釈
-
段階的に有効化する
リスクのある各デフォルトについて、段階的ロールアウト計画を作成してください:環境フラグで有効化 → ステージングで検証 → 本番切り替え。✓ コピーしました
→ デフォルトごとの段階的計画
結果: 予期しないリグレッションなくデフォルトが有効化される。
注意点
- load_defaultsをすべて一度に有効化する — new_framework_defaults_X.Y.rbを使って個別に段階的に有効化する
組み合わせ
他のMCPと組み合わせて10倍の力を
アップグレード後のコードに対するセキュリティレビュー
Rails 7.2へのアップグレード後、認証とパラメータ処理に対してOWASPレビューを実行してください。✓ コピーしました
コストと制限
運用コスト
- APIクォータ
- なし
- 呼び出しあたりのトークン
- アップグレード全体で20〜80kトークン
- 金額
- 無料
- ヒント
- 非推奨の一括検出はアプリ全体ではなく、特定のディレクトリに絞って実行してください。
セキュリティ
権限、シークレット、影響範囲
認証情報の保管: 認証情報なし
データ送信先: コードが推論のためにClaudeに送信されます
- 必ずブランチ上でアップグレードしてください。Claudeに破壊的なコマンド(db:migrate、bundle update)を明示的な確認なしに実行させないでください。
トラブルシューティング
よくあるエラーと対処法
rails app:updateがコミットされていないバイナリファイルを生成する
通常はシステムファイルです。.gitignoreに追加し、クリーンな状態で再生成してください。
テストがローカルでは通るがアップグレード後にCIで失敗する
オートロードの違いやproductionモードでのeager_loadが原因の可能性があります。ローカルでRAILS_ENV=productionを指定して実行してください。
Gemのbundle解決が失敗する
スキルが代替のGemバージョンを提案します。フォークや別のGemへの置き換えが必要な場合もあります。
確認: bundle update --conservative
代替案
claude-code_rails-upgrade-skill 他との比較
| 代替案 | 代わりに使う場面 | トレードオフ |
| next_rails gem | 決定論的なアップグレードヘルパーが欲しい場合 | LLMによる非推奨修正のガイドなし |