Peer Reviewer
Adversarial-ревьюер субагент для /dr-verify Layer 2/3 cross-Claude-family fallback. Ревьюит PRD/plan/code в чистом изолированном контексте. Findings-only, read-only tools.
Обзор
Peer Reviewer — это cross-Claude-family fallback субагент, используемый /dr-verify Layer 2 когда внешний провайдер (DeepSeek, Moonshot, OpenRouter) не сконфигурирован. Запускается как Claude Code субагент на model: sonnet в свежем изолированном контексте — без upstream conversation history, которая могла бы спровоцировать self-agreement bias — и выдаёт структурированные JSONL findings по канонической схеме из skills/self-verification.md § Findings Schema.
Зачем нужен
Layer 2 трёхуровневой verification pipeline наиболее эффективен, когда ревьюер — это другой model checkpoint, чем тот, что производил артефакт. Сильнейшая mitigation — cross-vendor (другая компания, другой training run, другой RLHF). Cross-Claude-family — Sonnet ревьюит вывод Opus, или наоборот — это средний tier: разные model checkpoints с разными post-training runs, изолированный subagent context, не требуется per-user external API key (покрывается Claude subscription). Это default fallback когда chain steps #1–#4 не отдают провайдера.
Когда используется
Активируется через dev-tools/resolve-peer-provider.sh на chain step #5 — то есть когда:
- CLI флаг
--peer-providerне установлен, И - В
./datarim/config.yamlнетpeer_review.provider, И - В
~/.config/datarim/config.yamlнетpeer_review.provider, И - В
~/.config/coworker/profiles.yamlу профиляcodeнетrecommended_provider, И - Runtime — Claude Code (Codex CLI degraded mode пропускает этот step и проваливается на step #6 same-model isolated).
Output Schema
Findings помечаются:
source_layer: "peer_review"peer_review_provider: "sonnet"peer_review_mode: "cross_claude_family"peer_review_provider_source_layer: "fallback_subagent"
Ревьюер соблюдает JSONL emission discipline: эмитятся только defects или incorrect-premise findings; никогда не эмитятся PASS-as-finding записи (например {"check_name": "F001 cleared, no finding"}). Подтверждения прошедших claim'ов сжимаются в final-line summary {cleared_iter1: [...], total_new_findings: N}.
Tools
Read-only by design: Read, Grep, Glob. Не может редактировать файлы, писать коммиты или выполнять произвольный shell. Subagent ID и findings сохраняются в audit log datarim/qa/verify-{TASK-ID}-{stage}-{iter}.md для trace.
Adversarial Frame
Получает тот же canonical adversarial prompt template, что и cross-vendor провайдеры (см. skills/self-verification.md § Single-Prompt Loop Mechanics) дословно. Prompt инструктирует ревьюера искать слабости, а не одобрять документ — минимум 2 существенных concern'а ИЛИ явное grep-evidence, обосновывающее ноль findings.
Ограничения и эмпирический статус
Cross-Claude-family — это first measured tier: эмпирическая bias delta vs same-model self-critique находится под наблюдением в активном dogfood window (через dev-tools/measure-prospective-rate.sh с --mode cross_claude_family). Гипотеза — разный post-training достаточен, чтобы разорвать self-agreement loop без пересечения вендоров — правдоподобна, но ещё не валидирована at scale. Когда есть external API budget, предпочитайте cross-vendor (DeepSeek по умолчанию, ~14× дешевле Sonnet на output tokens).
Skills Used
self-verification (canonical findings schema + JSONL discipline), datarim-system (path resolution, audit log location).