adversarial-review

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Adversarial Review

对抗式评审

Spawn reviewers on the opposite model to challenge work. Reviewers attack from distinct lenses grounded in brain principles. The deliverable is a synthesized verdict — do NOT make changes.
Hard constraint: Reviewers MUST run via the opposite model's CLI (
codex exec
or
claude -p
). Do NOT use subagents, the Agent tool, or any internal delegation mechanism as reviewers — those run on your own model, which defeats the purpose.
对立模型上生成评审者对工作内容提出质疑。评审者基于brain原则从不同视角发起审视。交付物是一份综合判定结果——请勿直接修改内容。
严格约束: 评审者必须通过对立模型的CLI(
codex exec
claude -p
)运行。请勿使用子Agent、Agent工具或任何内部委派机制作为评审者——这些都运行在你自身的模型上,违背了本流程的目的。

Step 1 — Load Principles

步骤 1 —— 加载原则

Read
brain/principles.md
. Follow every
[[wikilink]]
and read each linked principle file. These govern reviewer judgments.
阅读
brain/principles.md
。跟随所有
[[wikilink]]
阅读每个被链接的原则文件。这些文件是评审者判定的依据。

Step 2 — Determine Scope and Intent

步骤 2 —— 确定范围和意图

Identify what to review from context (recent diffs, referenced plans, user message).
Determine the intent — what the author is trying to achieve. This is critical: reviewers challenge whether the work achieves the intent well, not whether the intent is correct. State the intent explicitly before proceeding.
Assess change size:
SizeThresholdReviewers
Small< 50 lines, 1–2 files1 (Skeptic)
Medium50–200 lines, 3–5 files2 (Skeptic + Architect)
Large200+ lines or 5+ files3 (Skeptic + Architect + Minimalist)
Read
references/reviewer-lenses.md
for lens definitions.
从上下文(最近的diff、引用的计划、用户消息)中确定需要评审的内容。
确定意图——作者尝试达成的目标。这一点至关重要:评审者质疑的是工作内容是否很好地达成了既定意图,而非意图本身是否正确。在继续流程前请明确陈述意图。
评估变更规模:
规模阈值评审者数量
< 50 行,1-2个文件1名(怀疑者视角)
50-200 行,3-5个文件2名(怀疑者 + 架构师视角)
200+ 行或5个以上文件3名(怀疑者 + 架构师 + 极简主义者视角)
阅读
references/reviewer-lenses.md
了解各视角的定义。

Step 3 — Detect Model and Spawn Reviewers

步骤 3 —— 检测模型并生成评审者

Create a temp directory for reviewer output:
sh
REVIEW_DIR=$(mktemp -d /tmp/adversarial-review.XXXXXX)
Determine which model you are, then spawn reviewers on the opposite:
If you are Claude → spawn Codex reviewers via
codex exec
:
sh
codex exec --skip-git-repo-check -o "$REVIEW_DIR/skeptic.md" "prompt" 2>/dev/null
Use
--profile edit
only if the reviewer needs to run tests. Default to read-only. Run with
run_in_background: true
, monitor via
TaskOutput
with
block: true, timeout: 600000
.
If you are Codex → spawn Claude reviewers via
claude
CLI:
sh
claude -p "prompt" > "$REVIEW_DIR/skeptic.md" 2>/dev/null
Run with
run_in_background: true
.
Name each output file after the lens:
skeptic.md
,
architect.md
,
minimalist.md
.
创建临时目录存储评审输出:
sh
REVIEW_DIR=$(mktemp -d /tmp/adversarial-review.XXXXXX)
确定你当前使用的模型,然后在对立模型上生成评审者:
如果你是 Claude → 通过
codex exec
生成 Codex 评审者:
sh
codex exec --skip-git-repo-check -o "$REVIEW_DIR/skeptic.md" "prompt" 2>/dev/null
仅当评审者需要运行测试时使用
--profile edit
,默认使用只读模式。 设置
run_in_background: true
后台运行,通过
TaskOutput
监控,配置
block: true, timeout: 600000
如果你是 Codex → 通过
claude
CLI 生成 Claude 评审者:
sh
claude -p "prompt" > "$REVIEW_DIR/skeptic.md" 2>/dev/null
设置
run_in_background: true
后台运行。
每个输出文件以对应视角命名:
skeptic.md
architect.md
minimalist.md

Reviewer prompt template

评审者提示词模板

Each reviewer gets a single prompt containing:
  1. The stated intent (from Step 2)
  2. Their assigned lens (full text from references/reviewer-lenses.md)
  3. The principles relevant to their lens (file contents, not summaries)
  4. The code or diff to review
  5. Instructions: "You are an adversarial reviewer. Your job is to find real problems, not validate the work. Be specific — cite files, lines, and concrete failure scenarios. Rate each finding: high (blocks ship), medium (should fix), low (worth noting). Write findings as a numbered markdown list to your output file."
Spawn all reviewers in parallel.
每名评审者收到的提示词包含以下内容:
  1. 既定意图(来自步骤2)
  2. 分配给他们的评审视角(references/reviewer-lenses.md中的完整文本)
  3. 与他们视角相关的原则(文件原文,而非摘要)
  4. 待评审的代码或diff
  5. 指令:"你是一名对抗式评审者。你的工作是发现真实存在的问题,而非验证工作内容的正确性。请具体表述——引用文件、行号和具体的失败场景。为每个发现的问题评级:高(阻塞发布)、中(应当修复)、低(值得注意)。将发现的问题以编号markdown列表的形式写入你的输出文件。"
并行生成所有评审者。

Step 4 — Verify and Synthesize Verdict

步骤 4 —— 验证并综合判定结果

Before reading reviewer output, log which CLI was used and confirm the output files exist:
sh
echo "reviewer_cli=codex|claude"
ls "$REVIEW_DIR"/*.md
If any output file is missing or empty, note the failure in the verdict — do not silently skip a reviewer.
Read each reviewer's output file from
$REVIEW_DIR/
. Deduplicate overlapping findings. Produce a single verdict:
undefined
在阅读评审者输出前,记录使用的CLI并确认输出文件已存在:
sh
echo "reviewer_cli=codex|claude"
ls "$REVIEW_DIR"/*.md
如果任何输出文件缺失或为空,请在判定结果中注明该失败——不要静默跳过某名评审者。
读取
$REVIEW_DIR/
下每名评审者的输出文件。去重重叠的问题。 生成一份统一的判定结果:
undefined

Intent

意图

<what the author is trying to achieve>
<作者尝试达成的目标>

Verdict: PASS | CONTESTED | REJECT

判定结果:通过 | 存疑 | 驳回

<one-line summary>
<单行摘要>

Findings

发现的问题

<numbered list, ordered by severity (high → medium → low)>
For each finding:
  • [severity] Description with file:line references
  • Lens: which reviewer raised it
  • Principle: which brain principle it maps to
  • Recommendation: concrete action, not vague advice
<编号列表,按严重程度排序(高 → 中 → 低)>
每个问题的格式:
  • [严重程度] 问题描述,附带文件:行号引用
  • 视角:提出该问题的评审者视角
  • 原则:对应哪条brain原则
  • 建议:具体可执行的动作,而非模糊的建议

What Went Well

做得好的地方

<1–3 things the reviewers found no issue with — acknowledge good work>

**Verdict logic:**
- **PASS** — no high-severity findings
- **CONTESTED** — high-severity findings but reviewers disagree on them
- **REJECT** — high-severity findings with reviewer consensus
<1-3项评审者没有提出异议的内容,肯定优秀的工作>

**判定逻辑:**
- **通过**——无高严重程度问题
- **存疑**——存在高严重程度问题但评审者对此存在分歧
- **驳回**——存在高严重程度问题且评审者达成共识

Step 5 — Render Judgment

步骤 5 —— 输出最终判定

After synthesizing the reviewers, apply your own judgment. Using the stated intent and brain principles as your frame, state which findings you would accept and which you would reject — and why. Reviewers are adversarial by design; not every finding warrants action. Call out false positives, overreach, and findings that mistake style for substance.
Append to the verdict:
undefined
综合评审者意见后,给出你自己的判定。以既定意图和brain原则为框架,说明你会接受哪些问题、拒绝哪些问题——以及原因。评审者天生具有对抗性;并非每个发现的问题都需要采取行动。请指出误报、过度延伸以及将风格混淆为实质的问题。
追加到判定结果中:
undefined

Lead Judgment

主导判定

<for each finding: accept or reject with a one-line rationale> ```
<针对每个问题:说明接受或拒绝,附带单行理由>
undefined