代码审查 code-review

这个技能用于自动化代码审查,专为拉取请求设计,使用特定的审查模式分析代码的质量、安全性、性能和最佳实践。适用于代码变更审查、PR审查或代码审计,帮助提升软件开发的效率和可靠性。关键词:代码审查、自动化、安全审查、性能优化、代码质量、测试覆盖、软件开发、最佳实践。

测试 0 次安装 0 次浏览 更新于 3/8/2026

name: 代码审查 description: 使用专门的审查模式自动化代码审查,针对拉取请求。分析代码的质量、安全性、性能和最佳实践。适用于代码变更审查、PR审查或代码审计。 source: anthropics/claude-code license: Apache-2.0

代码审查

审查类别

1. 安全审查

检查:

  • SQL注入漏洞
  • XSS(跨站脚本)
  • 命令注入
  • 不安全的反序列化
  • 硬编码的秘密/凭证
  • 不正确的认证/授权
  • 不安全的直接对象引用

2. 性能审查

检查:

  • N+1查询
  • 缺失的数据库索引
  • 不必要的重新渲染(React)
  • 内存泄漏
  • 异步代码中的阻塞操作
  • 缺失的缓存机会
  • 大型捆绑包大小

3. 代码质量审查

检查:

  • 代码重复(DRY违规)
  • 功能做太多(SRP违规)
  • 深层嵌套/复杂条件
  • 魔术数字/字符串
  • 命名不佳
  • 缺失的错误处理
  • 不完整的类型覆盖

4. 测试审查

检查:

  • 新代码的缺失测试覆盖
  • 不测试行为的测试
  • 不稳定测试模式
  • 缺失的边缘案例
  • 模拟的外部依赖

审查输出格式

## 代码审查摘要

### 🔴 关键(必须修复)
- **[文件:行]** [问题描述]
  - **原因:** [解释]
  - **修复:** [建议修复]

### 🟡 建议(应考虑)
- **[文件:行]** [问题描述]
  - **原因:** [解释]
  - **修复:** [建议修复]

### 🟢 细节(可选)
- **[文件:行]** [次要建议]

### ✅ 优点
- [对良好模式的积极反馈]

常见模式标记

安全

// 坏:SQL注入
const query = `SELECT * FROM users WHERE id = ${userId}`;

// 好:参数化查询
const query = 'SELECT * FROM users WHERE id = $1';
await db.query(query, [userId]);

性能

// 坏:N+1查询
users.forEach(async user => {
  const posts = await getPosts(user.id);
});

// 好:批量查询
const userIds = users.map(u => u.id);
const posts = await getPostsForUsers(userIds);

错误处理

// 坏:吞噬错误
try {
  await riskyOperation();
} catch (e) {}

// 好:处理或传播
try {
  await riskyOperation();
} catch (e) {
  logger.error('操作失败', { error: e });
  throw new AppError('操作失败', { cause: e });
}

审查清单

  • [ ] 无硬编码秘密
  • [ ] 输入验证存在
  • [ ] 错误处理完整
  • [ ] 类型/接口定义
  • [ ] 为新代码添加测试
  • [ ] 无明显性能问题
  • [ ] 代码可读且文档化
  • [ ] 破坏性更改文档化