mcpField
G
go-skills-router

go-skills-router

github.com/eduardo-slAgent 工作流8382 次安装2 周前更新
代码仓库

关于 go-skills-router

go-skills-router 面向处理 Go 任务的开发者,是一份技能索引。它根据问题推荐主技能及应同时加载的相关技能,并说明技能边界和多方面任务的组合方式。

主要功能

  1. 01为 Go 任务匹配主技能与次要技能
  2. 02说明相近技能的职责边界
  3. 03提供多方面任务的技能组合
  4. 04将问题对应到工具和技能
  5. 05提供配置与核对指导

适用场景

  1. 01为 Go 代码审查选择技能
  2. 02开始诊断崩溃或性能问题
  3. 03规划 Go 服务或 CLI 的技能组合
  4. 04配置项目自动加载 Go 技能

安装

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

$npx skills add https://github.com/eduardo-sl/go-agent-skills --skill go-skills-router

安装后在 Claude Code 中输入/go-skills-router确认已加载。

详细介绍

Go 技能路由

此仓库提供 35 项 Go 技能。它们的触发条件必然会重叠—— “运行很慢”可能涉及性能、并发、数据库或泄漏。请使用下表选择主技能, 然后在同一轮中加载次要技能,而不是逐一发现它们。

这是一份索引。此处列出的每项技能都可独立使用,无需阅读本文档。

路由表

任务主技能同时加载
格式化代码、整理导入、声明和初始化go-coding-standardsgo-documentation
为包、类型、函数、接收者或错误命名go-naminggo-coding-standards
审查差异或 PRgo-code-review负责被审查领域的技能
返回、包装或检查错误go-error-handling对于 nil 较多的代码,加载 go-defensive-coding
传递截止时间、取消工作go-context涉及 goroutine 时加载 go-concurrency-review
采用较新的 Go 功能go-modernize在 CI 中提升工具链版本时加载 go-ci
切片、映射、集合、预分配go-data-structuresgo-performance-review
编写 godoc、示例、弃用说明、README、CHANGELOGgo-documentationgo-coding-standards
防范 panic 和静默数据损坏go-defensive-codinggo-error-handling
审查包布局和依赖方向go-architecture-reviewgo-interface-design
启动新项目或服务go-project-layoutgo-dependency-injection、go-ci
设计接口或类型go-interface-designgo-design-patterns
应用已知模式go-design-patternsgo-interface-design
接入依赖、移除全局变量go-dependency-injectiongo-project-layout
构建 HTTP APIgo-api-designgo-openapi、go-observability
基于 OpenAPI 规范开展工作go-openapigo-api-design、go-test-quality
构建 GraphQL APIgo-graphqlgo-database、go-api-design
构建 gRPC 服务go-grpcgo-test-quality、go-observability
构建 CLIgo-cligo-project-layout、go-binary-size
查询数据库、管理事务go-databasego-error-handling、go-security-audit
编写 goroutine、通道和同步代码go-concurrency-reviewgo-context、go-test-quality
审计漏洞go-security-auditgo-dependency-audit、go-defensive-coding
减少分配、优化热点路径go-performance-reviewgo-data-structures
缩小二进制文件或镜像go-binary-sizego-ci
发布版本:GoReleaser、签名、SBOM、来源证明go-build-releasego-ci、go-binary-size
添加日志、指标、追踪go-observabilitygo-context
调试 panic、泄漏或死锁go-troubleshootinggo-concurrency-review、go-performance-review
编写或改进测试go-test-qualitygo-test-table-driven
组织测试矩阵go-test-table-drivengo-test-quality
审计 go.mod、检查 CVEgo-dependency-auditgo-security-audit
设置 CI、lint、覆盖率门槛go-cigo-dependency-audit
安全地重构现有代码go-refactoringgo-semantic-tools,以及负责目标结构的技能
查找调用方、实现者、重命名go-semantic-toolsgo-refactoring
编写提交说明git-commit—

重叠技能之间的界限

加载负责当前问题的技能,而不是名称与代码中某个关键词匹配的技能。

“运行很慢。”

  • go-performance-review — 代码分配或复制了过多内容。负责基准测试、pprof 和优化模式。
  • go-concurrency-review — 代码在锁上发生竞争,或将本可并行执行的工作串行化。
  • go-database — 问题出在查询上:缺少索引、N+1 查询、连接池耗尽。
  • go-troubleshooting — 你还不知道上述三者中是哪一种。从这里开始查明原因,然后转交给相应技能。

“程序崩溃了。”

  • go-troubleshooting — 已经发生了 panic、死锁或泄漏。负责诊断、性能分析和 delve。
  • go-defensive-coding — 预防问题。空值陷阱、别名、溢出,以及能避免下一次崩溃的代码结构。
  • go-concurrency-review — 数据竞争或 goroutine 生命周期问题。

“这样安全吗?”

  • go-security-audit — 外部威胁:注入、身份验证、密钥、TLS。
  • go-dependency-audit — 所导入模块中已知的 CVE。
  • go-defensive-coding — 并非攻击导致的内部正确性问题。

“应该如何组织结构?”

  • go-architecture-review — 现有代码库的结构。
  • go-project-layout — 新项目的结构。
  • go-interface-design — 某个类型或契约的结构。
  • go-refactoring — 从当前结构转变为目标结构的过程。与上述负责目标结构的技能一同加载。

“如何将它对外提供?”

  • go-api-design — HTTP/REST 处理程序、路由、中间件、幂等性、健康检查、关闭。
  • go-openapi — 契约是规范,代码由规范生成。
  • go-graphql — 客户端决定响应的结构。
  • go-grpc — protobuf 契约、拦截器、流式传输。

“测试。”

  • go-test-quality — 测什么、如何隔离、模拟什么、synctest、goleak、基准测试。
  • go-test-table-driven — 专门负责表驱动模式:何时有用、如何设计用例结构体、何时停止使用这种模式。

“代码风格。”

  • go-coding-standards — 代码应遵循的规则。
  • go-naming — 各项内容的命名:包、类型、函数、接收者、错误。
  • go-code-review — 按严重程度将规则应用于他人的改动。
  • go-modernize — 随着语言演进而变化的规则。
  • go-ci — 让机器强制执行这些规则。

“发布吧。”

  • go-ci — 管控每次改动的流水线:构建、代码检查、测试、扫描。
  • go-build-release — 将标签转换为经过签名、可复现的构件。
  • go-binary-size — 缩小这些构件的体积。

哪种工具能回答这个问题

问题工具技能
在当前构建中,这个符号在哪里被使用/实现?gopls(MCP 服务或 CLI)go-semantic-tools
我们使用的版本中,某个依赖的 API 是什么?go doc pkg Symbol,gopls go_package_apigo-semantic-tools
某个模块的其他版本是什么样的?go doc [email protected](Go 1.27+),go list -m -versionsgo-dependency-audit
我们的代码实际可能触及哪些已知漏洞?govulncheck ./...go-dependency-audit
哪些包导入了哪些包?go list -deps、go mod graph、go mod whygo-semantic-tools

多关注点任务

实际任务通常会涉及三项技能。开始时应一起加载,而不是依次加载。

请求加载
“构建一个带测试的 gRPC 服务”go-grpc + go-test-quality + go-error-handling
“这个端点在负载下速度很慢”go-troubleshooting + go-performance-review + go-database
“在发布前加固此服务”go-security-audit + go-dependency-audit + go-defensive-coding + go-ci
“拆分这个单体应用”go-architecture-review + go-refactoring + go-semantic-tools
“搭建一个新的 CLI”go-project-layout + go-cli + go-ci + go-binary-size
“将其迁移到当前的 Go 版本”go-modernize + go-test-quality + go-ci

配置项目以使用这些技能

如果有人要求让项目自动加载这些技能:

  1. 找出项目已有的 Agent 配置文件:CLAUDE.md、 AGENTS.md、GEMINI.md、.github/copilot-instructions.md、 .cursor/rules/。

  2. 跳过任何已引用 go-skills-router 的文件。

  3. 为每个文件提议以下代码块,展示差异,并且只有在开发者同意后才写入:

    ## Go skills
    
    Before any Go coding, review, debugging or setup task, consult the
    `go-skills-router` skill and load the skills it names for the task.
    
  4. 如果团队希望无论路由结果如何,每项任务都加载某些技能 (例如 go-error-handling 和 go-security-audit),请将它们列在代码块下方的“始终加载”部分,并说明原因。

完整目录

类别技能
代码质量go-coding-standards go-naming go-code-review go-error-handling go-context go-modernize go-data-structures go-documentation
架构go-architecture-review go-project-layout go-interface-design go-api-design go-openapi go-graphql go-grpc go-design-patterns go-dependency-injection go-cli
数据go-database
安全与性能go-concurrency-review go-security-audit go-defensive-coding go-performance-review go-observability go-troubleshooting
测试go-test-quality go-test-table-driven
工作流go-dependency-audit go-ci go-refactoring go-semantic-tools go-binary-size go-build-release git-commit go-skills-router

验证清单

  1. 主要技能应与所提问题匹配,而不是与代码中的某个关键词匹配
  2. 次要技能应在同一轮中加载,而不是逐个发现
  3. 对于诊断任务,应先运行 go-troubleshooting,再运行优化技能
  4. 对于结构调整任务,应将 go-refactoring 与负责目标结构的技能配合使用
  5. 如果恰好只有一项技能适用,应直接加载该技能,而不经过路由
  6. 只有在开发者批准差异后,才写入项目配置

评论

支持 Markdown