
golang-how-to
热门Golang技能编排器——在任何Golang编码、审查、调试或设置任务中始终激活。读取任务上下文并从samber/cc-skills-golang加载最相关的技能,通常同时加载多个:编写gRPC服务时加载golang-grpc + golang-testing + golang-error-handling;调试panic时加载golang-troubleshooting + golang-safety;审计安全性时加载golang-security + golang-lint + golang-safety。此外:当两个技能看似重叠时消除歧义(性能 vs 基准测试 vs 故障排除,samber/lo vs mo vs ro,DI集群,安全 vs 安全性),并配置CLAUDE.md或AGENTS.md以在项目中强制触发技能(/golang-how-to configure)。
Golang技能编排器——在任何Golang编码、审查、调试或设置任务中始终激活。读取任务上下文并从samber/cc-skills-golang加载最相关的技能,通常同时加载多个:编写gRPC服务时加载golang-grpc + golang-testing + golang-error-handling;调试panic时加载golang-troubleshooting + golang-safety;审计安全性时加载golang-security + golang-lint + golang-safety。此外:当两个技能看似重叠时消除歧义(性能 vs 基准测试 vs 故障排除,samber/lo vs mo vs ro,DI集群,安全 vs 安全性),并配置CLAUDE.md或AGENTS.md以在项目中强制触发技能(/golang-how-to configure)。
角色: 你是一个Go技能编排器。对于每个Go任务,识别所有相关技能并一起加载——一个任务很少只属于单个技能。
模式:
- 编排 —— 对于任何Go编码、审查、调试或设置任务,同时加载主要技能和所有适用的次要技能。
- 消除歧义 —— 当两个技能看似重叠时,显示边界表。请参阅disambiguation.md。
- 配置 —— 在项目的
CLAUDE.md或AGENTS.md中添加一个## Required Go skills块。遵循project-config.md。
技能加载
对于每个任务,同时加载主要技能和所有适用的次要技能。不要等待——在开始时一起加载。
| 意图 | 主要技能 | 同时加载 |
|---|---|---|
| 设计API,选择模式 | golang-design-patterns |
golang-structs-interfaces, golang-naming |
| 命名类型、函数或包 | golang-naming |
golang-code-style |
| 惯用地处理错误 | golang-error-handling |
golang-safety(nil密集型代码) |
| 编写goroutine、通道、同步 | golang-concurrency |
golang-context(如果涉及取消) |
| 传递截止时间/取消操作 | golang-context |
golang-concurrency(如果涉及goroutine) |
| 设计结构体、嵌入、使用接口 | golang-structs-interfaces |
golang-design-patterns |
| 数据库查询和事务 | golang-database |
golang-error-handling, golang-security |
| 构建gRPC服务 | golang-grpc |
golang-testing, golang-error-handling |
| 构建GraphQL API | golang-graphql |
golang-testing, golang-error-handling |
| 构建CLI命令树 | golang-spf13-cobra |
golang-cli, golang-spf13-viper(如果涉及配置) |
| 从标志/环境变量/文件分层配置 | golang-spf13-viper |
golang-spf13-cobra |
| 编写测试 | golang-testing |
golang-stretchr-testify(如果使用testify) |
| 应用优化模式 | golang-performance |
golang-benchmark(先测量) |
| 使用pprof/benchstat测量 | golang-benchmark |
golang-performance(修复),golang-troubleshooting(根因) |
| 调试panic或意外行为 | golang-troubleshooting |
golang-safety, golang-benchmark(如果与性能相关) |
| 生产环境监控 | golang-observability |
golang-performance(如果违反SLO) |
| 审计安全漏洞 | golang-security |
golang-safety, golang-lint |
| 审查格式和风格 | golang-code-style |
golang-naming, golang-lint |
| 配置golangci-lint | golang-lint |
golang-code-style |
| 编写godoc/README/CHANGELOG | golang-documentation |
golang-naming |
| 设置新项目结构 | golang-project-layout |
golang-design-patterns, golang-dependency-injection, golang-lint |
| 设置CI/CD流水线 | golang-continuous-integration |
golang-lint, golang-security |
| 选择库 | golang-popular-libraries |
相关的库特定技能 |
| 查找包的文档、版本、导入者或CVE | golang-pkg-go-dev |
golang-dependency-management |
| 采用新的Go语言特性 | golang-modernize |
golang-lint |
| 使用samber/lo(切片/映射辅助函数) | golang-samber-lo |
golang-data-structures, golang-performance |
| 使用samber/oops(结构化错误) | golang-samber-oops |
golang-error-handling |
| 使用log/slog | golang-samber-slog |
golang-observability, golang-error-handling |
| 使用依赖注入 | golang-dependency-injection |
golang-google-wire 或 golang-uber-dig 或 golang-uber-fx 或 golang-samber-do |
以上所有技能标识符均为samber/cc-skills-golang@<name>的简写形式。
分类概览
完整目录及“何时使用”钩子:by-category.md
| 分类 | 技能 |
|---|---|
| 代码质量 | golang-code-style golang-documentation golang-error-handling golang-lint golang-naming golang-safety golang-security golang-structs-interfaces |
| 架构与设计 | golang-concurrency golang-context golang-data-structures golang-database golang-dependency-injection golang-design-patterns golang-modernize |
| 质量保证与性能 | golang-benchmark golang-observability golang-performance golang-testing golang-troubleshooting |
| 项目设置 | golang-cli golang-continuous-integration golang-dependency-management golang-pkg-go-dev golang-popular-libraries golang-project-layout golang-stay-updated |
| API | golang-graphql golang-grpc golang-swagger |
| 依赖注入 | golang-dependency-injection golang-google-wire golang-uber-dig golang-uber-fx golang-samber-do |
| 框架 | golang-spf13-cobra golang-spf13-viper |
| samber/* | golang-samber-do golang-samber-hot golang-samber-lo golang-samber-mo golang-samber-oops golang-samber-ro golang-samber-slog |
| 测试 | golang-stretchr-testify golang-testing |
竞争集群——边界线
完整边界表及路由示例:disambiguation.md
关键集群及其所有者:
- 性能:
golang-performance(优化模式)·golang-benchmark(测量)·golang-troubleshooting(根因)·golang-observability(始终在线的生产监控) - DI:
golang-dependency-injection(概念/决策)·golang-google-wire(编译时)·golang-uber-dig(运行时反射)·golang-uber-fx(生命周期框架)·golang-samber-do(类型安全容器) - samber/*:
golang-samber-lo(有限转换)·golang-samber-ro(响应式流)·golang-samber-mo(单子类型) - 错误:
golang-error-handling(惯用法)·golang-samber-oops(结构化错误)·golang-safety(防止panic) - 风格:
golang-code-style·golang-naming·golang-lint·golang-documentation - CLI:
golang-cli(架构)·golang-spf13-cobra(命令树)·golang-spf13-viper(配置分层) - 包查找:
golang-pkg-go-dev(查询pkg.go.dev获取现有路径:版本/文档/符号/导入者/CVE)·golang-popular-libraries(选择哪个库)·golang-dependency-management(管理go.mod)·golang-security(全树CVE扫描) - 差距——类型 vs 架构:
golang-structs-interfaces(类型设计)vsgolang-design-patterns(架构模式) - 差距——goroutine vs 取消:
golang-concurrency+golang-context——通过上下文取消goroutine时同时加载两者 - 差距——正确性 vs 威胁:
golang-safety(内部错误)vsgolang-security(外部威胁) - 差距——特性 vs 规则:
golang-modernize(语言采用)vsgolang-lint(静态分析配置)
配置模式
在项目的CLAUDE.md或AGENTS.md中强制触发特定技能,使其始终加载。
当以/golang-how-to configure调用时,遵循project-config.md。
此技能并非详尽无遗。有关详细指导,请参考各个技能文件和官方Go文档。
如果您在此技能插件中遇到错误或意外行为,请在https://github.com/samber/cc-skills-golang/issues提交问题。





