# Adversarial Review

> 对抗评审 skill。对同一阶段、同一真值基线、同一对象只运行一次开放式多模型评审：Claude Code 主线程冻结证据包，评审者在授权项目根内强制独立只读勘察；默认并行取得原生 Fable 5 与 codex GPT-5.6-Sol max 两份独立意见，Cursor Grok 4.6 Extra High、Cursor GLM 5.2 Max、Cursor Kimi K3 Max 只在用户明确点选时加入。全部评审禁用 Fast。当前主线程逐条裁决，并在裁决后按模型+通道点评、排名全部实际参与者。评审只能发现问题，不能代替用户选择业务语义；整改后必须转 closed-remediation-review，由本工具单模型封闭验收，禁止自动 R2/R3。触发词："克劳德评审"、"对抗评审"。

- Skill: `backtocimacoppi/adversarial-review` (Agent Skill, multi-file: 6 files)
- Install (CLI): `npx skillmds@latest add backtocimacoppi/adversarial-review`
- Raw SKILL.md: https://api.skillmd.com/api/skills/backtocimacoppi/adversarial-review/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: BackToCimaCoppi (https://skillmd.com/u/backtocimacoppi)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/backtocimacoppi/adversarial-review

---


# 对抗评审：一次开放发现，主线程直接裁决

一句话：**默认由 Fable 5 与 GPT-5.6-Sol max 独立找问题；用户明确点选时可独立加入 Cursor Grok 4.6 Extra High、Cursor GLM 5.2 Max、Cursor Kimi K3 Max 的任意组合。全部评审不开 Fast；当前 Claude Code 主线程负责裁决，裁决后点评并排名实际参与模型，不另启裁判线程。**

## 0. 硬边界

1. **同一身份只开放一次**：用 review_id + object_hash + truth_baseline_hash 标识评审身份。同一阶段、同一基线、同一对象不得开 R2/R3。
2. **全部评审者只读且必须独立勘察**：默认两名；Grok/GLM/Kimi 按用户点选独立加入，最多五名。评审者在授权项目根内亲自检索、核验，只输出事实、失败场景和候选方向；不写被评审对象、不写正式报告、不互相读取输出。
3. **主线程直接裁决**：全部已选评审意见收齐后，当前主线程合并、去重、编号并逐条裁决；可选评审者是评审者而非裁判，禁止再起“裁判”子线程或裁判模型。
4. **评审意见不是真值**：会改变业务结果、接口契约、持久化语义、死亡线规则的选择，必须追溯到正式上游规格或由业务决策负责人作出的 `_shared/用户裁决记录.md#DEC-x`。没有来源只能升级到对应授权角色。
5. **整改不再开放找问题**：主线程按裁决整改后，调用 closed-remediation-review。该 skill 只用本工具一个全新 Opus 5 子线程检查固定整改清单，再由主线程逐条裁决。
6. **报告不取得规格地位**：正式 L1–L7 才是长期真值；评审报告只是发现、裁决和整改闭环证据。

只有用户裁决、上游正式真值或评审对象发生根本重写时，旧身份才失效。重新评审前必须登记失效原因和新哈希；措辞修订、补引用、落实上一轮整改都不构成新对象。

## 1. 角色与 Claude Code 适配

| 角色 | 调用方式 | 默认模型 | 权限 |
|---|---|---|---|
| 评审者 A | Claude Code 原生 Agent | Fable 5（`model: "fable"`） | 项目根内只读发现 |
| 评审者 B | codex exec | gpt-5.6-sol，reasoning max | 项目根内只读发现 |
| 评审者 C（可选） | Cursor CLI 中继（`scripts/cursor-review-runner.sh`） | `cursor-grok-4.6-xhigh`（Cursor Grok 4.6 Extra High） | 项目根内只读发现；仅用户明确点选时加入 |
| 评审者 D（可选） | 同上 | `glm-5.2-max`（Cursor GLM 5.2 Max） | 同上 |
| 评审者 E（可选） | 同上 | `kimi-k3-max`（Cursor Kimi K3 Max） | 同上 |
| 裁决者 | **当前 Claude Code 主线程** | 当前主线程 | 只裁决，不发明新设计 |
| 整改验收 | closed-remediation-review | 一个全新 Opus 5 原生子线程 | 固定范围只读检查 |

默认只启动 A/B。C/D/E 默认全部关闭、各自独立点选：只有用户明确写出“加入 Grok”“加入 GLM”“加入 Kimi/Kimi K3”，或对带该模型名称的选项回答“是”时才加入对应评审者；“全部模型/五模型”表示三者都加入。单说“三模型”“多加一个”不能确定第三方是谁，必须先让用户点名。不得因模型可用、任务复杂或死亡线命中而自动加入，也不得为了询问 C/D/E 而阻塞常规评审。

全部已选评审者必须并行、相互独立。常规档固定 A=Fable 5、B=gpt-5.6-sol reasoning max、C=`cursor-grok-4.6-xhigh`、D=`glm-5.2-max`、E=`kimi-k3-max`。**任何评审都禁止 Fast**：所选模型 ID 不得以 `-fast` 结尾，不得开启 Claude Code fast mode 或等价的速度模式；Fast 不是思考强度，用户要求“快/省”时只能在明确允许的非 Fast 思考档中降档（A 固定 Fable 5 不换模型，B 可把 reasoning 降到 high）。不得换掉模型后仍宣称完成了 Fable + GPT 对抗评审。报告必须记录实际模型 ID。

## 2. 总体流程

~~~text
冻结评审身份与证据包
  ├─ 并行：Fable 5 独立评审（默认）
  ├─ 并行：GPT-5.6-Sol max 独立评审（默认）
  ├─ 并行：Cursor Grok 4.6 Extra High 独立评审（仅用户明确点选 Grok）
  ├─ 并行：Cursor GLM 5.2 Max 独立评审（仅用户明确点选 GLM）
  └─ 并行：Cursor Kimi K3 Max 独立评审（仅用户明确点选 Kimi）
          ↓
当前 Claude Code 主线程合并去重、分配 AR-x、逐条裁决
          ↓
必要的用户问题合并成一张表，一次询问；逐项记录 DEC-x
          ↓
全部 AR-x 裁决完成后，当前主线程点评、排名全部实际参与模型
          ↓
主线程整改正式产物，冻结整改清单与 closure_scope_hash
          ↓
closed-remediation-review：一个 Opus 5 原生子线程只检，主线程再裁
          ↓
PASS 才允许下游继续
~~~

同一开放评审没有“裁判轮”。主线程读取默认两份或点选后的三至五份评审输出并直接形成报告；点评排名只是裁决后的表现总结，不产生新意见、不改变任何 AR-x 裁决。

## 3. 证据包

复杂场景同时读取 references/证据包制作规范.md；本节是强制最小集。

### 3.1 冻结内容

- review_id / object_hash / truth_baseline_hash。
- 评审对象：短小、临时或评审通道不可直接访问时内嵌全文；同一工作区内的大对象给绝对路径、哈希和精确范围，禁止摘要替代。
- 正式真值基线：适用的 L1–L7、冻结规格、工程红线和任务边界。
- 已决策·不得重开区：每项必须引用正式规格或 DEC-x；没有证据不得放入。
- 本次口径卡：设计、测试用例、章程或代码评审口径。
- 授权项目根 `REVIEW_ROOT`：默认解析为被评审对象所在 Git 工作树根；非 Git 项目才用用户明确授权的项目根。不得为了少给上下文而降成对象目录。
- 起始导航，以及明确的禁止读取项、禁止动作、输出格式和严重度预算。

**钉对象，不钉视野；读得宽，评得窄**：全部已选评审者必须评同一对象、同一真值基线和同一口径，但必须各自在 `REVIEW_ROOT` 内做独立勘察。证据包是冻结核心与调查种子，不是穷举白名单；各方实际发现路径可以不同。补读结论要给精确位置，调查得到的背景只能用于判断冻结对象，不能重开已决策项或改评整个项目。

**证据包本身也要受审**：评审者必须核验起始材料是否遗漏冲突真值、关键生产者/消费者或已经失效；发现缺口时用事实报告，不能默认制包方天然完整。

### 3.2 路径与临时目录

- 报告路径必须先解析为绝对路径，且位于用户授权的任务目录。
- 临时目录每轮用独立 mktemp -d，不得使用全局固定文件名。
- 记录评审前工作树快照；全部已选评审者完成后核验目标文件和工作树没有被它们修改。
- 原始 A/B（以及已点选时的 C/D/E）输出保留到报告验收完成，随后可清理临时目录。

## 4. 全部评审者共用指令

证据包末尾必须加入以下语义，A/B/C/D/E 仅替换角色名：

~~~text
你是独立评审者，不是设计者、裁判或施工者。

开工顺序（强制）：
1. 读完冻结对象、真值基线和起始导航；
2. 在授权项目根内亲自做一次独立只读勘察，不得只凭证据包清单作答；
3. 按任务相关性检索同一概念、业务标识、状态与错误码，核对正式规格、生产者、消费者、测试、配置/迁移/运行手册；
4. 把证据包完整性也当作待核验声明；继续检索已不再改变本次口径内结论后再收口。

只做：
1. 找能被文本、代码或正式规格证明的问题；
2. 给出具体失败场景、违反的真值锚点、影响和最小候选方向；
3. 明确区分“事实冲突”“规格缺口”“实现风险”“可选优化”。

禁止：
- 修改任何文件；
- 读取另一名评审者的输出；
- 读取本地环境文件（`.env`、`.env.local`、`.env.*.local`；无真实凭据的已跟踪模板除外）、私钥、密钥库、凭据/令牌存储、认证缓存或主线程的预期答案/裁决草稿；
- 执行测试、构建、迁移、服务或有副作用的命令；联网、Web 搜索、MCP、数据库/云资源等外部系统访问；派生子 agent；
- 批判带正式来源或 DEC-x 的“已决策·不得重开”项本身；
- 把候选方案写成用户已经批准；
- 因理论上可能而升级阻断；
- 建议给下游新增审批、人工门或重复评审；
- 超出本次口径重新设计整个系统。

严重度预算：
- 阻断级原则上 0–3 条；超过时必须逐条证明不是同一根因。
- 每条阻断级必须回答：具体失败场景是什么、违反哪份冻结真值、为什么不能在施工中确定性自愈。
- 没有阻断问题是有效结论，不得凑数。

先输出精简调查账：冻结核心已读项 / 自主发现的关键文件与检索主题 /
反证或负向检查与实际覆盖边界 / 未能访问、主动排除或仍缺失的信息。
无需罗列每个读过的文件，但必须证明做过证据包外的独立发现。
若授权范围内的关键材料因通道能力无法访问，输出 INFO-GAP（精确路径或信息、尝试方式、对结论的影响），不要猜测。

随后每条发现包含：
临时编号 / 严重度 / 类型 / 事实证据 / 失败场景 / 真值锚点 /
是否涉及新业务选择 / 候选方向 / 来源文件位置。
~~~

口径卡优先使用：

- references/profiles/设计评审.md
- references/profiles/用例评审.md
- references/profiles/章程评审.md

## 5. 并行调用

### 5.1 评审者 A：Claude Code 原生 Fable 5

~~~text
Agent(
  description: "对抗评审·评审者A",
  model: "fable",
  run_in_background: true,
  prompt: <同一证据包 + 评审者 A 指令>
)
~~~

必须使用全新上下文，从同一个 `REVIEW_ROOT` 开始只读分析，不得读取其他评审者输出，不得再起子线程。原生 Agent 即使拥有更宽工具面，也必须遵守证据包的禁止读取与禁止动作。推理档跟随当前会话设置；用户要求钉死 xhigh 时改走 CLI 路线——从 `REVIEW_ROOT` 以后台会话运行，工具面只给只读：

~~~bash
claude -p \
  --model claude-fable-5 \
  --effort xhigh \
  --permission-mode dontAsk \
  --allowedTools Read,Grep,Glob,LS \
  --disallowedTools Edit,Write,MultiEdit,Bash \
  --output-format text \
  --no-session-persistence \
  < "$SCRATCH/fable-review-prompt.txt" \
  > "$SCRATCH/fable-review-out.txt" \
  2> "$SCRATCH/fable-review-log.txt"
~~~

### 5.2 评审者 B：codex GPT-5.6-Sol

将同一证据包放入本轮临时文件，把 `CODEX_CWD` 解析为被评审项目 Git 根（非 Git 项目才用用户授权根），并以后台会话运行：

~~~bash
codex exec \
  -m gpt-5.6-sol \
  -c 'model_reasoning_effort="max"' \
  -c 'approval_policy="never"' \
  -s read-only \
  -C "$CODEX_CWD" \
  --skip-git-repo-check \
  --ephemeral \
  -o "$SCRATCH/gpt-out.txt" \
  - \
  < "$SCRATCH/gpt-prompt.txt" \
  > "$SCRATCH/gpt-log.txt" 2>&1
~~~

使用 read-only + never，禁止危险绕过审批和沙箱。B 不得读取其他评审者输出，不得自动 fan-out，并必须提交调查账。若用户要求“快/省”，仅把 reasoning 改为 high。

### 5.3 评审者 C（可选）：Cursor Grok 4.6 Extra High

只有满足 §1 的 Grok 明确点选条件才执行本节。先把本 skill 的 `scripts/cursor-review-runner.sh` 解析为绝对路径 `CURSOR_RUNNER`；该脚本只允许 `status`、`models`、`login`、`review` 四种动作，内部固定 `--print --mode ask --sandbox enabled --trust`，不带 `--force` / `--yolo` / `--auto-review`；不得读取、导出或另存密码与令牌。

1. 用 runner 的 `status` 确认登录、`models` 刷新账户模型清单；每个动作使用本轮 `$SCRATCH` 中互不复用的 output / log / status 文件。
2. 模型清单必须包含精确 ID `cursor-grok-4.6-xhigh`；缺失时终止包含 Grok 的本次评审，不得用 Fast、High、Auto 或其他模型顶替。
3. 未登录时用 `login` 动作生成 `NO_OPEN_BROWSER=1` 远程授权链接交给用户；登录成功后清理含链接的临时输出，再重新执行 `status` 与 `models`。
4. 把完整证据包写入独立 prompt 文件，从 `REVIEW_ROOT` 以后台会话启动：

~~~bash
"$CURSOR_RUNNER" \
  --action review \
  --workspace "$REVIEW_ROOT" \
  --prompt-file "$SCRATCH/grok-review-prompt.txt" \
  --model cursor-grok-4.6-xhigh \
  --output-file "$SCRATCH/grok-review-out.txt" \
  --log-file "$SCRATCH/grok-review-log.txt" \
  --status-file "$SCRATCH/grok-review-status.txt"
~~~

Ask 模式用于项目探索且不得写文件；证据包仍要显式禁止执行、联网和敏感读取。用 Bash `run_in_background: true` 发起后立即启动其他已选评审者，不得等待 C 完成。收取输出后检查 status=0、输出非空、调查账存在，并复核评审对象与工作树快照未被修改。

### 5.4 评审者 D（可选）：Cursor GLM 5.2 Max

只有满足 §1 的 GLM 明确点选条件才执行本节。复用 §5.3 的登录、安全与禁用 Fast 约束，但必须使用独立的 prompt / output / log / status 文件（`glm-review-*`），且模型清单必须包含精确 ID `glm-5.2-max`；缺失时终止包含 GLM 的本次评审，不得改用 `glm-5.2-high`、Auto 或其他模型顶替。

### 5.5 评审者 E（可选）：Cursor Kimi K3 Max

只有满足 §1 的 Kimi 明确点选条件才执行本节。复用 §5.3 的约束，独立文件 `kimi-review-*`，模型清单必须包含精确 ID `kimi-k3-max`；缺失时终止包含 Kimi 的本次评审，不得改用 `kimi-k3-high`、`kimi-k3-low`、Auto 或其他模型顶替。

C/D/E 与其他已选评审者收到同一证据包，只替换角色名，互不读取输出，并保持与 A/B 重叠运行。

## 6. 主线程直接裁决

全部已选意见收齐后，**当前主线程**完成以下工作，不调用任何裁判模型：

1. 建立 A/B（以及已点选时的 C/D/E）临时编号到统一 AR-x 的映射，合并同根问题，但保留来源。
2. 对每条意见核验证据、口径和真值锚点。
3. 对初判驳回项写出“若要成立所需前提”，检查该前提是否有证据；无证据维持驳回。
4. 从处置矩阵四选一，禁止含糊的“部分采纳”：

| 裁决 | 条件 | 后果 |
|---|---|---|
| ❌ 驳回 | 不成立、无证据、越口径、重开已决策 | 不改，记录理由 |
| ✅ 桶1采纳 | 成立，且现在存在唯一、确定、不改变未决业务语义的修法 | 本轮主线程改好 |
| 🔧 桶2采纳 | 成立，但只能在施工时按冻结规格确定性处理 | 写入 _shared/自愈清单.md，不膨胀设计 |
| 🚨 升级用户 | 需要在多个业务结果间选择，或改变死亡线、对外契约、持久化语义、不可逆处置 | 合并后一次询问 |

5. 需要业务决策负责人裁决时，将互相独立的问题逐行列出，给出互斥选项和影响；**每行必须标注「是否改变业务结果」**。改变业务结果的问题**禁止与加固/修辞/低风险项打包为同一个"推荐选项"一键接受**——必须单独成行、单独作答。授权角色答复后每项单独生成 DEC-x，保存原话或明确选项、日期、来源、实际角色和适用范围。
6. 生成固定整改清单：只含采纳的 AR-x、对应 DEC-x、允许修改范围和预期落点。

主线程可以判断意见是否违背既有语义，但不能替用户选择新语义；不得折中创造第三方案。

### 6.1 裁决后的模型点评与排名

全部 AR-x 完成裁决后，由**同一个当前主线程**对全部实际参与的“模型 + 通道”做简短点评和确定次序的任务内排名。只依据可观察输出、调查账与已经完成的裁决，至少比较：有效发现、证据包外独有有效发现、误报或越界、证据与真值锚点质量、自主勘察质量、遗漏的明显影响面、严重度校准、表达与整改可执行性、上下文效率。

- 先裁决、后评分；排名不得反向改变任何 AR-x，也不得成为新一轮评审或封闭验收依据。
- 不按原始问题数量排名，不奖励重复项；以主线程最终确认成立的贡献和误报成本为主。
- 每个模型都写一句优势、一句短板和本次任务适配结论，并给出不并列的 1~N 名；若表现接近，也必须用证据质量、误报率或独有贡献打破平局。
- 同时记录各通道实际可用的读取/检索工具与 `INFO-GAP`。除非工具面等价已经被证实，不得把通道限制或提示编排缺陷全部归因于模型能力。
- 只评价本次任务表现，不外推为通用排行榜；不披露或推测隐藏思维过程。
- 模型身份以实际调用记录为准，不采信输出中的自报身份。

## 7. 报告格式

报告落任务规定的 _shared/T{n}-对抗评审报告.md，至少包含：

~~~markdown
# 对抗评审报告

- review_id：
- object_hash：
- truth_baseline_hash：
- 评审对象：
- 评审模型：默认写 `Fable 5 + GPT-5.6-Sol max`；按实际点选追加 `+ Cursor Grok 4.6 Extra High`、`+ Cursor GLM 5.2 Max`、`+ Cursor Kimi K3 Max`
- 裁决者：当前 Claude Code 主线程（未启动独立裁判线程）
- REVIEW_ROOT：
- 禁止读取/禁止动作：

## 1. 评审对象与真值基线

## 2. 评审者调查账与通道信息缺口
| 评审者（模型 + 通道） | 冻结核心 | 自主发现与检索主题 | 反证/覆盖边界 | INFO-GAP/主动排除 | 实际工具面 |
|---|---|---|---|---|---|

## 3. 意见逐条裁决
### AR-1
- 来源：A / B / C / D / E 或实际来源组合
- 原始意见：
- 事实证据：
- 真值锚点：
- 主线程裁决：❌ / ✅ / 🔧 / 🚨
- 裁决理由：
- 驳回复核前提及证据：
- 决策来源：正式规格 / DEC-x / 无
- 整改动作：

## 4. 修正后的最终结论

## 5. 自愈清单条目

## 6. 驳回项汇总

## 7. 共识、分歧与来源分布

## 8. 参与模型 + 通道点评与任务内排名
| 排名 | 模型 + 通道 | 有效/独有贡献 | 自主勘察与上下文效率 | 误报/越界/遗漏 | 通道限制 | 优势 | 短板 | 本任务适配结论 |
|---|---|---|---|---|---|---|---|---|

## 9. 固定整改清单
| AR | 裁决 | DEC | 允许范围 | 预期落点 | 验收条件 |
|---|---|---|---|---|---|

## 10. 封闭式整改验收
由 closed-remediation-review 追加；未完成前状态为 PENDING。
~~~

报告在封闭验收 PASS 前不得宣称完成。

## 8. 失败与降级

| 情况 | 处理 |
|---|---|
| 任一已选评审者启动失败 | 对同一评审者重试一次；仍失败则终止，不把缺席阵容冒充为已完成评审 |
| Cursor 未登录或所选模型 ID 缺失 | 走远程登录或终止；禁止改用 Auto、其他 Grok 档位、GLM High 或 Kimi High/Low 顶替 |
| 任一配置出现 Fast | 启动前终止并改回对应非 Fast 精确 ID；禁止以低延迟为由继续 |
| 某方没有发现实质问题 | 只记录质量告警；若输出证明认真检查，允许“无问题” |
| 某方未做强制独立勘察或没有调查账 | 用同一冻结包重试该评审者一次；仍缺失则判该方角色失败，不接受其“无问题”或发现清单 |
| 授权范围内关键材料因通道能力不可访问 | 记录 INFO-GAP 并终止该方有效评审；先修复通道或重制可访问证据包，不把信息缺口评分成模型漏报 |
| 某方触碰禁止读取项或执行禁止动作 | 立即判该方失败，不接受其输出，并核验工作树与外部状态 |
| 某方修改了文件 | 立即判该方失败；不接受其输出 |
| 多份意见冲突 | 主线程按正式证据裁决；证据不足且涉及业务选择则升级用户 |
| 主线程无法确定意见是否成立 | 标记未决，不得靠第三个裁判线程逃避主线程责任 |
| 整改产生新业务语义 | 有唯一正式来源则恢复原义；否则停机请业务决策负责人裁决 |

真实性优先：必须实际获得默认 Fable 与 GPT 两份独立输出；用户点选 Grok/GLM/Kimi 时还必须获得对应可选模型输出。每条意见都要由主线程裁决，全部实际参与模型都要在裁决后被点评和排名，且任何实际模型都不得使用 Fast。缺任一项都不能宣称对抗评审完成。

## 9. 完成检查

- [ ] review_id / object_hash / truth_baseline_hash 已记录，且未命中既有开放评审身份
- [ ] 默认 A/B 已启动；C/D/E 仅按用户对 Grok/GLM/Kimi 的独立明确点选加入；全部已选评审者收到同一对象、同一真值基线、同一口径，且并行独立
- [ ] REVIEW_ROOT 已解析为授权项目 Git 根（或明确的非 Git 项目根），敏感信息与动作禁区已冻结
- [ ] 全部评审者在项目根内完成独立只读勘察，未读取彼此输出；报告含可审计调查账、实际参与阵容与模型 ID
- [ ] 全部模型 ID 与运行参数均未启用 Fast
- [ ] 当前主线程直接裁决全部意见，没有启动独立裁判线程
- [ ] 每条统一意见有稳定 AR-x、来源、证据、锚点、四选一裁决和理由
- [ ] 所有业务选择都有正式来源或 DEC-x，没有把评审建议写成“已批准”
- [ ] 授权裁决表每行标注了「是否改变业务结果」，且改变业务结果的项未与加固项打包为同一推荐选项
- [ ] 桶2 只进入自愈清单，没有反向膨胀正式设计
- [ ] 固定整改清单已冻结，报告预留封闭验收段
- [ ] 裁决后已对全部实际参与的模型 + 通道做简短点评和不并列排名；已区分模型表现、工具面与 INFO-GAP，且未反向改变裁决
- [ ] 整改后调用 closed-remediation-review，且 PASS
- [ ] 没有 R2/R3，没有新增下游审批或重复评审门

