SuperAPI AI 工具集

solid-ruby

编程与开发

查看项目

更新于 10-26 16:21

技能介绍

solid-ruby 是 fusengine/claude-plugins 仓库下的一个技能插件,目标是在 Ruby/Rails 代码的编写与重构过程中,帮助落实 SOLID 原则和模块化架构。根据其说明,它适用于编写或重构 Ruby/Rails 代码、组织 app/modules/[feature]/ 各层结构,以及定义 contracts/ 模块等场景。

主要能力与强制规则:

  • 架构分层:控制器放在 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]/。
  • DRY 检查:在写任何新代码之前,必须在代码库中检索相似的模块、服务或逻辑,并检查 app/modules/core/services/ 与 app/modules/core/contracts/ 等共享位置;若已有相似代码,应扩展或复用而不是重复;若代码会被两个及以上功能使用,应放到 app/modules/core/。
  • 关键规则:文件行数受 FUSE_SOLID_MAX_LINES 限制;控制器必须轻薄并委派给服务;契约只放在 contracts/ 目录(duck typing 模块);每个公开方法都要有 YARD 文档;每个文件都要有 # frozen_string_literal: true;共享行为(类似接口)使用 Concerns。
  • 工作流:说明中标注为强制的工作流要求在任何实现之前并行启动三个代理,分别用于分析现有架构(fuse-ai-pilot:explore-codebase)、通过 Context7 核实 Ruby/Rails 文档(fuse-ai-pilot:research-expert)、以及实现后验证(fuse-ai-pilot:sniper)。
  • 参考与模板:提供 solid-principles.md 作为总览,single-responsibility.md、open-closed.md、liskov-substitution.md、interface-segregation.md、dependency-inversion.md 分别对应 SRP/OCP/LSP/ISP/DIP 的细节,architecture-patterns.md 用于模块化 Rails;模板包括 module.md(功能模块结构)、service.md(业务逻辑服务)、contract.md(duck typing 契约)、model.md(Active Record 模型)、error.md(自定义异常)、test.md(RSpec 测试)。
  • 反模式清单:文件超过 FUSE_SOLID_MAX_LINES 应按职责拆分;模型中的业务逻辑应提取到服务;胖控制器应委派给服务;扁平 app/ 结构应改为 app/modules/[feature]/;上帝类应按职责拆分。

使用方式:该技能通过 agent 工作流和强制规则约束代码编写过程,具体安装命令与运行入口在现有资料中暂未提供。适用场景包括 Ruby/Rails 项目中的新功能编写、代码重构、模块分层设计以及契约定义。限制方面,资料未说明其收费标准、支持的 Ruby/Rails 版本范围、运行环境要求或性能效果;文件行数限制的具体数值由 FUSE_SOLID_MAX_LINES 环境变量决定,资料未给出默认值。