Skip to content

[[[[Switch to English]]]]


title: "对抗性审查" description: 防止懒惰的“看起来不错”式审查的强制推理技术

通过要求必须发现问题来强制进行更深入的分析。

什么是对抗性审查?

一种审查者必须发现问题的审查技术。不允许“看起来不错”。审查者采取愤世嫉俗的立场 - 假设存在问题并找到它们。

这并不是要消极。它是为了强制进行真正的分析,而不是粗略地浏览并盖章通过提交的任何内容。

核心规则: 您必须发现问题。零发现会触发暂停 - 重新分析或解释原因。

为什么有效

正常的审查受到确认偏差的影响。您浏览工作,没有发现明显问题,就批准了。“发现问题”的强制要求打破了这种模式:

  • 强制彻底性 - 除非您已经努力寻找问题,否则无法批准
  • 捕捉遗漏之处 - “这里缺少什么?”成为一个自然的问题
  • 提高信号质量 - 发现是具体且可操作的,而不是模糊的担忧
  • 信息不对称 - 在全新的背景下进行审查(无法访问原始推理),以便您评估工件,而不是意图

何处使用

对抗性审查出现在整个 BMAD 工作流中 - 代码审查、实施准备检查、规范验证等。有时它是必需的步骤,有时是可选的(如高级启发或派对模式)。该模式适应任何需要审查的工件。

需要人工过滤

因为 AI 被指示去发现问题,它就会发现问题 - 即使问题并不存在。预见到误报:伪装成问题的挑剔、对意图的误解,或者完全是幻觉的担忧。

您决定什么是真实的。 审查每个发现,忽略噪音,修复重要的问题。

示例

代替:

“认证实现看起来合理。批准。”

对抗性审查产生:

  1. HIGH - login.ts:47 - 失败尝试没有速率限制
  2. HIGH - 会话令牌存储在 localStorage 中(易受 XSS 攻击)
  3. MEDIUM - 密码验证仅在客户端进行
  4. MEDIUM - 失败的登录尝试没有审计日志
  5. LOW - 魔法数字 3600 应该是 SESSION_TIMEOUT_SECONDS

第一次审查可能错过了一个安全漏洞。第二次抓住了四个。

迭代和收益递减

解决发现的问题后,考虑再次运行。第二轮通常能捕捉更多问题。第三轮也不总是无用的。但每一轮都需要时间,最终您会遇到收益递减 - 只是挑剔和错误发现。

:::tip[更好的审查] 假设存在问题。寻找缺失的内容,而不仅仅是错误的内容。 :::