v0.1.0 — first proven release
First tagged release of adversarial-review: multi-model adversarial code review with a deterministic, machine-computed PASS / FAIL / BLOCKED release verdict.
What's in it
- Deterministic gates (
scripts/gate.py): tri-state PASS/FAIL/BLOCKED recording with exit codes; "couldn't verify" is never "passed". - Independent reviewer panels (
scripts/panel.py): 3–5 roles resolved at runtime from the router's live catalog; every provider family that authored the change is excluded, with independence computed from model IDs. Injection-hardened prompts, strict JSON schemas (inlined in-prompt and viaresponse_format), malformed-output retry, dead-provider substitution, rebuttal and concurrence rounds. - A computed verdict (
scripts/aggregate.py): the only thing that can emit PASS/FAIL/BLOCKED (exit 0/1/2), from immutable JSON artifacts. - Four transports: OpenRouter key, key file, LiteLLM/any OpenAI-compatible proxy, or keyless MCP (
prepare/ingest, e.g. Composio) — with tier-based privacy routing (data_collection: deny, ZDR). - Portable: one folder, Python 3.9+ stdlib only. Claude Code, Claude (Cowork), OpenAI Codex CLI, and any SKILL.md-compatible agent.
- 24-scenario mocked E2E suite, green on Python 3.9 and 3.12, no network or keys needed.
Proven on itself
Every substantive change in this release was gated by the skill: the panel found a real transport bug in its own plumbing (#2), reviewed the fix with a 3-family panel (7 findings, 6 confirmed, 0/2 → 2/2 first-attempt A/B, $0.038), and blocked its own author once for skipping a protocol step — receipts in #1, #2, #3, and the README's Proven on itself section.
🤖 Generated with Claude Code