---
title: "对抗性评审"
description: 防止懒惰“看起来不错”评审的强制推理技术
sidebar:
  order: 9
---

对抗性评审（adversarial review）是一种“强制找问题”的评审方法：不允许直接“Looks good”，必须给出可验证发现，或者明确解释为什么没有发现。

## 它是什么

常规评审容易落入确认偏差：快速扫一遍，没有明显报错，就批准。  
对抗性评审反过来要求评审者先假设“问题存在”，再去定位证据。

核心规则：
- 必须产出问题发现或明确的无发现理由
- 发现要具体、可追溯、可操作
- 评审对象是工件本身，而不是作者意图

## 为什么有效

- 强制深入阅读，减少“浏览式批准”
- 更容易发现“缺了什么”，不只看“写错了什么”
- 发现通常更结构化，便于后续分诊与修复
- 在新上下文评审时，能降低“先入为主”偏差

## 在哪里使用

它不是某个单一 workflow 独占，而是一种可复用评审模式，常见于：
- 代码评审
- 规范/方案评审
- 实施就绪检查
- 高风险改动复核

## 你需要知道的限制

因为系统被要求“必须找问题”，它会提高召回率，也会提高误报率。  
你会看到：
- 吹毛求疵型发现
- 语义误解型发现
- 偶发幻觉型发现

所以它本质上是**高召回、需人工分诊**的策略，而不是“自动真理机”。

:::caution[关键心法]
把发现分成三类：必须修、可延后、可忽略。评审质量的关键不在”发现数量”，而在分诊质量。
:::

如果你想把该策略放进快速实现节奏中，可参见 [快速开发](./quick-dev.md)；若要做多轮推理补强，可参见 [高级启发](./advanced-elicitation.md)。整体流程位置请见 [工作流地图](../reference/workflow-map.md)。

## 与 Quick Dev 的关系

`bmad-quick-dev` 关注执行效率与边界控制；对抗性评审关注问题发现质量。  
一个解决“跑得稳不稳”，一个解决“看得深不深”，两者互补而非替代。

## 示例（对比）

普通评审可能是：
> “实现基本没问题，先过。”

对抗性评审更像：
> 1. HIGH：`login.ts` 缺失失败重试限流  
> 2. HIGH：会话令牌存储在 `localStorage`，存在 XSS 风险  
> 3. MEDIUM：失败登录缺少审计日志  
> 4. LOW：魔法数字 `3600` 建议替换为命名常量

重点不是“更凶”，而是“更可执行”。

## 继续阅读

- [快速开发](./quick-dev.md)
- [高级启发](./advanced-elicitation.md)
- [工作流地图](../reference/workflow-map.md)
