| name | adversarial-review |
| description | 对研究结论、实验报告或技术宣称做对抗性审稿——逐条核实到代码、数据和原始材料,专抓循环论证、prompt 泄题、混杂变量、代码与宣称不符、样本量与措辞不匹配。产出逐条判定表、措辞降级建议和证据分级定位。Use when 用户准备发布结论、提交论文或技术报告,或要求“敌意审稿”“挑漏洞”“看看哪些结论站不住”。 |
对抗审稿(adversarial-review)
对研究文档、实验结论和技术报告做敌意审稿。目标不是夸,而是把“会被懂行的人当场戳穿的地方”先自己戳穿。
黄金标准
先读 references/anonymized-review-example.md 校准深度。范例使用完全虚构的项目、角色和数据,但保留真正审稿时最重要的动作:
- 每条意见都指向可核查的文件、代码行或原始数据;
- 不只说“可能有问题”,而是说明问题如何影响结论;
- 找错之后给出最小修法,并单独保留审后仍然成立的结论。
如果产出里没有“指着某行代码或某条原始记录说这里和宣称不符”的条目,就是没审到位。
铁律:独立视角
写结论的人审不出自己的结论。 作者最容易漏掉自己的循环论证、泄题和默认假设,因此:
- 若被审文档是当前会话写的,且运行环境支持独立 reviewer 或子 agent,必须派一个独立 reviewer,只给待审文档路径、代码路径和本清单,不给任何辩护性上下文;
- 若运行环境不支持子 agent,明确说明限制,并用全新上下文或隔离后的第二遍审查代替;不能假装同一思路下的自检等于独立审稿;
- reviewer 返回后,主会话逐条核实其引用的代码行、数据和原话是否属实——审稿人也会看错。
九宗罪清单
逐条检查;每一项都必须写“无此问题 / 部分成立 / 成立”,有问题时给出 文件:行号 或原始证据位置。
- 循环论证:结论是否用“被定义的变量”重新证明“定义本身”?
- 脱敏示例:某系统定义“可信分 = 自报完成度 − 日志完成度”,再用该分数证明系统“能发现虚报”。这更像用虚报变量定义分数后,再证明分数能测虚报。
- prompt 泄题:涌现或发现类结论中,“答案”是否已经写在某个 prompt、规则或标签里?
- 脱敏示例:报告声称“优化器自主发现保守报价更稳定”,但优化器 prompt 已明确写着“优先生成保守报价策略”。这是执行指令,不是自主发现。
- 代码与宣称不符:逐个动词核实。说“同时决策”→代码是不是顺序执行?说“全量记录”→是不是截断了?说“append-only”→是不是可变 list?说“不可篡改”→有没有 hash chain 或等价机制?
- 混杂变量:一次实验或变体是否同时改了多个因素?没有单因子消融,就不能只归因给其中一个因素。
- 样本量与措辞不匹配:5/5 的 95% 置信区间仍约为 57%–100%,不能写“必然”;
n=1 的戏剧性故事不能当普遍结论;混合条件的样本不能假装来自同一分布。
- 开发/测试集污染:调参目标是否就是要证明的结论?所谓 held-out 是否被反复查看并参与模型或规则选择?
- 威胁模型边界:安全性宣称在什么攻击者假设下成立?
- 脱敏示例:“修改记录必被发现”可能只在参与者只能通过受控 API 行动时成立;若其能直接修改数据库,结论可能失效。
- 数字可复算:成本和指标能否从原始记录独立重算?价目表、归一化和聚合方式有没有 bug?跨批次 min-max 归一后的结果是否真的适合直接平均?
- 分级定位:按证据强度给出诚实档位,例如内部报告、探索性 pilot、预印本、Workshop 或正式会议,并指出到下一档还缺什么。
产出格式
- 逐条判定表:意见|判定(成立 / 部分成立 / 不成立)|证据(文件:行号)|影响|修法;
- 措辞降级清单:
原话 → 证据真正支持的说法;
- 审后仍然成立的结论:找错与保留有效结论同等重要,不要矫枉过正;
- 分级定位:当前证据档位 + 到下一档的最小补齐清单;
- 若发现必须修的 bug而不只是措辞问题,单独置顶标记 🔴。
时机
任何要交给导师、客户、评审人或对外落盘为“结论”的文档,发布前过一遍。日常聊天、草稿和过程记录不用强制审稿。