Solid ruby
SOLID principles for Ruby 3.3+ and Rails 8. Files < 100 lines, contracts separated, modular architecture. Modules MANDATORY. Use when: writing or refactoring Ruby/Rails code, structuring app/modules/[feature]/ layers, or defining contracts/ modules.From its SKILL.md
npx -y skills add fusengine/agents --skill solid-rubyAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 22 stars22 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
3.9 KB, 794 tokens by cl100k_base, as published. Nobody here has run it
SOLID Ruby - Modular Architecture
Agent Workflow (MANDATORY)
Before ANY implementation, use TeamCreate to spawn 3 agents:
- fuse-ai-pilot:explore-codebase - Analyze existing architecture
- fuse-ai-pilot:research-expert - Verify Ruby/Rails docs via Context7
- fuse-ai-pilot:sniper - Post-implementation validation
DRY - Reuse Before Creating (MANDATORY)
Before writing ANY new code:
- Grep the codebase for similar modules, services, or logic
- Check shared locations:
app/modules/core/services/,app/modules/core/contracts/ - If similar code exists -> extend/reuse instead of duplicate
- If code will be used by 2+ features -> create it in
app/modules/core/
Architecture (Modules MANDATORY)
| Layer | Location | Max 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)
| Rule | Value |
|---|---|
| File limit | 100 lines (split at 90) |
| Controllers | < 50 lines, delegate to services |
| Contracts | contracts/ directory ONLY (duck typing modules) |
| YARD doc | Every public method documented |
| Frozen string | # frozen_string_literal: true in every file |
| Concerns | Use for shared behavior (like interfaces) |
Reference Guide
Concepts
| Topic | Reference | When to consult |
|---|---|---|
| SOLID Overview | solid-principles.md | Quick reference |
| SRP | single-responsibility.md | Fat classes |
| OCP | open-closed.md | Adding strategies |
| LSP | liskov-substitution.md | Contracts |
| ISP | interface-segregation.md | Fat modules |
| DIP | dependency-inversion.md | Injection |
| Architecture | architecture-patterns.md | Modular Rails |
Templates
| Template | When to use |
|---|---|
| module.md | Feature module structure |
| service.md | Business logic service |
| contract.md | Duck typing contracts |
| model.md | Active Record model |
| error.md | Custom exceptions |
| test.md | RSpec tests |
Forbidden
| Anti-Pattern | Fix |
|---|---|
| Files > 100 lines | Split at 90 |
| Business logic in models | Extract to service |
| Fat controllers | Delegate to services |
Flat app/ structure | Use app/modules/[feature]/ |
| God classes | Split by responsibility |
What ships with it: 13 files
34.0 KB alongside SKILL.md
references/
- architecture-patterns.md2.5 KB
- dependency-inversion.md2.7 KB
- interface-segregation.md2.6 KB
- liskov-substitution.md2.9 KB
- open-closed.md2.4 KB
- single-responsibility.md2.5 KB
- solid-principles.md2.6 KB
- templates/contract.md2.5 KB
- templates/error.md2.9 KB
- templates/model.md2.8 KB
- templates/module.md2.1 KB
- templates/service.md2.6 KB
- templates/test.md2.8 KB