This skill should be used when the user asks to "generate Rails code", "create a model", "create a controller", "add a migration", "write Rails tests", "set up background jobs", "configure Rails app", or discusses Rails conventions, best practices, ActiveRecord patterns, Hotwire/Stimulus, ViewComponent, RSpec testing, or Ruby on Rails development. Based on Evil Martians' AGENTS.md.
This skill inherits all available tools. When active, it can use any tool Claude has access to.
references/anti-patterns.mdreferences/configuration.mdreferences/controllers.mdreferences/database.mdreferences/forms-queries.mdreferences/jobs.mdreferences/models.mdreferences/stack.mdreferences/testing.mdreferences/views.mdPractical standards for AI-assisted Rails development from Evil Martians. Generated code should be so simple and clear that reading it feels like reading well-written documentation.
app/models/ # Including namespaced classes (Cloud::CardGenerator)
app/controllers/ # Namespaced for auth scoping (Participant::CloudsController)
app/jobs/ # Background work with ActiveJob
app/forms/ # Multi-model operations only
app/policies/ # Complex authorization (ActionPolicy)
app/views/ # ERB + ViewComponent
app/frontend/ # Stimulus controllers, styles
config/configs/ # Anyway Config classes
Critical: No app/services/, app/contexts/, or app/operations/ folders. Extract complex operations to namespaced model classes.
counter_cache: true)5-10 lines per action. No business logic. Guard clauses for early returns.
def create
return head :forbidden unless current_participant.can_create_cloud?
@cloud = current_participant.clouds.create!(cloud_params)
CloudProcessingJob.perform_later(@cloud)
redirect_to @cloud
end
Required gems: Rails, Puma, Propshaft, PostgreSQL, Hotwire (Turbo + Stimulus), ViewComponent, Vite Rails, SolidQueue, ActionPolicy, Anyway Config, RSpec + FactoryBot, Standard, Nanoid + FriendlyID, HTTParty
Forbidden: Devise, CanCanCan, ActiveAdmin, service object gems, state machine gems, dry-types/Virtus
Consult these reference files for detailed patterns:
| Reference | Content |
|---|---|
references/stack.md | Complete gem list, file structure, forbidden patterns |
references/models.md | Model organization, enums, validations, extraction patterns |
references/controllers.md | Thin controllers, namespacing, guard clauses |
references/database.md | Schema design, constraints, indexes, migrations |
references/jobs.md | ActiveJob::Continuable, workflow orchestration |
references/views.md | Hotwire, ViewComponent, Stimulus patterns |
references/forms-queries.md | Form objects, query objects, when to use |
references/testing.md | RSpec organization, what to test |
references/configuration.md | Anyway Config patterns, environment variables |
references/anti-patterns.md | Common mistakes with alternatives, deployment checklist |
Where does this logic belong?
Cloud::CardGenerator)When to extract from model?
Before generating Rails code, verify:
When generating Rails code:
references/stack.md to verify gem choicesreferences/anti-patterns.md to avoid common mistakesFor specific patterns, read the appropriate reference file based on what component is being generated.