Adversarial Spec

Affine une PRD ou une spécification technique en la débattant entre plusieurs LLM jusqu'à ce qu'ils soient d'accord.

par zscole · zscole/adversarial-spec

Fonctionne avec configuration ★ 7.6/10

Adversarial Spec — Affine une PRD ou une spécification technique en la débattant entre plusieurs LLM jusqu'à ce qu'ils soient d'accord.

Ce que fait

Dirige une révision itérative "contradictoire" d'une spécification produit ou technique : Claude rédige le document, puis un CLI Python (debate.py) l'envoie en parallèle à des fournisseurs LLM externes (GPT, Gemini, Grok, Mistral, etc.) pour critique, et la spécification est révisée tour par tour jusqu'à ce que chaque modèle plus Claude soit d'accord. Se déclenche lorsque l'utilisateur souhaite écrire ou affiner une PRD ou une spécification technique par le biais d'un débat multi-modèles. Nécessite litellm et au moins une clé API de fournisseur (ou le CLI codex/gemini) pour exécuter l'étape de critique réelle.

Rapport de test

SKILL.md localisé à skills/adversarial-spec/SKILL.md via l'API GitHub. Le frontmatter est analysé avec name+description ; debate.py, models.py, providers.py, prompts.py ont tous été vérifiés et renvoient HTTP 200. Cloné dans un HOME temporaire ($(mktemp -d)) et installé dans ~/.claude/skills ; `debate.py providers` et `debate.py focus-areas` ont été exécutés sans litellm installé et les deux ont affiché une sortie d'aide correcte et propre. N'a PAS pu exécuter l'étape 3 principale (`debate.py critique`) car elle nécessite litellm plus une clé API de fournisseur externe (OpenAI/Gemini/xAI/etc.) ou le CLI codex/gemini, dont je ne dispose d'aucun — donc aucun artefact skill-vs-baseline n'a pu être produit (outputMeasured=false). Analyse de sécurité propre : les appels de sous-processus dans models.py sont des invocations de listes d'arguments des CLI codex/gemini (pas de shell=True/injection), Telegram est opt-in via urllib vers api.telegram.org ; pas de curl|sh, de blobs base64, ou d'exfiltration. Petite remarque de documentation : SKILL.md étiquette incorrectement les IDs de modèle claude-sonnet-4/opus-4 comme "Claude 3.5 Sonnet v2"/"Claude 3 Opus".

Testé le: 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

Commandes et exemples de prompts

  • /adversarial-specAffine une PRD ou une spécification technique en la débattant entre plusieurs LLM jusqu'à ce qu'ils soient d'accord.

Les skills se déclenchent sur des demandes en langage courant — aucune commande à retenir. Après installation, des prompts comme ceux-ci l'activent (en anglais) :

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