By stevegeek
Skills, commands, and agents for writing Ruby RBS type signatures - inline annotations, standalone .rbs files, and type maintenance
npx claudepluginhub stevegeek/claude-ruby-plugins --plugin ruby-rbsConvert standalone .rbs signature files to inline RBS annotations in Ruby source files. Supports multiple files and glob patterns.
Write inline RBS type annotations in Ruby source files using rbs-inline comment syntax.
Write standalone RBS type signatures for Ruby files. Analyzes code, finds tests, traces types, and generates sig/*.rbs files.
Use this agent to write RBS type signatures for an entire codebase. Trigger when user asks to "add types to the codebase", "write RBS for everything", wants to "type the whole project", "add RBS signatures", or asks to set up RBS/Steep for a project from scratch. Examples - "Add RBS types to this codebase", "Set up type checking for this project", "Write type signatures for all my Ruby code"
Use this agent to maintain and validate existing RBS type signatures. Trigger when user asks to "check RBS", "validate types", "review type signatures", "find RBS gaps", "update RBS", "fix type errors", after significant code changes that may affect type signatures, or when Steep is reporting errors that need investigation. Examples - "Check if the RBS signatures are up to date", "Run steep and fix any type errors", "Find methods that are missing type signatures", "Validate the RBS syntax in sig/"
Use this agent to critically review RBS type signatures for quality and correctness. Trigger when user asks to "review RBS", "check type quality", "improve signatures", wants to know if generics should be used, asks about replacing untyped with stricter types, or after writing new RBS signatures that should be reviewed. Examples - "Review the RBS signatures I just wrote", "Should this class be generic?", "Can we replace untyped with something better?", "Are there any type improvements we can make?"
Use this agent to convert standalone .rbs signature files into inline RBS annotations embedded in Ruby source files. Trigger when user asks to "convert rbs to inline", "migrate rbs files to inline", "merge rbs into ruby files", "switch from standalone to inline rbs", or wants to move type signatures from sig/ files into the corresponding Ruby source. Examples - "Convert my .rbs files to inline annotations", "Merge sig/user.rbs into lib/user.rb", "Switch this project from standalone to inline RBS"
Comprehensive skill for Ruby RBS type signatures. Use for writing inline type annotations in Ruby files, creating standalone .rbs signature files, scaffolding types, or setting up Steep type checking. Covers both inline syntax (rbs-inline) and standalone RBS file format.
Write RBS type annotations directly in Ruby source files using comment syntax. Use when adding types to Ruby code with rbs-inline.
Write standalone .rbs signature files to describe Ruby code. Use when creating type definitions for gems, libraries, or existing codebases without modifying Ruby source.
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
Comprehensive UI/UX design plugin for mobile (iOS, Android, React Native) and web applications with design systems, accessibility, and modern patterns
Uses power tools
Uses Bash, Write, or Edit tools
Runs pre-commands
Contains inline bash commands via ! syntax
Bash prerequisite issue
Uses bash pre-commands but Bash not in allowed tools
Standalone image generation plugin using Nano Banana MCP server. Generates and edits images, icons, diagrams, patterns, and visual assets via Gemini image models. No Gemini CLI dependency required.