mcpField
A
adversarial-review

adversarial-review

github.com/pedronauck测试与质量647303 次安装1 周前更新
代码仓库

关于 adversarial-review

adversarial-review 是用于审视工作的评审技能,要求通过相反模型的 CLI 启动评审者。它汇总评审结果并给出结论,不修改工作内容。

主要功能

  1. 01通过相反模型的 CLI 运行评审者
  2. 02按变更规模选择评审视角
  3. 03依据原则编写评审提示词
  4. 04汇总结论并给出主审判断

适用场景

  1. 01发布前质疑代码变更
  2. 02检查工作是否达成既定意图
  3. 03从不同评审视角汇总问题

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/pedronauck/skills --skill adversarial-review

安装后在 Claude Code 中输入/adversarial-review确认已加载。

附带文件references/reviewer-lenses.md

详细介绍

对抗性审查

在相反的模型上启动审查者,对工作提出质疑。审查者从基于大脑原则的不同视角进行审查。交付内容是一份综合裁决——不要进行修改。

**硬性约束:**审查者必须通过相反模型的 CLI(codex exec 或 claude -p)运行。不得使用子 Agent、Agent 工具或任何内部委派机制充当审查者——这些机制运行在_你自己的_模型上,会违背审查的目的。

步骤 1 — 加载原则

阅读 brain/principles.md。跟随其中的每个 [[wikilink]],并阅读每个链接指向的原则文件。 这些原则是审查者判断的依据。

步骤 2 — 确定范围和意图

根据上下文(近期差异、引用的计划、用户消息)确定审查对象。

确定意图——作者试图实现什么。这一点至关重要:审查者要质疑的是这项工作是否_很好地实现了意图_,而不是意图本身是否正确。继续之前,明确陈述意图。

评估变更规模:

大小阈值审查者
小< 50 行,1–2 个文件1 个(怀疑者)
中50–200 行,3–5 个文件2 个(怀疑者 + 架构师)
大200 行以上或 5 个以上文件3 个(怀疑者 + 架构师 + 极简主义者)

阅读 references/reviewer-lenses.md,了解各视角的定义。

步骤 3 — 检测模型并启动审查者

创建一个用于存放审查者输出的临时目录:

REVIEW_DIR=$(mktemp -d /tmp/adversarial-review.XXXXXX)

确定你使用的模型,然后在相反模型上启动审查者:

如果你使用 Claude → 通过 codex exec 启动 Codex 审查者:

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 审查者:

claude -p "prompt" > "$REVIEW_DIR/skeptic.md" 2>/dev/null

设置 run_in_background: true 运行。

将每个输出文件按视角命名:skeptic.md、architect.md、minimalist.md。

审查者提示词模板

每位审查者收到一条提示词,其中包含:

  1. 陈述的意图(来自步骤 2)
  2. 分配给他们的视角(来自 references/reviewer-lenses.md 的完整文本)
  3. 与其视角相关的原则(文件内容,不是摘要)
  4. 要审查的代码或差异
  5. 说明:“你是一名对抗性审查者。你的任务是发现真实问题,而不是肯定这项工作。请具体说明——引用文件、行号和明确的失败场景。为每项发现评级:高(阻止发布)、中(应该修复)、低(值得注意)。将发现写成编号的 Markdown 列表,保存到你的输出文件中。”

并行启动所有审查者。

步骤 4 — 验证并综合裁决

阅读审查者输出之前,记录使用了哪个 CLI,并确认输出文件存在:

echo "reviewer_cli=codex|claude"
ls "$REVIEW_DIR"/*.md

如果任何输出文件缺失或为空,请在裁决中注明该失败——不要悄悄跳过审查者。

从 $REVIEW_DIR/ 读取每位审查者的输出文件。合并重复的发现。 生成一份统一裁决:

## 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

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

裁决规则:

  • PASS — 没有高严重性发现
  • CONTESTED — 存在高严重性发现,但审查者对此意见不一
  • REJECT — 存在高严重性发现,且审查者意见一致

步骤 5 — 作出判断

综合审查者的意见后,应用你自己的判断。以陈述的意图和大脑原则为依据,说明你接受哪些发现、拒绝哪些发现,以及原因。审查者的设计初衷就是进行对抗性审查;并非每项发现都值得采取行动。指出误报、过度解读,以及将风格问题误当作实质问题的发现。

将以下内容附加到裁决中:

## Lead Judgment
<for each finding: accept or reject with a one-line rationale>

评论

支持 Markdown