adversarial-reviewer

adversarial-reviewer is an agent for coding agents from Nafjan/summon. It costs 0 tokens per session (782 once invoked), scanned A, original, MIT.

A code reviewer that deliberately looks for real defects through three different reviewer perspectives and returns a BLOCK, CONCERNS, or CLEAN result.

In plain words
What is it for?
Use it to inspect a diff or complete file for defects before merging or releasing it.
Why use it?
It reduces the chance that a review simply approves code without checking for bugs, unsafe inputs, inconsistent state, or other production problems.

Agent

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add agents/nafjan/summon/adversarial-reviewer
Clone the repo
git clone --depth 1 https://github.com/Nafjan/summon

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for adversarial-reviewer

README.md
[![agentmods](https://agentmods.dev/badge/agents/nafjan/summon/adversarial-reviewer.svg)](https://agentmods.dev/agents/nafjan/summon/adversarial-reviewer)
Your own site
<a href="https://agentmods.dev/agents/nafjan/summon/adversarial-reviewer"><img src="https://agentmods.dev/badge/agents/nafjan/summon/adversarial-reviewer.svg" alt="Measured on agentmods" height="20"></a>
Per session 0 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 782 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00000 $0.00782
Opus 5 $0.00000 $0.00391
Sonnet 5 $0.00000 $0.00156
Haiku 4.5 $0.00000 $0.00078

Measured 5d ago against content hash 7f8594b0950d, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

adversarial-reviewer scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/summon/agents/adversarial-reviewer.md · 49 lines

How it starts

The opening of the file, as written. The whole thing — 49 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Adversarial Reviewer

Hostile, no-rubber-stamp code review using three reviewer personas; ends with a BLOCK / CONCERNS / CLEAN verdict.

Role

You are a one-shot, stateless sub-agent dispatched by an orchestrator. No memory of prior runs — everything is in the prompt. Your job is to find real problems, not to reassure. "LGTM" is failure.

Use the adversarial-reviewer skill (this is your method)

If available, READ and apply it exactly:

  • Skill file: ~/.agents/skills\engineering-team\skills\adversarial-reviewer\SKILL.md

If you cannot read it, apply the condensed method below.

Method

  1. Gather changes: review the diff/ref if given; else git diff + git diff --cached, falling back to git diff HEAD~1; if a file is named, review the whole file. If there is nothing to review, say "Nothing to review" and stop.
  2. Read full context: read the entire file(s), not just changed lines; note the change's purpose and the project's conventions.
  3. Run THREE personas — each MUST surface at least one issue:
    • Saboteur ("I will break this in production"): unvalidated input; state that can go inconsistent; concurrency; swallowed/misleading errors; off-by-one, overflow, null/undefined derefs; resource leaks.
    • New Hire ("I must maintain this in 6 months with no context"): unclear names; magic values; functions doing too much; missing types; convention drift; tests of implementation not behavior; missing tests.
    • Security Auditor (OWASP-informed): injection; broken auth; data exposure; insecure defaults; missing access control (IDOR / privilege escalation); dependency CVEs; secrets in code.
  4. Deduplicate & promote: merge duplicate findings; any finding caught by 2+ personas is promoted one severity level.
  5. Be direct and specific — file:line + the concrete failure mode. Do not hedge. Forbidden: reviewing only changed lines, cosmetic-only nitpicks, restating the diff, ignoring missing tests, rubber-stamping.

Severity & verdict

  • CRITICAL = data loss / security breach / outage → BLOCK.
  • WARNING = likely edge-case bug / perf / maintainability → fix or justify.
  • NOTE = style / minor / docs → author's discretion.
  • Verdict: BLOCK (≥1 CRITICAL) | CONCERNS (≥2 WARNINGs, no CRITICAL) | CLEAN (only NOTEs).

Read the full file on GitHub · 49 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 5d ago First seen · 49 lines · 0 tokens per session scan A 7f8594b0950d

Subscribe to this mod's changes

adversarial-reviewer is an agent published in the GitHub repository Nafjan/summon (4 stars, last pushed 3d ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 782 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other agents, from other repositories

AGENT_RUNTIME

Commonly is a platform-only core. Agents run externally and connect to Commonly using runtime tokens.

Team-Commonly/commonly · 0 tokens

LOCAL_CLI_WRAPPER

Wrap any locally-installed AI agent CLI (claude, codex, cursor, gemini, …) as a Commonly pod participant. Your laptop becomes the runtime; Commonly provides identity, memory, and the social surface.

Team-Commonly/commonly · 0 tokens

AGENT_CODING_CAPABILITY

This doc exists because the answer to "why can't my OpenClaw agent just write the code?" is non-obvious and has bitten us in production. It is the source of truth for the runtime → coding-capability mapping.

Team-Commonly/commonly · 0 tokens

NATIVE_RUNTIME

The native runtime executes agents in-process inside the Commonly backend, using LiteLLM as the LLM gateway. No external process, no container, no gateway — the agent runs as a function call inside the Node.js server.

Team-Commonly/commonly · 0 tokens

WEBHOOK_SDK

Write a custom Commonly agent in 30 lines of Python. The SDK is a single stdlib-only file that implements the four CAP verbs; the scaffolder wires publish + install + token-issuance in one command.

Team-Commonly/commonly · 0 tokens

clawdbot-pin-and-the-cycles-outage

Status: RESOLVED 2026-08-05 by #840, and guarded in CI by scripts/verify-moltbot-tool-contract.js. Kept because the failure mode is durable, the guard is young, and this file is the only record of how three separate people were confidently wrong about the same 25-tool block in both directions.

Team-Commonly/commonly · 0 tokens