# Idea file：讓第二個 AI 當獨立審查者（不退化成附和）

> 這是一份 idea file：只寫目標、約束、取捨與驗收標準，不含完整實作。把它餵給你的 coding agent，讓 agent 依你的工具組合重建這套協定。
> This is an idea file: goal, constraints, tradeoffs and acceptance criteria, no implementation. Feed it to your coding agent to rebuild the protocol with your own tools.

- 源文章（含完整通用版 SKILL.md 與約 220 行 wrapper 腳本，可直接複製）：https://paulkuo.tw/articles/ai-second-opinion-independence/
- 源文章 raw Markdown：https://paulkuo.tw/articles/ai-second-opinion-independence.md
- 作者：Paul Kuo（paulkuo.tw）
- 整理日期：2026-10-08。模型名與 CLI 參數是源文章當時的狀態，重建時以當下版本為準，協定邏輯不變。

## 一句話目標

把一個不同血統的模型接成第一個模型產出的獨立審查者，並用協定防止「第二意見」退化成附和。原專案用 OpenAI codex CLI（gpt-5.5）審 Claude 的產出。

## 核心約束（四步獨立性協定，每步擋一種失敗模式）

1. 提問不夾帶自己的結論（擋「引導證人」）：wrapper 偵測到夾帶結論的措辭要跳警告。
2. 審查者的原始輸出落檔保存（擋「看過就丟、無法覆核」）。
3. 審查者只描述問題與嚴重度，不改程式碼、不出修正版（擋「分不清原始意圖與擅自修改」）；同時是安全邊界，審查者跑唯讀沙箱。
4. 交叉比對由發起方自己做：分「一致」與「分歧」兩堆，一致的採信，分歧的自己讀碼拍板並記下理由（擋「照單全收」）。

## fail-fast 約束

- 審查工具不存在、逾時、exit code 非 0、最終訊息空白：一律降級為單一意見，誠實標註，不重試、不假裝有第二意見。
- 「完成」的定義是「最終訊息有實質內容」，不是 exit code 0。

## 已做的取捨（與理由）

- 思考深度（effort）預設 medium，只在安全關鍵或真正複雜的標的升高：成本控制。
- 只自動修能機械驗證的問題；需要人讀過才能判斷的（例如「輸出有沒有實質語意」）明確留給人。
- 規則是鷹架：每條規則綁著它要解決的模型缺陷，缺陷消失就拆掉對應規則，不讓協定無限膨脹。

## 驗收標準

- 拿這套工具審它自己：原專案兩輪共抓出 10 個問題（第一輪 7 個、重審 3 個），包含一個高風險漏洞（逾時包裝在子程序被系統強制中止時，把失敗誤報成成功）。
- wrapper 對夾帶結論的問句確實跳警告。
- 審查失敗時有明確的降級訊息，不是靜默當作通過。

## 刻意不做的事

- 不讓審查者裁決：裁決權在人，審查者只提供反證與嚴重度。
- 不把任何一方當成不會錯的神諭：兩個會犯錯的模型互為對照，一致的問題「八成跑不掉」，但不是百分之百。
