Adversarial Spec

Förfina en PRD eller teknisk specifikation genom att debattera den över flera LLM:er tills de är överens.

av zscole · zscole/adversarial-spec

Fungerar med konfiguration ★ 7.6/10

Adversarial Spec — Förfina en PRD eller teknisk specifikation genom att debattera den över flera LLM:er tills de är överens.

Vad den gör

Driver en iterativ "adversarial" granskning av en produkt- eller teknisk specifikation: Claude utformar dokumentet, sedan skickar en Python CLI (debate.py) det parallellt till externa LLM-leverantörer (GPT, Gemini, Grok, Mistral, etc.) för kritik, och specifikationen revideras omgång för omgång tills varje modell plus Claude är överens. Utlöses när användaren vill skriva eller förfina en PRD eller teknisk specifikation genom multi-modell-debatt. Kräver litellm och minst en leverantörs API-nyckel (eller codex/gemini CLI) för att köra det faktiska kritiksteget.

Testrapport

Hittade SKILL.md på skills/adversarial-spec/SKILL.md via GitHub API. Frontmatter parsas med name+description; punktkontrollerade debate.py, models.py, providers.py, prompts.py alla returnerade HTTP 200. Klonade till en temporär HOME ($(mktemp -d)) och installerade i ~/.claude/skills; körde `debate.py providers` och `debate.py focus-areas` utan litellm installerat och båda skrev ut korrekt hjälptext rent. Kunde INTE exekvera kärnsteget 3 (`debate.py critique`) eftersom det kräver litellm plus en extern leverantörs API-nyckel (OpenAI/Gemini/xAI/etc.) eller codex/gemini CLI, inget av vilket jag har — så ingen skill-vs-baslinje-artefakt kunde produceras (outputMeasured=false). Säkerhetsskanning ren: subprocess-anrop i models.py är argumentlista-anrop av codex/gemini CLIs (ingen shell=True/injektion), Telegram är opt-in via urllib till api.telegram.org; inga curl|sh, base64-blobar, eller exfiltration. Mindre dokumentationsanmärkning: SKILL.md felmärker claude-sonnet-4/opus-4 modell-ID:n som "Claude 3.5 Sonnet v2"/"Claude 3 Opus".

Testad: 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

Kommandon och exempelprompter

  • /adversarial-specFörfina en PRD eller teknisk specifikation genom att debattera den över flera LLM:er tills de är överens.

Skills triggas av vanliga förfrågningar — inga kommandon att memorera. Efter installationen aktiverar prompter som dessa skillen (på engelska):

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