Marketplace for Ruby related skills
npx claudepluginhub stevegeek/claude-ruby-pluginsSkills, commands, and agents for writing Ruby RBS type signatures - inline annotations, standalone .rbs files, and type maintenance
A Claude Code marketplace providing plugins for Ruby development.
Add this marketplace to Claude Code:
/plugin marketplace add stevegeek/claude-ruby-plugins
Or add to your project's .claude/settings.json:
{
"extraKnownMarketplaces": [
"stevegeek/claude-ruby-plugins"
]
}
Then browse and install plugins:
/plugin
Skills, commands, and agents for writing Ruby RBS type signatures - inline annotations, standalone .rbs files, and type maintenance.
RBS is Ruby's official type signature language, introduced with Ruby 3.0. It describes the structure of Ruby programs—classes, modules, methods, and their types—enabling static type checking with tools like Steep.
/plugin install ruby-rbs@stevegeek-marketplace
Or in .claude/settings.json:
{
"enabledPlugins": {
"ruby-rbs@stevegeek-marketplace": true
}
}
Writes RBS type signatures for an entire codebase. Asks whether you want inline or standalone RBS, then works methodically through all Ruby files, setting up Steep, writing signatures, and validating as it goes.
Validates and maintains existing RBS signatures. Runs rbs validate, steep check, finds gaps, and fixes issues.
Critically reviews RBS signatures for quality: suggests generics, replaces untyped, recommends supertypes/interfaces.
Converts standalone .rbs signature files into inline RBS annotations embedded in Ruby source files. Use when migrating from standalone to inline RBS approach. Validates the conversion by comparing generated signatures against originals, then backs up the original .rbs files.
/write-rbs <path>Write standalone RBS signatures for Ruby files. Analyzes code, finds tests, optionally traces types, and creates sig/*.rbs files.
/write-inline-rbs <path>Add inline RBS annotations to Ruby files using rbs-inline comment syntax.
/convert-rbs-to-inline <rbs_file_or_pattern>...Convert standalone .rbs files to inline RBS annotations. Supports multiple files and glob patterns. Validates conversions and backs up originals to .rbs.bak.
The ruby-rbs skill provides comprehensive RBS knowledge. It's easier to use a command or agent, but you can load the skill directly by asking Claude to use its RBS skill.
Runtime tool that instruments code execution to discover actual types:
ruby plugins/ruby-rbs/scripts/type_tracer.rb -c 'MyClass' -f json test/my_test.rb
Compare hand-written RBS files with generated ones (from rbs-inline) to verify consistency:
# Compare two specific files
bundle exec ruby scripts/compare_rbs.rb sig/user.rbs sig/generated/user.rbs
# Compare directories
bundle exec ruby scripts/compare_rbs.rb --dir sig/ sig/generated/
# JSON output for programmatic use
bundle exec ruby scripts/compare_rbs.rb --json sig/user.rbs sig/generated/user.rbs
# Strict mode (parameter names matter)
bundle exec ruby scripts/compare_rbs.rb --strict-param-names sig/user.rbs sig/generated/user.rbs
By default, parameter names are ignored (e.g., (String name) == (String)). Use --strict-param-names for exact matching.
# rbs_inline: enabled
class User
attr_reader :name #: String
attr_reader :email #: String?
#: (String, ?String?) -> void
def initialize(name, email = nil)
@name = name
@email = email
end
end
# sig/user.rbs
class User
attr_reader name: String
attr_reader email: String?
def initialize: (String, ?String?) -> void
end
Unlicense