针对地道模式、并发安全、错误处理和安全性的全面 Go 代码审查。调用 go-reviewer 智能体 (Agent)。
Analyzes Go code for idiomatic patterns, concurrency safety, and security vulnerabilities, generating prioritized reports.
/plugin marketplace add https://www.claudepluginhub.com/api/plugins/xu-xiang-everything-claude-code/marketplace.json/plugin install xu-xiang-everything-claude-code@cpd-xu-xiang-everything-claude-code此命令调用 go-reviewer 智能体 (Agent) 进行针对 Go 语言特性的全面代码审查。
git diff 查找已修改的 .go 文件go vet、staticcheck 和 golangci-lint在以下情况下使用 /go-review:
# 静态分析
go vet ./...
# 高级检查(如果已安装)
staticcheck ./...
golangci-lint run
# 竞态检测
go build -race ./...
# 安全漏洞
govulncheck ./...
用户: /go-review
智能体 (Agent):
# Go 代码审查报告 (Go Code Review Report)
## 已审查的文件
- internal/handler/user.go (已修改)
- internal/service/auth.go (已修改)
## 静态分析结果
✓ go vet: 无问题
✓ staticcheck: 无问题
## 发现的问题
[致命] 竞态条件 (Race Condition)
文件: internal/service/auth.go:45
问题: 未经同步访问共享 Map
```go
var cache = map[string]*Session{} // 并发访问!
func GetSession(id string) *Session {
return cache[id] // 竞态条件
}
修复: 使用 sync.RWMutex 或 sync.Map
var (
cache = map[string]*Session{}
cacheMu sync.RWMutex
)
func GetSession(id string) *Session {
cacheMu.RLock()
defer cacheMu.RUnlock()
return cache[id]
}
[高危] 缺失错误上下文 文件: internal/handler/user.go:28 问题: 返回错误时未包含上下文信息
return err // 缺失上下文
修复: 包装上下文信息
return fmt.Errorf("get user %s: %w", userID, err)
建议: ❌ 在修复“致命”问题前禁止合并
## 批准标准
| 状态 | 条件 |
|--------|-----------|
| ✅ 批准 (Approve) | 无致命 (CRITICAL) 或高危 (HIGH) 问题 |
| ⚠️ 警告 (Warning) | 仅存在中等 (MEDIUM) 问题(谨慎合并) |
| ❌ 阻断 (Block) | 发现致命 (CRITICAL) 或高危 (HIGH) 问题 |
## 与其他命令的集成
- 先使用 `/go-test` 确保测试通过
- 如果出现构建错误,使用 `/go-build`
- 在提交代码前使用 `/go-review`
- 针对非 Go 特定的问题,使用 `/code-review`
## 相关内容
- 智能体 (Agent): `agents/go-reviewer.md`
- 技能 (Skills): `skills/golang-patterns/`, `skills/golang-testing/`