PR Review Prompt:让 AI 做第一道筛
把整个 PR diff 丢给 AI,让它先给出结构化 review,人脑只看高价值部分。适合中大型团队的 AI 辅助代码审查流程,大幅提升 review 效率。
用法
git fetch origin main
git diff main...HEAD > /tmp/pr.diff
把 diff 粘给 AI 配下面 prompt:
Prompt
请审视下面的 PR diff,按以下结构输出 review:
## 1. 改动分类
输出一张表,每行一个改动单元:
| 文件 | 类型 | 摘要 |
|---|---|---|
| ... | feat / fix / refactor / test / docs / config | 1 句话 |
## 2. 高风险点
逐条列出,每条带文件:行号:
- ⚠️ 业务逻辑改动但**没有对应测试**
- ⚠️ 看起来是重构但行为可能被**无意改变**
- 🛑 **secret / API key** 出现在 diff 里
- 🛑 **不可逆操作**(DB migration / 删字段 / 二进制格式变更)
- ⚠️ **null deref / 类型转换**等运行时风险
如果某类没问题,明确写"无",不要省略。
## 3. 一致性扫描
- PR 改了某函数签名 → 所有调用方都改了吗?
- PR 加了新 pattern → 类似地方需要同步吗?
- PR 改了某常量 → 相关常量同步了吗?
逐条列出"可能漏改"的地方,给 文件:行号。
## 4. 测试评估
- 新增/修改的测试**真的覆盖了业务逻辑改动**吗?还是只 happy path?
- 断言够强吗?有"修测试让它通过"的痕迹吗?
- 哪些 edge case 没被测到?
## 5. 回滚成本
- 单纯 git revert 能回滚吗?
- 有不可逆改动吗?
- 客户端/服务端解耦了吗?
## 6. 最终建议
输出三段:
- ✅ 没问题的部分(简短)
- ⚠️ 需要 author 回应的问题(每条带 文件:行号)
- 🛑 阻塞合并的问题(如有)
**不要客套话,不要"LGTM"。具体、有依据、可行动。**
PR diff:
```
<paste here>
```
为什么有效
- 结构化输出强制 AI 走完所有维度,不能光说"看起来还行"
- "如果没问题明确写'无'"防止 AI 偷懒省略
- "一致性扫描"是 AI 的杀手锏——人类 review 容易盯着 diff 看,AI 会去看 diff 之外
- "回滚成本"维度对 PR author 极有价值
配套工作流
完整流程见 AI 做 PR review 工作流。
进阶(自动化)
把「第一道筛」接到 PR 事件上,人工只处理它标红的部分:
# 生成 diff 后交给 AI 做首轮筛查
BASE=${GITHUB_BASE_REF:-main}
git diff "origin/$BASE...HEAD" > /tmp/pr.diff
ai-review --diff /tmp/pr.diff --mode first-pass --output-format markdown > /tmp/review.md
建议只让它在 PR 描述里追加结论,不要自动 request changes——误报会迅速消耗团队对这条流水线的信任。
反例(AI 默认会写的烂版本)
默认输出:逐行复述 diff 在干什么(「这里改了变量名」「这里加了一个函数」),没有风险判断。
加了 prompt 之后:先给「改动分类:行为变更 + 依赖升级」,再点名「高风险点:src/payment/* 且无对应测试」,最后给「回滚成本:需数据迁移,不可直接 revert」。
延伸阅读
- Staff 级 Code Review Prompt · 安全审计 Prompt — 单文件/专项深审
- 搭一条自动化 PR Review 流水线 — 把这条 prompt 接进 GitHub Actions
- AI 代码审查工具横评 — CodeRabbit/Greptile 等现成方案