mcpField
S
solid-ruby

solid-ruby

github.com/fusengine开发3438 次安装2 周前更新
代码仓库

关于 solid-ruby

solid-ruby 是面向 Ruby 4.0+ 和 Rails 8 开发的架构技能,指导编码 Agent 按模块组织功能,并应用 SOLID 原则。它还规定实现前的代码复用检查和并行 Agent 工作流程。

主要功能

  1. 01按功能划分 Rails 模块
  2. 02应用 SOLID 原则
  3. 03实现前检查代码复用
  4. 04提供架构与代码模板
  5. 05要求公共方法添加 YARD 文档

适用场景

  1. 01为 Rails 功能规划模块结构
  2. 02将业务逻辑从模型移至服务
  3. 03新增服务、契约或模型
  4. 04实现前检查共享代码并避免重复

安装

复制下面的命令,在终端中运行。

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

安装后在 Claude Code 中输入/solid-ruby确认已加载。

详细介绍

SOLID Ruby 为 Ruby 4.0+/Rails 8 强制执行模块化架构:每项功能都位于 `app/modules/[feature]/` 下(控制器、服务、仓库、契约、模型),共享代码放在 `app/modules/core/` 中;契约(鸭子类型模块)只能放在 `contracts/` 目录中;每个文件都必须包含 `# frozen_string_literal: true`,且每个公共方法都必须附带 YARD 文档。

编写任何新代码之前,都必须检查 app/modules/core/services 和 app/modules/core/contracts,确保符合 DRY 原则。概览请参阅 solid-principles.md;SRP/OCP/LSP/ISP/DIP 的详细说明请参阅各原则对应的参考文档;模块、服务、契约、模型、错误和测试的脚手架请参阅模板。

SOLID Ruby - 模块化架构

Agent 工作流(强制)

在进行任何实现之前,必须并行启动 3 个 Agent,每个 Agent 调用都要指定一个 name:

  1. fuse-ai-pilot:explore-codebase - 分析现有架构
  2. fuse-ai-pilot:research-expert - 通过 Context7 核实 Ruby/Rails 文档
  3. fuse-ai-pilot:sniper - 实现后的验证

DRY - 创建前优先复用(强制)

编写任何新代码之前:

  1. 使用 Grep 搜索代码库,查找类似模块、服务或逻辑
  2. 检查共享位置:app/modules/core/services/、app/modules/core/contracts/
  3. 如果存在类似代码 -> 扩展或复用,而不是重复创建
  4. 如果代码将被 2 个或更多功能使用 -> 在 app/modules/core/ 中创建

架构(模块化,强制)

层位置
控制器app/modules/[feature]/controllers/
服务app/modules/[feature]/services/
仓库app/modules/[feature]/repositories/
契约app/modules/[feature]/contracts/
模型app/modules/[feature]/models/
共享app/modules/core/{services,contracts,concerns}/

绝不使用扁平的 app/ 结构——始终使用 app/modules/[feature]/


关键规则(强制)

规则值
文件行数限制FUSE_SOLID_MAX_LINES
控制器保持精简,将任务委托给服务
契约只能位于 contracts/ 目录(鸭子类型模块)
YARD 文档每个公共方法都必须有文档
冻结字符串每个文件都必须包含 # frozen_string_literal: true
Concern用于共享行为(例如接口)

参考指南

概念
主题参考资料查阅时机
SOLID 概览solid-principles.md快速参考
SRPsingle-responsibility.md类职责过多时
OCPopen-closed.md添加策略时
LSPliskov-substitution.md契约相关
ISPinterface-segregation.md模块职责过多时
DIPdependency-inversion.md依赖注入相关
架构architecture-patterns.md模块化 Rails
模板
模板使用时机
module.md功能模块结构
service.md业务逻辑服务
contract.md鸭子类型契约
model.mdActive Record 模型
error.md自定义异常
test.mdRSpec 测试

禁止事项

反模式修正方式
文件超过 FUSE_SOLID_MAX_LINES 行按职责拆分
在模型中编写业务逻辑提取到服务中
臃肿的控制器将任务委托给服务
扁平的 app/ 结构使用 app/modules/[feature]/
上帝类按职责拆分

评论

支持 Markdown