跳到主内容
code review审查质量

Code Review Prompt:让 AI 像 Staff Engineer 一样审查代码

强制 AI 按正确性、安全、性能、可维护性 4 个层级审查,按严重度排序只报真问题,不评论主观风格。适合 PR 已自测、需要第二双眼睛盯并发与鉴权的场景,改动越核心越有用。

发布 2026-06-21更新 2026-10-13
适用:ClaudeCursorChatGPT

用法

把需要 review 的代码 / PR diff 粘进来,配合下面的 prompt。

什么时候用 / 别用

用它:

  • PR 已经自测过、需要第二双眼睛看正确性而不是风格。
  • 改动涉及并发、鉴权、资源生命周期、异常路径——这四类是人类 reviewer 最容易漏、而 AI 分级清单最擅长的。
  • 你是唯一 reviewer,需要一个不会疲倦的第一道筛。

别用:

  • 只想做风格统一——那是 linter 和 formatter 的活,用 AI 做这件事会把真问题淹掉(本 prompt 明确写了「不要报」清单,等于主动放弃这块)。
  • 需要判断的是产品语义正确性(这个折扣计算规则对不对)。AI 没有你的业务上下文,它会编一个听起来合理的规则。
  • diff 超过约 400 行。超过这个量级,任何模型都会开始用「整体来看」这类话术敷衍。大 PR 拆成按文件批次跑,见下方变体 C。
  • 合规强相关的改动(审计留痕、加密实现)。这类需要一个能被追责的人签字,AI 的输出只能当输入不能当结论。

最容易犯的错:把它的 建议项当成必须处理。这条 prompt 的价值恰恰在于它区分了「阻塞合并」和「有空再改」,如果你把所有层级的评论都当成待办,等于又退回到「20 条平铺评论 = 0 条」。

Prompt

请像 Staff Engineer 一样审查以下代码。不要评论代码风格、命名偏好、注释多少——这些交给 linter。只报真正的问题。

## 审查层级(按严重度排序)

### 🔴 严重(必须修复,否则不能合并)
- Bug:空指针、越界、竞态条件、资源泄露
- 安全:SQL 注入、XSS、密钥泄露、权限绕过
- 数据丢失风险:未处理的异常导致数据不一致

### 🟡 重要(建议修复,不阻塞合并)
- 性能:O(n²) 循环、N+1 查询、不合理的内存使用
- 错误处理:吞异常、缺少重试、没有超时
- 并发:缺少锁、死锁风险

### 🟢 建议(可选,有空再改)
- 可维护性:函数过长、职责不清、缺少抽象
- 测试:边界 case 未覆盖、缺少异常路径测试

### ❌ 不要报
- 代码风格(空格、括号位置)
- 命名偏好(除非真的有歧义)
- 注释多少
- 个人偏好

## 输出格式

对每个问题:
- **[层级] 文件:行号** — 问题描述
- 原因:为什么这是问题
- 建议:怎么改(给代码示例)

如果某个层级没有问题,明确写「无」。

## 最后
列出你看完后不确定的地方(需要更多上下文才能判断的点)。不要猜。

---

代码:
(粘贴代码或 PR diff)

效果

不加 prompt 时 AI 的 review 通常 20+ 条评论,一半是风格建议,开发者很快就忽略所有评论。

加了这条 prompt 后输出变成:3-5 个真问题,每个都有行号 + 原因 + 修复代码。信噪比大幅提升,开发者愿意看。

为什么有效

  • 显式列「不要报什么」比列「要报什么」更关键:AI 的默认是讨好式输出,不给负面清单它就会把风格意见塞满评论区。
  • 严重度分层把「必须改」和「有空改」分开:-review 的价值取决于可行动性,20 条平铺的评论等于 0 条。
  • 要求给行号 + 原因 + 修复代码:这三件套让评论从「观点」变成「可执行任务」,也是信噪比提升的根源。

验收判据:怎么判断这次 review 是可信的

AI review 的失败模式不是「漏报」,而是**「看起来很专业的误报」**——它给出行号、给出修复代码,但那个 bug 在你的上下文里根本不存在。用这四条量化:

判据具体做法不合格的典型信号
每条都能定位到行逐条跳到 文件:行号 看一眼出现「整体来看」「建议统一」这类无锚点的评论
严重度可复核随机抽 1 条 ,判断它是否真的阻塞合并 里混进了「函数有点长」——说明分层约束失效
误报率可测让它 review 一段你已经修过 bug 的旧代码,对照已知问题命中率低于半数就该换这段 prompt,而不是继续调
不确定项被列出看最后「我不确定的地方」一节这一节为空 —— 说明它在猜,而不是在审

第四条是最容易被忽略、也最致命的。 一条写满了自信结论却没有任何「需要更多上下文」的 review,几乎一定包含幻觉。

变体

A. 只看 diff,不看全文件(降低噪音)

只审查下面 diff 中新增或修改的行。未改动的代码即使有问题也不要报告。
如果判断某个问题必须结合未改动的上下文才能确认,请明确说明「需要看 <文件名> 的 <函数>」,
而不是直接下结论。

B. 让它自己证伪(压误报)

对每个 🔴 级问题,先写一段「最小复现步骤」或「触发输入」。
如果你无法给出可执行的复现路径,就把该问题降级到 🟡 并在末尾注明「未验证」。

C. 大 PR 按文件分批 + 管道化

# 只送本次改动的文件,逐个跑,避免超大 diff 导致敷衍
git diff --name-only origin/main...HEAD -- "*.ts" | while read -r f; do
  echo "=== $f ==="
  git diff origin/main...HEAD -- "$f" | claude -p "$(cat prompts/review-staff.txt)"
done | tee /tmp/review.md

# 只让人看阻塞级
grep -E '^\[严重|🔴' /tmp/review.md

claude -p 是非交互管道模式;Codex、Gemini CLI、Qwen Code 同理。管道化的关键收益是「AI review 结果本身也是一个 diff-able 的产物」,可以进 PR 评论而不是聊天记录。

进阶(自动化)

接进 CI 当作第一道筛(人工只审它标红的部分):

# 只对本次变更的文件跑,避免全仓噪音
git diff --name-only origin/main...HEAD -- "*.ts" | while read -r f; do
  ai-review --file "$f" --severity blocking
 done

配套工作流见 AI 代码审查流水线 Playbook;工具化方案见 AI 代码审查工具横评。

反例(AI 默认会写的烂版本)

默认输出:「建议把变量名 data 改成 userData」「这里可以加个注释」「考虑使用更函数式的写法」——15 条里 12 条是风格,真 bug 被淹掉。

加了 prompt 之后:[严重] src/auth.ts:42 — refresh token 失败时未清理旧 session,存在会话固定风险;建议:在 catch 分支调用 invalidateSession(id),并注明「可维护性层级:无」。

延伸阅读

相关对比

Cursor vs Aider:GUI IDE 还是 CLI?2026 对比

Cursor vs Aider 2026 选型对比:GUI IDE vs Git 原生 CLI,从 Composer vs Architect 双模型、Tab 补全、多模型 BYOK、价格计费、开源与否和适合人群判断,帮开发者选对。Cursor 是闭源 VS Code fork 月费 $20,Aider 是开源 Apache-2.0 CLI 自带 API key。

Augment Code vs Cursor:企业 AI 编程怎么选?Context Engine vs AI IDE 对比

Augment Code vs Cursor 2026 选型对比:Context Engine 全仓索引的企业 AI 平台 vs SpaceX 收购的 AI IDE 天花板,从形态、Context 覆盖、长任务、价格、合规、中文支持和适合人群 8 个维度判断,帮你选对企业 AI 编程工具。

Cursor vs Claude Code:什么时候用哪个?(2026 实测选型)

Cursor 和 Claude Code 到底怎么选?一句话结论 + 决策树 + 价格实测 + 国内可用性对比。GUI 派选 Cursor,终端长任务派选 Claude Code,最优解其实是共存。

Cursor vs GitHub Copilot:AI IDE 还是插件?2026 对比

Cursor vs GitHub Copilot 2026 选型对比:AI 原生 IDE vs IDE 插件,从 Composer vs Agent Mode、Tab 补全、多模型、AI Credits 计费、企业版和适合人群判断,帮开发者选对。Cursor 是 VS Code fork 重写交互层,Copilot 是 VS Code 插件继承原生体验。两家都已切 usage 制。

Cursor vs Kiro:「对话式改代码」与「规格驱动开发」怎么选(2026)

Cursor 代表对话式、迭代式 AI 编码;Kiro 主打 spec-driven,先写需求与设计再生成代码。本文补上 2026-11-03 官网核对的价格与额度、两种范式的实际差异、决策表与迁移成本,帮你按交付方式而不是口号选型。

Cursor vs Trae:国内开发者怎么选?价格、模型、网络和真实体验对比

Cursor vs Trae 2026 选型对比:从价格、模型能力、国内访问、Builder/Composer、多文件改写、MCP 生态和适合人群判断,帮国内开发者决定继续用 Cursor,还是切到字节 Trae。

相关评测