Help us improve
Share bugs, ideas, or general feedback.
From sorah-guides
Provides Ruby on Rails conventions, patterns, and best practices for ActiveRecord models, controllers, migrations, configuration, background jobs, logging, and request specs.
npx claudepluginhub sorah/config --plugin sorah-guidesHow this skill is triggered — by the user, by Claude, or both
Slash command
/sorah-guides:railsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Coding conventions and best practices for Ruby on Rails projects. Project-specific conventions (CLAUDE.md, style guides) always take priority over this guidance.
Provides Rails-specific checklists for spec interviews and implementation in Ruby on Rails projects, covering data models, architecture, testing, security, and operations.
Delivers Ruby on Rails expertise: assesses projects, enforces conventions, optimizes ActiveRecord queries, implements Hotwire/Turbo/Stimulus, handles Sidekiq/Solid Queue jobs, and guides RSpec/FactoryBot testing.
Provides Ruby on Rails patterns and best practices for Active Record database models, Devise/Pundit security, API controllers/serializers, RSpec testing, and Sidekiq performance. Auto-activates on projects with Gemfile rails, routes.rb, ApplicationController.
Share bugs, ideas, or general feedback.
Coding conventions and best practices for Ruby on Rails projects. Project-specific conventions (CLAUDE.md, style guides) always take priority over this guidance.
has_many, belongs_to, has_one — specify dependent behavior and foreign key constraintsRails.configuration.x.namespace.key with second-level namespacing; avoid single-level Rails.configuration.x.fooconfig/environments/*.rb using ENV.fetch; avoid direct ENV access in application codeRails.env checks: Do not use Rails.env.production? or similar in application code; express environment differences through configuration values instead# Good — config/environments/production.rb
Rails.configuration.x.oauth.client_id = ENV.fetch("OAUTH_CLIENT_ID")
Rails.configuration.x.session.idle_timeout = 30.minutes
# Good — application code
client_id = Rails.configuration.x.oauth.client_id
# Bad — direct ENV access in application code
client_id = ENV.fetch("OAUTH_CLIENT_ID")
# Bad — Rails.env check in application code
if Rails.env.production?
Prefer test-driven development: write a failing test first (Red), implement minimum code to pass (Green), then refactor while keeping tests green. Tests should cover both happy paths and error conditions.
let_it_be for read-only fixtures shared across examples.invalid TLD for fake hostnames and URLs in test data (RFC 2606 reserved, guaranteed to never resolve)travel_to depending on project conventionhas_secure_password or dedicated servicefilter_parameters configuration for sensitive request paramsbin/setup: Seed data, fixture files for development