代码审查Skill code-review

此技能用于代码审查,执行安全、正确性、风格和性能检查,确保代码质量,防止安全漏洞,并遵循最佳实践。关键词:代码审查、安全审计、代码质量、提交前验证、静态分析、质量控制、测试自动化、软件开发。

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

name: code-review description: 当代码已编写,需要在提交前验证时使用,或当用户请求代码审查或安全检查时。 context: fork agent: code-reviewer

代码审查

概述

审查代码的安全性、正确性和质量。在隔离的代码审查上下文中运行,预加载标准。

开始时宣布: “我正在使用代码审查技能来验证 [文件/功能]。”

过程

步骤1:预加载上下文(主代理)

在调用审查之前加载标准:

读取: .opencode/context/core/standards/code-quality.md
读取: .opencode/context/core/standards/security-patterns.md

步骤2:调用审查

/code-review 路径/到/文件.ts
/code-review src/auth/*.ts
/code-review $(git diff --name-only HEAD~1)

步骤3:分析报告

代码审查器返回结构化的发现:

## 代码审查:认证服务

### 🔴 严重(必须修复)
1. **SQL注入风险** — src/db/query.ts:42
   - 问题:使用未参数化的查询处理用户输入
   - 风险:数据库受损
   - 修复:
     ```diff
     - db.query(`SELECT * FROM users WHERE id = ${userId}`)
     + db.query('SELECT * FROM users WHERE id = ?', [userId])
     ```

### 🟠 高(正确性)
2. **缺少错误处理** — src/auth/service.ts:28
   - 问题:异步函数没有try/catch块
   - 风险:未处理的promise拒绝
   - 修复:包装在try/catch中,并添加适当的日志记录

### 🟡 中(风格)
3. **命名约定** — src/auth/middleware.ts:15
   - 问题:使用snake_case而非camelCase
   - 修复:重命名verify_token → verifyToken

### 总结
总问题数:3(1严重,1高,1中)
建议:请求更改

步骤4:采取行动

如果存在严重或高问题:

  1. 停止——不要提交
  2. 使用建议的差异修复问题
  3. 重新运行 /code-review 以验证
  4. 只有在干净时才继续

如果只有中或低问题:

  1. 评估是现在修复还是稍后修复
  2. 应用质量改进
  3. 可以安全提交

如果无问题:

  1. 自信地提交
  2. 记录积极模式

审查检查

🔴 严重(安全):

  • SQL注入、XSS、命令注入
  • 硬编码凭据或密钥
  • 路径遍历、认证绕过

🟠 高(正确性):

  • 缺少错误处理
  • 类型不匹配
  • null/undefined间隙
  • 逻辑错误、竞争条件

🟡 中(可维护性):

  • 命名违规
  • 代码重复
  • 组织不良

🟢 低(建议):

  • 性能优化
  • 文档改进

错误处理

审查失败:

  • 确保上下文文件已预加载

发现过多:

  • 首先修复严重问题,然后重新审查

发现不清晰:

  • 在报告中请求澄清

红旗警示

如果您想到以下任何一点,请停止并重新阅读此技能:

  • “代码看起来没问题,审查是多余的”
  • “我写的,我知道它是正确的”
  • “我们很赶,可以稍后审查”
  • “只是个小改动,没有安全风险”

常见合理化

借口 现实
“我刚写的,所以我知道它是正确的” 作者是最差的审查者。新的视角能捕捉到熟悉度掩盖的问题。
“只是个小改动” 安全漏洞几乎总是在小的、“明显”的改动中。
“我们可以在合并后审查” 合并后审查在线上找到错误。合并前审查能免费找到它们。
“没有用户输入,所以没有注入风险” 当需求改变时,内部数据变成用户输入。现在就审查。

记住

  • 在调用审查之前预加载标准
  • 严重和高问题阻止提交
  • 使用代码差异应用建议的修复
  • 修复阻止问题后重新审查
  • 审查不修改代码——只建议更改
  • 审查不运行测试——使用测试生成来做那部分

相关

  • 上下文发现
  • 代码执行
  • 测试生成

任务: 审查以下文件: $ARGUMENTS

对代码审查子代理的指令:

  1. 读取 $ARGUMENTS 中的所有文件
  2. 应用预加载的标准(代码质量、安全、约定)
  3. 扫描:安全(最高优先级) → 正确性 → 风格 → 性能
  4. 按严重性结构化发现:严重 → 高 → 中 → 低
  5. 对每个发现:问题 + 风险 + 带有差异的建议修复
  6. 包括积极观察
  7. 返回建议:批准 | 请求更改 | 评论