By ombulabs
Sets up and manages dual-boot Ruby and Rails environments using the next_rails gem, based on FastRuby.io methodology
npx claudepluginhub ombulabs/claude-skills --plugin dual-bootA Claude Code skill that helps you set up and manage dual-boot environments for Ruby
and Rails applications using the next_rails gem.
The Dual-Boot skill helps you:
next_rails gem so your app runs with two dependency sets depending on one environment variable (ie. BUNDLE_GEMFILE)NextRails.next? (the correct pattern — never respond_to?)While most commonly used for Rails version upgrades, dual-boot works equally well for
upgrading Ruby versions or any core dependency in your Gemfile (e.g., sidekiq, devise, pg).
Dual-booting is a core part of the FastRuby.io upgrade methodology:
From inside the Claude Code CLI prompt (recommended):
/plugin marketplace add ombulabs/claude-skills
/plugin install dual-boot@ombulabs-ai
From your terminal:
claude plugin marketplace add https://github.com/ombulabs/claude-skills.git
claude plugin install dual-boot@ombulabs-ai
Manual install:
git clone https://github.com/ombulabs/claude-code_dual-boot-skill.git
cp -r claude-code_dual-boot-skill/dual-boot ~/.claude/skills/
[!NOTE] This skill works standalone, but it is part of the full Rails upgrade toolkit. You may also want to install rails-load-defaults and rails-upgrade.
In Claude Code, navigate to your Rails application directory and use natural language:
"Set up dual boot for my Rails app"
"Help me dual-boot Rails 7.0 and 7.1"
"Dual-boot Ruby 3.1 and 3.2"
"Set up dual boot for upgrading sidekiq"
"Configure dual-boot CI"
"Clean up dual-boot code after upgrade"
NextRails.next? (not feature detection)When writing code that must work with two versions, always use NextRails.next?:
# spec/requests/projects_spec.rb
test_request =
if NextRails.next?
ActionController::TestRequest.create
else
ActionController::TestRequest.new
end
Never use respond_to?, defined?, or other feature-detection patterns. They are fragile, hard to clean up, and obscure intent.
Only branch when the old API genuinely breaks on the next version. A plain deprecation warning is not a reason for a conditional — if the new API works on both versions, just use it directly.
load_defaults updatesWe welcome contributions! Found incorrect information or have a suggestion? Open an issue.
This project is licensed under the MIT License. See LICENSE for details.
OmbuLabs.ai is Philadelphia's AI Software Boutique. We build custom AI solutions that integrate with your existing workflows. From Claude Code skills to full AI agent systems.
The Rails upgrade experts. We've been upgrading Rails applications professionally since 2017, helping companies stay current and secure.
Questions? Open an issue or reach out to us at hello@ombulabs.com
Ultra-compressed communication mode. Cuts ~75% of tokens while keeping full technical accuracy by speaking like a caveman.
Share bugs, ideas, or general feedback.
Comprehensive UI/UX design plugin for mobile (iOS, Android, React Native) and web applications with design systems, accessibility, and modern patterns
Frontend design skill for UI/UX implementation
Creative skill for generating algorithmic and generative art. Produces visual designs using mathematical patterns, fractals, and procedural generation.
Humanise text and remove AI writing patterns. Detects and fixes 24 AI tell-tales including inflated language, promotional tone, AI vocabulary, filler phrases, sycophantic tone, and formulaic structure.
Expert guidance for Next.js Cache Components and Partial Prerendering (PPR). Proactively activates in projects with cacheComponents: true, providing patterns for 'use cache' directive, cacheLife(), cacheTag(), cache invalidation, and parameter permutation rendering.