mcpField
S
solid-ruby

solid-ruby

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

关于 solid-ruby

solid-ruby 是面向 Ruby 4.0+ 和 Rails 8 项目的 Agent 技能,用于落实模块化的 SOLID 架构。它规定模块位置、代码与文档规范及复用检查,并提供原则参考和实现模板。

主要功能

  1. 01按功能划分模块结构
  2. 02共享核心服务与契约
  3. 03强制 YARD 文档和冻结字符串
  4. 04编写新代码前检查复用
  5. 05SOLID 参考资料与脚手架模板

适用场景

  1. 01规划新的 Rails 功能模块
  2. 02编码前检查可复用服务
  3. 03创建服务、契约、模型和测试
  4. 04按模块化架构规则检查代码

安装

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

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

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

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
architecture-patterns.md
dependency-inversion.md
interface-segregation.md
liskov-substitution.md
open-closed.md
single-responsibility.md
solid-principles.md
references/templates/
contract.md
error.md
model.md
module.md
service.md
test.md

详细介绍

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