/ Directory / Playground / claude-code_rails-upgrade-skill
● Community ombulabs ⚡ Instant

claude-code_rails-upgrade-skill

by ombulabs · ombulabs/claude-code_rails-upgrade-skill

Claude Code skill that methodically upgrades Rails — from audit through deprecation fixes to bundle update — without breaking everything.

Rails Upgrade Skill (by OmbuLabs) walks Claude through the standard Rails upgrade playbook: audit the codebase, fix deprecations, apply framework defaults, handle gem incompatibilities, and verify on the new version. Based on OmbuLabs' production experience upgrading Rails apps. Good for going N → N+1, or catching up from older versions.

Why use it

Key features

Live Demo

What it looks like in practice

claude-code-rails-upgrade-skill.replay ▶ ready
0/0

Install

Pick your client

~/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
    }
  }
}

Open Claude Desktop → Settings → Developer → Edit Config. Restart after saving.

~/.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 uses the same mcpServers schema as Claude Desktop. Project config wins over global.

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
    }
  }
}

Click the MCP Servers icon in the Cline sidebar, then "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
    }
  }
}

Same shape as Claude Desktop. Restart Windsurf to pick up changes.

~/.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 uses an array of server objects rather than a map.

~/.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"
        ]
      }
    }
  }
}

Add to context_servers. Zed hot-reloads on save.

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

One-liner. Verify with claude mcp list. Remove with claude mcp remove.

Use Cases

Real-world ways to use claude-code_rails-upgrade-skill

How to plan a Rails upgrade before touching code

👤 Rails devs facing a multi-version jump ⏱ ~60 min intermediate

When to use: You're on Rails 6.1 and need to get to 7.2. You want a plan, not a prayer.

Prerequisites
  • Skill installed — git clone https://github.com/ombulabs/claude-code_rails-upgrade-skill ~/.claude/skills/rails-upgrade-skill
  • Git-clean working tree — Always upgrade on a branch; commit current state
Flow
  1. Audit current state
    Audit this Rails app: current version, Ruby version, gems, deprecation warnings from a test run.✓ Copied
    → Baseline report
  2. Build the path
    Plan the upgrade to Rails 7.2. Go version-by-version (6.1 → 7.0 → 7.1 → 7.2), each with milestone criteria.✓ Copied
    → Multi-stage plan
  3. Identify blockers
    Which gems don't have a 7.2-compatible version? Proposals for each (upgrade/replace/fork).✓ Copied
    → Per-gem blocker list

Outcome: A realistic upgrade plan with staged milestones.

Pitfalls
  • Jumping two major versions at once — Skill enforces one minor/major at a time — don't override

Sweep and fix deprecation warnings

👤 Rails devs mid-upgrade ⏱ ~90 min intermediate

When to use: You're between versions and the test run is a wall of deprecation warnings.

Flow
  1. Collect
    Run tests, collect all unique deprecation warnings.✓ Copied
    → Deduped list with file:line occurrences
  2. Group + fix
    Group by cause. Propose minimal fixes with diffs for each group.✓ Copied
    → Grouped fix diffs

Outcome: A clean test run ready for the next version bump.

Apply new framework defaults safely

👤 Rails devs navigating rails app:update ⏱ ~60 min advanced

When to use: You've bumped the Gemfile and ran rails app:update; now you have a bunch of new initializers.

Flow
  1. Review diff
    Review the diff from rails app:update. Flag any default change that could break our app (strict_loading, zeitwerk mode, etc.).✓ Copied
    → Per-change risk annotation
  2. Staged enable
    For each risky default, produce a staged rollout: enable behind env flag, validate on staging, then flip.✓ Copied
    → Staged plan per default

Outcome: Defaults enabled without surprise regressions.

Pitfalls
  • Enabling all load_defaults at once — Use new_framework_defaults_X.Y.rb to ramp individually

Combinations

Pair with other MCPs for X10 leverage

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

Security review on the upgraded code

After upgrade to Rails 7.2, run OWASP review on the auth and params handling.✓ Copied

Tools

What this MCP exposes

ToolInputsWhen to callCost
Audit repo Start of every upgrade Claude tokens
Plan upgrade path current, target After audit Claude tokens
Gem compat check Gemfile, target Rails Before bumping Claude tokens + RubyGems API
Deprecation sweep test log Between versions Claude tokens
Framework defaults migration diff from rails app:update After rails app:update Claude tokens

Cost & Limits

What this costs to run

API quota
None
Tokens per call
20-80k across an upgrade
Monetary
Free
Tip
Run deprecation sweeps on specific directories rather than the whole app at once.

Security

Permissions, secrets, blast radius

Credential storage: No credentials
Data egress: Code sent to Claude for inference

Troubleshooting

Common errors and fixes

rails app:update produces uncommitted binary files

These are usually system files. Gitignore them and regenerate cleanly.

Tests pass locally, fail in CI after upgrade

Likely autoloading differences or eager_load in production mode. Run with RAILS_ENV=production locally.

Gem bundle resolution fails

Skill will suggest alternative gem versions; sometimes a fork or replacement is required.

Verify: bundle update --conservative

Alternatives

claude-code_rails-upgrade-skill vs others

AlternativeWhen to use it insteadTradeoff
next_rails gemYou want a deterministic upgrade helperNo LLM-guided deprecation fixes

More

Resources

📖 Read the official README on GitHub

🐙 Browse open issues

🔍 Browse all 400+ MCP servers and Skills