AgentSkillsCN

code-go-style-review

当用户提出“审查 Go 风格”、“Go 代码审查”、“检查 Go 规范”、“Go 最佳实践”、“Go 风格审查”、“Go 代码审查”、“检查 Go 规范”、“Go 最佳实践”、“golangci-lint”等需求,或讨论依据 Uber Go 风格指南标准(Go 代码风格审查)来审查 Go 代码时,应使用此技能。

SKILL.md
--- frontmatter
name: code-go-style-review
description: This skill should be used when the user asks to "review Go style", "Go code review", "check Go conventions", "Go best practices", "Go 风格审查", "Go 代码审查", "检查 Go 规范", "Go 最佳实践", "golangci-lint", or discusses reviewing Go code against Uber Go Style Guide standards (Go 代码风格审查).
version: 1.0.0

Go 代码风格审查

基于 Uber Go Style Guide 审查 Go 代码风格,涵盖惯用约定、性能优化和编程模式。

直接操作(无需 Sub-Agent)

这些简单操作立即执行:

操作命令何时直接使用
运行 lintergolangci-lint run用户只需要 lint 结果
格式化代码goimports -w .仅需格式化
运行 vetgo vet ./...仅需 vet 检查
竞态检测go test -race ./...仅需竞态检查

Sub-Agent 委托

code-go-style-reviewer

用于: 系统化的 Go 风格审查

何时委托:

  • 用户要求"Go 风格审查"或"代码审查"
  • 需要逐项检查接口、资源管理、错误处理等
  • 需要按严重程度分类问题并提供修改建议
  • 涉及多个文件或整个包的审查

参数:

json
{
  "path": "目标文件或目录路径",
  "scope": "file" | "package" | "diff",
  "severity": "all" | "must-fix" | "should-fix"
}

code-readability-improver(辅助)

何时联合使用:

  • 风格审查 + 可读性改进 一起做
  • 用户要求"全面代码审查"

决策树

code
用户请求:
├─ "跑一下 golangci-lint" / "lint 检查"
│  └─ 直接执行 golangci-lint run
│
├─ "审查这个文件的 Go 风格"
│  └─ 委托给 code-go-style-reviewer
│
├─ "审查最近的变更"
│  └─ 委托给 code-go-style-reviewer(scope: diff)
│
├─ "审查整个包"
│  └─ 委托给 code-go-style-reviewer(scope: package)
│
├─ "全面代码审查"
│  └─ 并行启动:
│     Agent 1: code-go-style-reviewer(风格审查)
│     Agent 2: code-readability-improver(可读性分析)
│  └─ 合并结果
│
└─ "只看 must-fix 的问题"
   └─ 委托给 code-go-style-reviewer(severity: must-fix)

并行执行

多包审查

code
用户: "审查 pkg/mcp 和 pkg/gateway 的 Go 风格"
→ 并行启动:
  Agent 1: code-go-style-reviewer(pkg/mcp)
  Agent 2: code-go-style-reviewer(pkg/gateway)
→ 汇总审查报告

全面审查

code
用户: "全面审查代码质量"
→ 并行启动:
  Agent 1: code-go-style-reviewer(风格和规范)
  Agent 2: code-readability-improver(结构和可读性)
→ 合并为统一的审查报告

工作流

步骤 1: 确定范围

  • 运行 lint?→ 直接执行
  • 文件/包/diff?→ 委托给 Sub-Agent
  • 全面审查?→ 并行启动多个 Agent

步骤 2: 启动审查 Agent

code
Task({
  subagent_type: "general-purpose",
  description: "Go 风格审查 " + path,
  prompt: `你是 code-go-style-reviewer。基于 Uber Go Style Guide 审查 ${path} 的代码风格,检查接口使用、资源管理、错误处理、性能优化和代码规范,按严重程度分类问题并提供修改建议。`
})

步骤 3: 展示审查报告

审查范围说明

审查项对应规则示例
接口无指针接口、编译时验证var _ Handler = (*Server)(nil)
资源defer 关闭、边界拷贝defer f.Close()
错误一次处理、%w 包装fmt.Errorf("...: %w", err)
性能strconv、预分配make([]T, 0, n)
风格import 分组、early return标准库/第三方/本项目

与其他技能的关系

场景后续行动使用技能
发现可读性问题改进可读性readability-improvement
发现冗余代码简化代码code-simplification
审查完成提 PR生成 PR 描述pr-description

错误处理

  • 非 Go 文件: 提示本技能仅适用于 Go 代码
  • golangci-lint 未安装: 提示安装命令
  • 编译失败: 建议先修复编译错误再审查风格