
rails-code-generation
by FlorinPopaCodes
Personal Claude Skill Marketplace
SKILL.md
name: Rails Code Generation description: 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. version: 1.0.0
Rails Code Generation Standards
Practical 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.
Core Principles
- Follow Rails conventions - Leverage the framework, don't fight it
- Use domain language - Name models after business concepts (Participant vs User, Cloud vs GeneratedImage)
- Keep logic at appropriate layers - Models for business logic, controllers for HTTP, jobs for async
- Write readable code - Code should be self-documenting without comments
- Normalize data properly - One concern per table, use foreign keys and constraints
Quick Reference
File Structure
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.
Model Organization Order
- Gems/DSL extensions
- Associations (with
counter_cache: true) - Enums (for state machines)
- Normalizations (Rails 7.1+)
- Validations
- Scopes
- Callbacks
- Delegations
- Public methods
- Private methods
Controller Target
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
Technology Stack
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
Building Block References
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 |
Decision Flowchart
Where does this logic belong?
- Single model operation → Model method
- Multi-model transaction → Form object
- External API call → Namespaced model class (e.g.,
Cloud::CardGenerator) - Async work → Job (orchestrates, doesn't execute)
- Complex query → Query object or scope
- Authorization → Policy (ActionPolicy)
- Configuration → Anyway Config class
When to extract from model?
- Method > 15 lines → Extract to namespaced class
- Calls external API → Extract to namespaced class
- Shared across models → Extract to concern or module
Code Generation Checklist
Before generating Rails code, verify:
- Models named after business domain concepts?
- Model follows organization order?
- States implemented as enums?
- Controllers under 10 lines per action?
- Complex logic extracted appropriately?
- Database normalized with FK constraints?
- Counter caches on has_many associations?
- Workflows orchestrated through jobs?
- Configuration via Anyway Config (not ENV)?
- Tests organized by type (model/request/system)?
Usage
When generating Rails code:
- Check
references/stack.mdto verify gem choices - Follow patterns in the relevant building block reference
- Consult
references/anti-patterns.mdto avoid common mistakes - Run through the checklist above before finalizing
For specific patterns, read the appropriate reference file based on what component is being generated.
Score
Total Score
Based on repository quality metrics
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
3ヶ月以内に更新がある
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
Reviews
Reviews coming soon