adversarial-review:对抗式多视角代码审查插件

是什么

adversarial-review 是一个对抗式多视角代码审查插件。它通过多透镜并行攻击式审查的方式,解决单一视角审查容易遗漏缺陷或混入风格问题的问题。插件由 JohnXu22786 维护,支持 dsh(DeepSeek Harness)插件入口与独立 CLI 两种运行方式。

核心能力

插件包含以下核心功能:
- dsh (DeepSeek Harness) 插件入口:注册 gavel_review 工具,供模型在会话中直接调用。
- 独立 CLI 入口:支持在本地命令行运行,兼容任何支持 OpenAI Chat Completions 协议的模型服务。
- 确定性静态哨兵:在模型介入前运行基于规则(Regex)的扫描,确保输出兜底。
- 抑制规则:防止同一类问题重复报告。
- 审查历史:增量对比已知问题。
- 跨透镜合并:聚类去重,计算确认加成。
- 严重度定级:确定性计算严重度。
- 仲裁层:合并多视角发现。
- 零第三方运行时依赖:核心引擎与 CLI 仅使用 Node.js 内置模块。

安装与配置

通过 DSH CLI 安装插件:

dsh plugin --profile demo add github:JohnXu22786/adversarial-review

安装后,插件会在 Cordis 配置中注册,并在 package.json 中声明 dsh.bundle.patch。

独立 CLI 使用

独立 CLI 工具为 gavel。

环境要求

  • Node.js >= 20.19(运行构建产物)
  • Node.js >= 23.6(直接运行源码)

基本构建与使用

  1. 安装依赖并构建:
   npm install
   npm run build
  1. 使用 diff 文件审查:
   node bin/gavel.mjs review --diff examples/sample.diff --api-key $GAVEL_API_KEY --model deepseek-chat
  1. 审查最近一次提交:
   node bin/gavel.mjs review --base HEAD~1
  1. 审查指定文件:
   node bin/gavel.mjs review --path src/order.js --path src/notify.js
  1. 深度审查并生成抑制规则(CI 场景):
   node bin/gavel.mjs review --diff p.patch --deep --emit-rules --out report.md --json-out report.json --fail-on required

常用选项

选项 描述
--diff 指定 unified diff 文件路径(支持 - 读取 stdin)
--base 基于 Git 引用(如 HEAD~1)生成 diff
--path 审查指定文件(支持重复)
--lens 指定透镜子集(如 correctness,security)
--deep 启用深度审查(逐个挑战候选项)
--emit-rules 生成“必须修复”及以上级别的抑制规则
--fail-on 触发失败阈值(CI 门控)
--out / --json-out 输出 Markdown 或 JSON 报告路径
--model / --api-key 模型与密钥配置(环境变量 GAVEL_API_KEY 或 DEEPSEEK_API_KEY)

退出代码

  • 0:成功(包括无发现)。
  • 1:参数错误或运行时错误(如缺失 API Key)。
  • 2:--fail-on 阈值被触发。
  • 130:被信号中断。

DSH 集成说明

在 DSH 环境中,插件通过 apply(ctx, config) 注册能力。模型可以在会话中直接调用 gavel_review 工具。插件运行时为只读进程,不会修改代码。

审查流程

插件执行一个七步管道流程:
1. Ingest collect:解析 unified diff 或读取文件,构建行映射。
2. Static sentinel tripwire:运行确定性正则规则扫描(如硬编码凭证、危险调用)。
3. Lens probing probe:并行运行正确性、安全性、可维护性透镜(LLM 调用)。
4. Deep review deep(可选):基于挑战的候选项重新验证。
5. Arbitration merge:跨透镜聚类、去重、指纹识别、严重度定级。
6. Suppression filter suppress:匹配抑制规则,归档不再报告的问题。
7. Docket record docket:追加历史记录,标记已知问题。

注意事项

  • 只读进程:插件仅读取代码,不修改文件。
  • 运行时依赖:零第三方运行时依赖。
  • 许可证:MIT License。
  • API 密钥:必须提供 API Key(如 GAVEL_API_KEY 或 DEEPSEEK_API_KEY)。
  • 版本兼容:确保 Node.js 版本满足要求。

结语

adversarial-review 通过多透镜并行审查与仲裁机制,为代码审查提供了确定性与可追溯性。它适合需要高质量代码交付的 DSH 工作流。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜