faffter-dark-adversarial-review

Runs a two-phase code review with an adversarial second opinion from a different LLM backend.

3|Updated Apr 16, 2026
One-click install
npx skills add https://github.com/shftwst/faff --skill faffter-dark-adversarial-review-shftwst
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: faffter-dark-adversarial-review
Source: https://github.com/shftwst/faff/tree/main/plugin/skills/faffter-dark-adversarial-review
Command: npx skills add https://github.com/shftwst/faff --skill faffter-dark-adversarial-review-shftwst

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Same-model code review shares the blind spots of the model that wrote the code, so defects survive review. This Skill adds an independent second opinion from a structurally different LLM to catch correlated blind spots before merge. ## Core Features & Use Cases - Two-phase review: Runs the standard five-pass structural review first, then dispatches the diff to a different LLM family for adversarial findings only if phase one approves. - Multi-backend fallback chain: Supports OpenAI-compatible providers (ollama, vLLM, OpenRouter, NVIDIA, DeepSeek, Gemini) and native Anthropic, with ordered fallbacks, per-backend timeouts, deadlines, and context-window preflight. - Autonomous-run escalation: On unattended L3/L4 runs, a critical adversarial finding escalates the verdict to needs-human; on interactive runs findings are soft signals the implementor must disprove with evidence. - Use Case: Configure slots.review: faffter-dark-adversarial-review in .faffrc so an overnight autonomous delivery run gets an independent review from a local ollama model before merging agent-written code. ## Quick Start Configure the review slot in .faffrc to use faffter-dark-adversarial-review with an adversarial provider and model, then let the graft pipeline invoke it during its review step.

Frequently Asked Questions about faffter-dark-adversarial-review

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I set up adversarial code review with a different LLM?▼

Set `slots.review: faffter-dark-adversarial-review` in `.faffrc` and configure an `adversarial` block with provider, model, host, and api_key_env. Choose a model family different from the one that wrote the code so the second opinion catches correlated blind spots.

Which LLM providers does the adversarial review support?▼

It supports OpenAI-compatible backends (ollama, openai, vllm, openrouter, nvidia, deepseek, gemini) over /v1/chat/completions, plus native Anthropic via /v1/messages. An unknown provider exits loudly rather than silently passing.

Does the adversarial review block the merge pipeline?▼

On interactive runs it never blocks; findings are soft signals the implementor must disprove with evidence. On autonomous runs, a critical finding escalates the verdict to needs-human so the merge stops.

What happens when the adversarial LLM backend is unreachable?▼

The fallback chain tries each configured backend in order. A fully failed chain of availability failures passes with a loud skip annotation, while any config fault such as auth failure surfaces needs-human instead of silently weakening the gate.

Why does the adversarial review return empty or malformed findings?▼

Reasoning models can spend their whole output budget on hidden thinking and emit nothing; enable reasoning_off or reasoning_extra for those backends. Empty or non-findings-shaped output exits with dedicated codes (10/11) rather than being treated as a clean review.