mcpField
S
solid-ruby

solid-ruby

github.com/fusengineDevelopment3438 installsUpdated 2w ago
Repository

About solid-ruby

solid-ruby is an architecture skill for Ruby 4.0+ and Rails 8 development, guiding coding agents to organize features into modules and apply SOLID principles. It also prescribes pre-implementation reuse checks and a parallel-agent workflow.

Key features

  1. 01Organizes Rails modules by feature
  2. 02Applies SOLID principles
  3. 03Checks for reusable code first
  4. 04Provides architecture and code templates
  5. 05Requires YARD docs for public methods

Use cases

  1. 01Plan module structure for Rails features
  2. 02Move business logic out of models
  3. 03Create services, contracts, or models
  4. 04Check shared code before implementation

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/fusengine/claude-plugins --skill solid-ruby

After installing, type/solid-rubyin Claude Code to confirm it loaded.

Details

From the project README
SOLID Ruby enforces a modular architecture for Ruby 4.0+/Rails 8: every feature lives under `app/modules/[feature]/` (controllers, services, repositories, contracts, models) with shared code in `app/modules/core/`, contracts (duck-typing modules) live only in `contracts/` directories, `# frozen_string_literal: true` is required in every file, and every public method carries YARD documentation.

Before writing any new code it requires a DRY check against app/modules/core/services and app/modules/core/contracts. See solid-principles.md for the overview, the per-principle references for SRP/OCP/LSP/ISP/DIP detail, and the templates for module/service/contract/model/error/test scaffolding.

SOLID Ruby - Modular Architecture

Agent Workflow (MANDATORY)

Before ANY implementation, spawn 3 agents in parallel, one Agent call each with a name:

  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)

LayerLocation
Controllersapp/modules/[feature]/controllers/
Servicesapp/modules/[feature]/services/
Repositoriesapp/modules/[feature]/repositories/
Contractsapp/modules/[feature]/contracts/
Modelsapp/modules/[feature]/models/
Sharedapp/modules/core/{services,contracts,concerns}/

NEVER use flat app/ structure - always app/modules/[feature]/


Critical Rules (MANDATORY)

RuleValue
File limitFUSE_SOLID_MAX_LINES
ControllersThin, delegate to services
Contractscontracts/ 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 over FUSE_SOLID_MAX_LINESSplit by responsibility
Business logic in modelsExtract to service
Fat controllersDelegate to services
Flat app/ structureUse app/modules/[feature]/
God classesSplit by responsibility

Comments

Markdown supported