是什麼¶
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(直接運行源碼)
基本構建與使用¶
- 安裝依賴並構建:
npm install
npm run build
- 使用 diff 文件審查:
node bin/gavel.mjs review --diff examples/sample.diff --api-key $GAVEL_API_KEY --model deepseek-chat
- 審查最近一次提交:
node bin/gavel.mjs review --base HEAD~1
- 審查指定文件:
node bin/gavel.mjs review --path src/order.js --path src/notify.js
- 深度審查並生成抑制規則(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 工作流。