Adversarial Spec

Affina una PRD o specifica tecnica dibattendola tra più LLM finché non concordano

di zscole · zscole/adversarial-spec

Richiede configurazione ★ 7.6/10

Adversarial Spec — Affina una PRD o specifica tecnica dibattendola tra più LLM finché non concordano

Cosa fa

Guida una revisione iterativa "avversariale" di una specifica di prodotto o tecnica: Claude redige il documento, quindi un CLI Python (debate.py) lo invia in parallelo a provider LLM esterni (GPT, Gemini, Grok, Mistral, ecc.) per la critica, e la specifica viene revisionata round per round finché ogni modello più Claude non concorda. Si attiva quando l'utente vuole scrivere o affinare una PRD o una specifica tecnica attraverso un dibattito multi-modello. Richiede litellm e almeno una chiave API del provider (o il CLI codex/gemini) per eseguire il passo di critica effettivo.

Rapporto di test

Localizzato SKILL.md in skills/adversarial-spec/SKILL.md tramite l'API GitHub. Il frontmatter si analizza con name+description; verificati debate.py, models.py, providers.py, prompts.py tutti restituiscono HTTP 200. Clonato in una HOME temporanea ($(mktemp -d)) e installato in ~/.claude/skills; eseguiti `debate.py providers` e `debate.py focus-areas` senza litellm installato ed entrambi hanno stampato correttamente l'output di aiuto. NON è stato possibile eseguire il core Step 3 (`debate.py critique`) perché richiede litellm più una chiave API di un provider esterno (OpenAI/Gemini/xAI/ecc.) o il CLI codex/gemini, nessuno dei quali possiedo — quindi nessun artefatto skill-vs-baseline poteva essere prodotto (outputMeasured=false). Scansione di sicurezza pulita: le chiamate subprocess in models.py sono invocazioni di liste di argomenti dei CLI codex/gemini (nessun shell=True/injection), Telegram è opt-in tramite urllib a api.telegram.org; nessun curl|sh, blob base64 o esfiltrazione. Piccola nota sulla documentazione: SKILL.md etichetta erroneamente gli ID modello claude-sonnet-4/opus-4 come "Claude 3.5 Sonnet v2"/"Claude 3 Opus".

Testato il: 2026-07-21 · Claude Code 2.x (agent harness)

Installazione

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

Comandi e prompt di esempio

  • /adversarial-specAffina una PRD o specifica tecnica dibattendola tra più LLM finché non concordano

Gli skill si attivano con richieste in linguaggio naturale, senza comandi da ricordare. Dopo l'installazione, prompt come questi lo attivano (in inglese):

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