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 工作流。

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

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

小夜