SuperAPI AI 工具集

solid-go

编程与开发

查看项目

更新于 10-26 16:21

技能介绍

solid-go 是 fusengine/claude-plugins 中的一项 Claude 插件技能,用于在编写或重构 Go 代码、搭建 internal/modules/[feature]/ 分层或定义 ports/ 接口时提供规范约束。

用途:在动手写代码前,协助代理按 SOLID 原则与模块化架构组织 Go 项目,避免重复代码与结构混乱。

主要能力:

  • DRY 检查:写任何新代码前,先在代码库中搜索相似的接口、服务或逻辑,并检查 internal/core/services/ 与 internal/core/ports/ 等共享位置;若已有类似代码则扩展或复用,若将被两个以上功能使用则放到 internal/core/。
  • 强制模块化目录:handlers 放 internal/modules/[feature]/handlers/,services 放 services/,repositories 放 repositories/,接口放 ports/,模型放 models/,共享代码放 internal/core/{services,ports,models}/;禁止扁平 internal/ 结构。
  • 代理工作流:实现前并行启动三个代理(explore-codebase 分析现有架构、research-expert 通过 Context7 核对 Go 文档、sniper 做实现后验证)。
  • 关键规则:文件行数上限由 FUSE_SOLID_MAX_LINES 控制;handler 保持轻薄并委托给 service;接口只放 ports/ 目录;每个导出函数必须有 Godoc;接受接口、返回结构体;接口保持小规模(最多 1-3 个方法,符合 Go 惯例)。
  • 参考文档: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 说明六边形/模块化布局。
  • 脚手架模板:module.md(功能模块结构)、service.md(业务逻辑服务)、interface.md(端口定义)、handler.md(HTTP handler)、error.md(自定义错误)、test.md(表驱动测试)。
  • 禁止项与修复:超行数文件按职责拆分;接口写在实现文件里应移到 ports/;4 个以上方法的胖接口应拆分;扁平 internal/ 应改为模块结构;用 init() 做依赖装配应改为构造函数注入。

使用方式:作为 Claude 插件技能,在编写或重构 Go 代码、组织模块分层或定义接口时触发,并按上述工作流与规则执行;具体安装与调用步骤暂未提供。

适用场景:Go 项目的新功能开发、代码重构、模块化目录设计、端口/接口定义、代码复用审查与架构规范落地。

限制:资料未说明支持的 Go 版本、与其他插件技能的冲突关系、配置 FUSE_SOLID_MAX_LINES 的具体方法,以及模板的完整代码内容;这些暂未提供。