/ ディレクトリ / プレイグラウンド / claude-code_rails-upgrade-skill
● コミュニティ 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のアップグレードや、古いバージョンからの追い上げに適しています。

なぜ使うのか

主な機能

ライブデモ

実際の動作

claude-code-rails-upgrade-skill.replay ▶ 準備完了
0/0

インストール

クライアントを選択

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "claude-code-rails-upgrade-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/ombulabs/claude-code_rails-upgrade-skill",
        "~/.claude/skills/claude-code_rails-upgrade-skill"
      ],
      "_inferred": true
    }
  }
}

Claude Desktop → Settings → Developer → Edit Config を開く。保存後、アプリを再起動。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "claude-code-rails-upgrade-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/ombulabs/claude-code_rails-upgrade-skill",
        "~/.claude/skills/claude-code_rails-upgrade-skill"
      ],
      "_inferred": true
    }
  }
}

Cursor は Claude Desktop と同じ mcpServers スキーマを使用。プロジェクト設定はグローバルより優先。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "claude-code-rails-upgrade-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/ombulabs/claude-code_rails-upgrade-skill",
        "~/.claude/skills/claude-code_rails-upgrade-skill"
      ],
      "_inferred": true
    }
  }
}

Cline サイドバーの MCP Servers アイコンをクリックし、"Edit Configuration" を選択。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "claude-code-rails-upgrade-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/ombulabs/claude-code_rails-upgrade-skill",
        "~/.claude/skills/claude-code_rails-upgrade-skill"
      ],
      "_inferred": true
    }
  }
}

Claude Desktop と同じ形式。Windsurf を再起動して反映。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "claude-code-rails-upgrade-skill",
      "command": "git",
      "args": [
        "clone",
        "https://github.com/ombulabs/claude-code_rails-upgrade-skill",
        "~/.claude/skills/claude-code_rails-upgrade-skill"
      ]
    }
  ]
}

Continue はマップではなくサーバーオブジェクトの配列を使用。

~/.config/zed/settings.json
{
  "context_servers": {
    "claude-code-rails-upgrade-skill": {
      "command": {
        "path": "git",
        "args": [
          "clone",
          "https://github.com/ombulabs/claude-code_rails-upgrade-skill",
          "~/.claude/skills/claude-code_rails-upgrade-skill"
        ]
      }
    }
  }
}

context_servers に追加。保存時に Zed がホットリロード。

claude mcp add claude-code-rails-upgrade-skill -- git clone https://github.com/ombulabs/claude-code_rails-upgrade-skill ~/.claude/skills/claude-code_rails-upgrade-skill

ワンライナー。claude mcp list で確認、claude mcp remove で削除。

ユースケース

実用的な使い方: claude-code_rails-upgrade-skill

コードに手を付ける前にRailsアップグレードを計画する方法

👤 複数バージョンをまたぐアップグレードに直面しているRails開発者 ⏱ ~60 min intermediate

使うタイミング: Rails 6.1を使用中で7.2まで上げる必要がある場合。運任せではなく、計画が欲しいとき。

前提条件
  • スキルがインストール済み — git clone https://github.com/ombulabs/claude-code_rails-upgrade-skill ~/.claude/skills/rails-upgrade-skill
  • Gitワーキングツリーがクリーンな状態 — 必ずブランチ上でアップグレードし、現在の状態をコミットしておく
フロー
  1. 現在の状態を監査する
    このRailsアプリを監査してください:現在のバージョン、Rubyバージョン、Gem、テスト実行時の非推奨警告。✓ コピーしました
    → ベースラインレポート
  2. アップグレードパスを構築する
    Rails 7.2へのアップグレードを計画してください。バージョンごとに段階的に進め(6.1 → 7.0 → 7.1 → 7.2)、各段階のマイルストーン基準を設定。✓ コピーしました
    → 複数段階の計画
  3. ブロッカーを特定する
    7.2互換バージョンが存在しないGemはどれですか?各Gemへの対応案(アップグレード/置換/フォーク)を提示してください。✓ コピーしました
    → Gem別ブロッカーリスト

結果: 段階的なマイルストーンを含む現実的なアップグレード計画。

注意点
  • メジャーバージョンを2つ一度に飛ばす — スキルは一度に1マイナー/メジャーずつ進めるよう制御します。上書きしないでください

非推奨警告の一括検出と修正

👤 アップグレード途中のRails開発者 ⏱ ~90 min intermediate

使うタイミング: バージョン間の移行中で、テスト実行結果が非推奨警告で埋め尽くされているとき。

フロー
  1. 収集
    テストを実行し、ユニークな非推奨警告をすべて収集してください。✓ コピーしました
    → 重複を除いたリスト(ファイル名:行番号付き)
  2. グループ化して修正
    原因別にグループ化し、各グループに対して最小限の修正をdiff形式で提案してください。✓ コピーしました
    → グループ化された修正diff

結果: 次のバージョンアップに向けてクリーンなテスト実行結果が得られる。

新しいフレームワークデフォルトを安全に適用する

👤 rails app:updateの対応に取り組むRails開発者 ⏱ ~60 min advanced

使うタイミング: Gemfileのバージョンを上げてrails app:updateを実行した後、新しいイニシャライザが大量に生成されたとき。

フロー
  1. diffをレビューする
    rails app:updateのdiffをレビューしてください。アプリに破壊的影響を与える可能性のあるデフォルト変更(strict_loading、zeitwerkモードなど)をフラグ付けしてください。✓ コピーしました
    → 変更ごとのリスク注釈
  2. 段階的に有効化する
    リスクのある各デフォルトについて、段階的ロールアウト計画を作成してください:環境フラグで有効化 → ステージングで検証 → 本番切り替え。✓ コピーしました
    → デフォルトごとの段階的計画

結果: 予期しないリグレッションなくデフォルトが有効化される。

注意点
  • load_defaultsをすべて一度に有効化する — new_framework_defaults_X.Y.rbを使って個別に段階的に有効化する

組み合わせ

他のMCPと組み合わせて10倍の力を

claude-code-rails-upgrade-skill + claude-code-owasp-skill

アップグレード後のコードに対するセキュリティレビュー

Rails 7.2へのアップグレード後、認証とパラメータ処理に対してOWASPレビューを実行してください。✓ コピーしました

ツール

このMCPが提供する機能

ツール入力呼び出すタイミングコスト
Audit repo すべてのアップグレードの開始時 Claude tokens
Plan upgrade path current, target 監査の後 Claude tokens
Gem compat check Gemfile, target Rails バージョンを上げる前 Claude tokens + RubyGems API
Deprecation sweep test log バージョン間の移行時 Claude tokens
Framework defaults migration diff from rails app:update rails app:update実行後 Claude tokens

コストと制限

運用コスト

APIクォータ
なし
呼び出しあたりのトークン
アップグレード全体で20〜80kトークン
金額
無料
ヒント
非推奨の一括検出はアプリ全体ではなく、特定のディレクトリに絞って実行してください。

セキュリティ

権限、シークレット、影響範囲

認証情報の保管: 認証情報なし
データ送信先: コードが推論のためにClaudeに送信されます

トラブルシューティング

よくあるエラーと対処法

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による非推奨修正のガイドなし

その他

リソース

📖 GitHub の公式 README を読む

🐙 オープンな issue を見る

🔍 400以上のMCPサーバーとSkillsを見る