核心用法
adversarial-coach 是一款对抗式实现审查工具,灵感源自 Block 的 g3 方言编码研究。用户通过 /coach [requirements-file] 触发,系统会启动「教练-选手循环」:先识别需求来源(指定文件、常见规范文件或对话上下文),再由「教练」角色以完全新鲜的客观视角审查实现——刻意丢弃对代码的既有认知,不自圆其说、不合理化捷径。
审查覆盖五大维度:需求逐项核验、编译与测试状态、常见缺口(认证端点、Token 刷新、HTTPS、bcrypt、错误处理、输入校验)、功能性真实流程测试、以及边界测试覆盖。最终以结构化 verdict 输出:IMPLEMENTATION_APPROVED 表示通过(>95% 完成度且安全无虞),或列出具体缺口与修复清单。
显著优点
- 对抗性客观性:核心创新在于「fresh objectivity」——强制审查者像从未见过代码一样评估,有效克服实现者的确认偏误与自我合理化倾向
- 安全优先设计:明确将认证、加密、输入验证列为必查项,强制 flag 安全问题而非风格问题
- 结构化输出: verdict 模板清晰,修复指令具体到文件/行,减少沟通成本
- 研究背书:基于 Block 公开发表的对抗式合作编码论文及 g3 开源实现,方法论经过学术验证
潜在局限与风险
- 依赖需求文档质量:若需求文件本身模糊或缺失,审查基准即失效
- 无法替代人工渗透测试:虽覆盖常见安全缺口,但非专业安全审计工具,复杂漏洞(如业务逻辑绕过、竞争条件)仍需专门检测
- 「新鲜视角」的实现依赖:实际由同一模型扮演教练与选手,理论上存在上下文泄露风险,虽通过 prompt 工程缓解但非绝对隔离
- >95% 完成度阈值:量化标准较模糊,大型项目可能因边缘需求未实现而被反复打回
适合人群
- 独立开发者自检代码完整性
- 敏捷团队快速门禁审查(gatekeeping)
- 教学场景演示「红队思维」与需求验证方法论
常规风险
- 过度依赖风险:开发者可能将「APPROVED」视为质量保证的终点,忽视持续集成与真实用户测试
- 安全误报/漏报:bcrypt、JWT 等模式化检查可能放过实现层面的细微错误(如弱随机数源)