Adversarial Spec

Verfeinert eine PRD oder Tech-Spezifikation, indem sie über mehrere LLMs debattiert wird, bis sie sich einigen

von zscole · zscole/adversarial-spec

Funktioniert mit Setup ★ 7.6/10

Adversarial Spec — Verfeinert eine PRD oder Tech-Spezifikation, indem sie über mehrere LLMs debattiert wird, bis sie sich einigen

Was es kann

Treibt eine iterative "adversariale" Überprüfung einer Produkt- oder technischen Spezifikation voran: Claude entwirft das Dokument, dann sendet ein Python CLI (debate.py) es parallel an externe LLM-Anbieter (GPT, Gemini, Grok, Mistral, etc.) zur Kritik, und die Spezifikation wird Runde für Runde überarbeitet, bis jedes Modell plus Claude zustimmt. Wird ausgelöst, wenn der Benutzer eine PRD oder technische Spezifikation durch Multi-Modell-Debatte schreiben oder verfeinern möchte. Erfordert litellm und mindestens einen Anbieter-API-Schlüssel (oder das codex/gemini CLI), um den eigentlichen Kritikschritt auszuführen.

Testbericht

SKILL.md unter skills/adversarial-spec/SKILL.md über die GitHub API gefunden. Frontmatter wird mit name+description geparst; stichprobenartig überprüft, dass debate.py, models.py, providers.py, prompts.py alle HTTP 200 zurückgeben. In ein temporäres HOME ($(mktemp -d)) geklont und in ~/.claude/skills installiert; `debate.py providers` und `debate.py focus-areas` ohne installiertes litellm ausgeführt und beide gaben korrekte Hilfeausgaben sauber aus. Konnte den Kernschritt 3 (`debate.py critique`) NICHT ausführen, da er litellm plus einen externen Anbieter-API-Schlüssel (OpenAI/Gemini/xAI/etc.) oder das codex/gemini CLI benötigt, von denen ich keines habe – daher konnte kein Skill-vs-Baseline-Artefakt erstellt werden (outputMeasured=false). Sicherheits-Scan sauber: subprocess-Aufrufe in models.py sind Argumentlisten-Aufrufe der codex/gemini CLIs (kein shell=True/Injection), Telegram ist Opt-in über urllib zu api.telegram.org; kein curl|sh, base64-Blobs oder Exfiltration. Kleiner Dokumentationsfehler: SKILL.md kennzeichnet claude-sonnet-4/opus-4 Modell-IDs fälschlicherweise als "Claude 3.5 Sonnet v2"/"Claude 3 Opus".

Getestet am: 2026-07-21 · Claude Code 2.x (agent harness)

Installation

git clone --depth 1 https://github.com/zscole/adversarial-spec.git /tmp/adversarial-spec-src
mkdir -p ~/.claude/skills
cp -R /tmp/adversarial-spec-src/skills/adversarial-spec ~/.claude/skills/adversarial-spec
# Core debate step needs litellm plus at least one provider API key:
#   pip install litellm==1.80.13
#   export OPENAI_API_KEY=...   (or GEMINI_API_KEY / XAI_API_KEY / ANTHROPIC_API_KEY / etc.)
# Alternatively install a CLI provider: npm i -g @openai/codex && codex login
#   or: npm i -g @google/gemini-cli && gemini auth
# Verify which keys are seen:
#   python3 "$(find ~/.claude -name debate.py -path '*adversarial-spec*' | head -1)" providers
# Plugin-marketplace alternative: repo ships .claude-plugin/marketplace.json + plugin.json

Befehle & Beispiel-Prompts

  • /adversarial-specVerfeinert eine PRD oder Tech-Spezifikation, indem sie über mehrere LLMs debattiert wird, bis sie sich einigen

Skills reagieren auf normale Anfragen — keine Slash-Befehle nötig. Nach der Installation aktivieren Prompts wie diese den Skill (auf Englisch):

  • Refine this spec by debating it across GPT and Gemini
  • Have multiple models critique this specification
  • Iterate this spec until all models agree