Skip to main content
ClaudeWave
ES, Spanish
Slash Command2k estrellas del repoactualizado 7mo ago

go-review

The go-review command invokes the go-reviewer agent to perform comprehensive Go code reviews covering idiomatic patterns, concurrency safety, error handling, and security vulnerabilities. It identifies modified Go files via git diff, runs static analysis tools including go vet and golangci-lint, detects security issues like SQL injection and race conditions, analyzes goroutine and channel safety, and categorizes findings by severity level with actionable remediation examples.

Instalar en Claude Code
Copiar
mkdir -p ~/.claude/commands && curl -fsSL https://raw.githubusercontent.com/xu-xiang/everything-claude-code-zh/HEAD/commands/go-review.md -o ~/.claude/commands/go-review.md
Después abre una sesión nueva de Claude Code; el slash command carga automáticamente.

go-review.md

# Go 代码审查 (Go Code Review)

此命令调用 **go-reviewer** 智能体 (Agent) 进行针对 Go 语言特性的全面代码审查。

## 此命令的作用

1. **识别 Go 代码变更**:通过 `git diff` 查找已修改的 `.go` 文件
2. **运行静态分析**:执行 `go vet`、`staticcheck` 和 `golangci-lint`
3. **安全扫描**:检查 SQL 注入、命令注入、竞态条件等安全隐患
4. **并发审查**:分析 Goroutine 安全、通道 (Channel) 使用、互斥锁 (Mutex) 模式
5. **地道 Go 检查**:验证代码是否遵循 Go 惯例和最佳实践
6. **生成报告**:按严重程度对问题进行分类

## 适用场景

在以下情况下使用 `/go-review`:
- 编写或修改 Go 代码后
- 提交 Go 代码变更前
- 审查包含 Go 代码的拉取请求 (Pull Request)
- 熟悉新的 Go 代码库
- 学习地道的 Go 模式

## 审查类别

### 致命 (CRITICAL) - 必须修复
- SQL/命令注入漏洞
- 未经同步的并发访问(竞态条件)
- Goroutine 泄露
- 硬编码的凭据
- 不安全的指针 (Unsafe Pointer) 使用
- 关键路径中被忽略的错误

### 高危 (HIGH) - 建议修复
- 缺失包含上下文 (Context) 的错误包装
- 使用 Panic 代替错误返回
- 上下文 (Context) 未透传
- 导致死锁的无缓冲通道
- 接口未实现错误
- 缺失互斥锁保护

### 中等 (MEDIUM) - 酌情考虑
- 非地道的代码模式
- 导出的标识符缺失 Godoc 注释
- 低效的字符串拼接
- 切片 (Slice) 未预分配容量
- 未使用表驱动测试 (Table-driven tests)

## 运行的自动化检查

```bash
# 静态分析
go vet ./...

# 高级检查(如果已安装)
staticcheck ./...
golangci-lint run

# 竞态检测
go build -race ./...

# 安全漏洞
govulncheck ./...
```

## 使用示例

```text
用户: /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
```go
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
问题: 返回错误时未包含上下文信息
```go
return err  // 缺失上下文
```
修复: 包装上下文信息
```go
return fmt.Errorf("get user %s: %w", userID, err)
```

## 总结
- 致命 (CRITICAL): 1
- 高危 (HIGH): 1
- 中等 (MEDIUM): 0

建议: ❌ 在修复“致命”问题前禁止合并
```

## 批准标准

| 状态 | 条件 |
|--------|-----------|
| ✅ 批准 (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/`
api-designSkill

生产级 API 的 REST API 设计模式,包括资源命名、状态码、分页、过滤、错误响应、版本控制和速率限制。

architectSubagent

用于系统设计、可扩展性及技术决策的软件架构专家。在规划新功能、重构大型系统或做出架构决策时请主动(PROACTIVELY)使用。

article-writingSkill

编写文章、指南、博客、教程、时事通讯(Newsletter)等长内容,支持从示例或品牌指南中提取独特的语感语调。适用于需要撰写超过一个段落的精炼文本,尤其是对语气一致性、结构和可信度有较高要求时。

backend-patternsSkill

后端架构模式、API 设计、数据库优化以及 Node.js、Express 和 Next.js API 路由的服务端最佳实践。

build-error-resolverSubagent

构建与 TypeScript 错误修复专家。当构建失败或出现类型错误时,请主动(PROACTIVELY)使用。仅修复构建/类型错误,保持最小差异(diff),不进行架构性修改。重点是快速使构建通过(get the build green)。

chief-of-staffSubagent

个人通讯幕僚 (Chief of Staff),负责分拣电子邮件、Slack、LINE 和 Messenger。将消息分类为 4 个级别 (skip/info_only/meeting_info/action_required),生成草稿回复,并通过钩子 (Hooks) 强制执行发送后的后续跟进。适用于管理多渠道通讯工作流。

clawSlash Command

启动 NanoClaw 智能体 (Agent) REPL — 一个由 claude CLI 驱动的持久化、会话感知 (session-aware) 的 AI 助手。

clickhouse-ioSkill

ClickHouse 数据库模式、查询优化、分析以及高性能分析工作负载的数据工程最佳实践。