solid-ruby

Original🇺🇸 English
Translated

SOLID principles for Ruby 3.3+ and Rails 8. Files < 100 lines, contracts separated, modular architecture. Modules MANDATORY.

1installs
Added on

NPX Install

npx skill4agent add fusengine/agents solid-ruby

Tags

Translated version includes tags in frontmatter

SOLID Ruby - Modular Architecture

Agent Workflow (MANDATORY)

Before ANY implementation, use
TeamCreate
to spawn 3 agents:
  1. fuse-ai-pilot:explore-codebase - Analyze existing architecture
  2. fuse-ai-pilot:research-expert - Verify Ruby/Rails docs via Context7
  3. fuse-ai-pilot:sniper - Post-implementation validation

DRY - Reuse Before Creating (MANDATORY)

Before writing ANY new code:
  1. Grep the codebase for similar modules, services, or logic
  2. Check shared locations:
    app/modules/core/services/
    ,
    app/modules/core/contracts/
  3. If similar code exists -> extend/reuse instead of duplicate
  4. If code will be used by 2+ features -> create it in
    app/modules/core/

Architecture (Modules MANDATORY)

LayerLocationMax Lines
Controllers
app/modules/[feature]/controllers/
50
Services
app/modules/[feature]/services/
100
Repositories
app/modules/[feature]/repositories/
100
Contracts
app/modules/[feature]/contracts/
30
Models
app/modules/[feature]/models/
50
Shared
app/modules/core/{services,contracts,concerns}/
-
NEVER use flat
app/
structure - always
app/modules/[feature]/

Critical Rules (MANDATORY)

RuleValue
File limit100 lines (split at 90)
Controllers< 50 lines, delegate to services
Contracts
contracts/
directory ONLY (duck typing modules)
YARD docEvery public method documented
Frozen string
# frozen_string_literal: true
in every file
ConcernsUse for shared behavior (like interfaces)

Reference Guide

Concepts

TopicReferenceWhen to consult
SOLID Overviewsolid-principles.mdQuick reference
SRPsingle-responsibility.mdFat classes
OCPopen-closed.mdAdding strategies
LSPliskov-substitution.mdContracts
ISPinterface-segregation.mdFat modules
DIPdependency-inversion.mdInjection
Architecturearchitecture-patterns.mdModular Rails

Templates

TemplateWhen to use
module.mdFeature module structure
service.mdBusiness logic service
contract.mdDuck typing contracts
model.mdActive Record model
error.mdCustom exceptions
test.mdRSpec tests

Forbidden

Anti-PatternFix
Files > 100 linesSplit at 90
Business logic in modelsExtract to service
Fat controllersDelegate to services
Flat
app/
structure
Use
app/modules/[feature]/
God classesSplit by responsibility