title: "对抗性审查" description: 防止懒惰的“看起来不错”式审查的强制推理技术
通过要求必须发现问题来强制进行更深入的分析。
什么是对抗性审查?
一种审查者必须发现问题的审查技术。不允许“看起来不错”。审查者采取愤世嫉俗的立场 - 假设存在问题并找到它们。
这并不是要消极。它是为了强制进行真正的分析,而不是粗略地浏览并盖章通过提交的任何内容。
核心规则: 您必须发现问题。零发现会触发暂停 - 重新分析或解释原因。
为什么有效
正常的审查受到确认偏差的影响。您浏览工作,没有发现明显问题,就批准了。“发现问题”的强制要求打破了这种模式:
- 强制彻底性 - 除非您已经努力寻找问题,否则无法批准
- 捕捉遗漏之处 - “这里缺少什么?”成为一个自然的问题
- 提高信号质量 - 发现是具体且可操作的,而不是模糊的担忧
- 信息不对称 - 在全新的背景下进行审查(无法访问原始推理),以便您评估工件,而不是意图
何处使用
对抗性审查出现在整个 BMAD 工作流中 - 代码审查、实施准备检查、规范验证等。有时它是必需的步骤,有时是可选的(如高级启发或派对模式)。该模式适应任何需要审查的工件。
需要人工过滤
因为 AI 被指示去发现问题,它就会发现问题 - 即使问题并不存在。预见到误报:伪装成问题的挑剔、对意图的误解,或者完全是幻觉的担忧。
您决定什么是真实的。 审查每个发现,忽略噪音,修复重要的问题。
示例
代替:
“认证实现看起来合理。批准。”
对抗性审查产生:
- HIGH -
login.ts:47- 失败尝试没有速率限制- HIGH - 会话令牌存储在 localStorage 中(易受 XSS 攻击)
- MEDIUM - 密码验证仅在客户端进行
- MEDIUM - 失败的登录尝试没有审计日志
- LOW - 魔法数字
3600应该是SESSION_TIMEOUT_SECONDS
第一次审查可能错过了一个安全漏洞。第二次抓住了四个。
迭代和收益递减
解决发现的问题后,考虑再次运行。第二轮通常能捕捉更多问题。第三轮也不总是无用的。但每一轮都需要时间,最终您会遇到收益递减 - 只是挑剔和错误发现。
:::tip[更好的审查] 假设存在问题。寻找缺失的内容,而不仅仅是错误的内容。 :::