Ruby's ecosystem has many version managers, a rapidly evolving typing and tooling landscape, and documentation scattered across multiple sources.
This Claude Code plugin helps Claude navigate each of these — activating the correct Ruby environment, pointing to authoritative docs, and avoiding common test framework pitfalls.
From terminal:
claude plugin marketplace add st0012/ruby-skills
claude plugin install ruby-skills@ruby-skillsFrom a Claude session:
/plugin marketplace add st0012/ruby-skills
/plugin install ruby-skills@ruby-skillsAfter installation, start a Claude Code session in any Ruby project — no configuration needed. The plugin activates automatically.
Detects your version manager and project Ruby version, then activates it for every shell command. Supports chruby, rbenv, rvm, asdf, mise, rv, and shadowenv.
- Reads
.ruby-version,.tool-versions,.mise.toml, orGemfileto determine the required version - Handles multi-manager environments — prompts you to set a preference if more than one is detected
- Offers to install missing Ruby versions
- Works around Claude Code's non-persistent shell by chaining activation with every command
See the technical reference for detection internals.
Points Claude to authoritative documentation sources so it doesn't hallucinate APIs or rely on outdated references.
- Version-specific docs for Ruby 3.2–4.0 and master
- Core vs bundled vs default gem distinctions
- Ruby typing ecosystem: Sorbet (RBI) and RBS, including Tapioca, Spoom, Steep, and RBS inline comments
- Blocks known-bad sources (ruby-doc.org, apidock.com)
Divergence reference for minitest and test-unit — the two frameworks have deceptively similar APIs with critical naming differences that cause NoMethodError at runtime.
- Side-by-side assertion naming mismatches (
assert_raisesvsassert_raise,refute_*vsassert_not_*, etc.) - CLI flag comparison for test selection (by name, line number, class, pattern)
- Lifecycle differences (
startup/shutdown/cleanupin test-unit,before_setup/after_teardownin minitest) - Rails-specific aliases that blur the line between the two frameworks
RSpec has a distinct API (describe/it/expect) that doesn't overlap with minitest or test-unit. LLMs rarely confuse it with other frameworks, so a divergence reference isn't needed.
The version manager detection logic is based on Ruby LSP's VS Code extension by Shopify.
Feedback, use cases, issue reports, and contributions are all welcome on GitHub.
MIT License - see LICENSE for details.