Claude Info
Документация

Adversarial Spec

zscole/adversarial-spec

Плагин Claude Code для совместной доработки продуктовых спецификаций: несколько LLM параллельно критикуют документ, Claude синтезирует правки и участвует как равноправный рецензент — цикл повторяется до полного консенсуса всех моделей.

Установка

terminal
bash
git clone https://github.com/zscole/adversarial-spec.git

README

adversarial-spec

Плагин Claude Code для итеративного уточнения продуктовых спецификаций через дебаты между несколькими моделями до достижения консенсуса.

Ключевая идея: Одна LLM, проверяющая спецификацию, упустит детали. Несколько LLM, дискутирующих о спецификации, выявят пробелы, оспорят допущения и обнаружат граничные случаи, которые любая отдельная модель пропустила бы. В результате получается документ, прошедший строгую состязательную проверку.

Claude — активный участник, а не просто оркестратор. Claude формулирует независимую критику, оспаривает позиции других моделей и вносит существенные улучшения наравне с внешними моделями.

Быстрый старт

bash
# 1. Добавьте маркетплейс и установите плагин
claude plugin marketplace add zscole/adversarial-spec
claude plugin install adversarial-spec

# 2. Задайте хотя бы один API-ключ
export OPENAI_API_KEY="sk-..."
# Или используйте OpenRouter для доступа к нескольким провайдерам по одному ключу
export OPENROUTER_API_KEY="sk-or-..."

# 3. Запустите
/adversarial-spec "Build a rate limiter service with Redis backend"

Как это работает

Вы описываете продукт --> Claude составляет спецификацию --> Несколько LLM критикуют параллельно | | | v | Claude синтезирует + добавляет собственную критику | | | v | Правка и повтор до согласия ВСЕХ моделей | | +-------------------------------------------------------------->| v Период проверки пользователем | v Итоговый документ на выходе
  1. Опишите концепцию продукта или предоставьте существующий документ
  2. (Опционально) Начните с подробного интервью для сбора требований
  3. Claude составляет исходный документ (PRD или техническую спецификацию)
  4. Документ отправляется моделям-оппонентам (GPT, Gemini, Grok и др.) для параллельной критики
  5. Claude формулирует независимую критику наряду с отзывами оппонентов
  6. Claude синтезирует все отзывы и вносит правки
  7. Цикл продолжается до тех пор, пока ВСЕ модели И Claude не придут к согласию
  8. Период проверки пользователем: запросите изменения или запустите дополнительные циклы
  9. Итоговый согласованный документ выводится на выход

Требования

  • Python 3.10+
  • Пакет litellm: pip install litellm
  • API-ключ хотя бы одного LLM-провайдера

Поддерживаемые модели

ПровайдерПеременная окруженияПримеры моделей
OpenAIOPENAI_API_KEYgpt-4o, gpt-4-turbo, o1
AnthropicANTHROPIC_API_KEYclaude-sonnet-4-20250514, claude-opus-4-20250514
GoogleGEMINI_API_KEYgemini/gemini-2.0-flash, gemini/gemini-pro
xAIXAI_API_KEYxai/grok-3, xai/grok-beta
MistralMISTRAL_API_KEYmistral/mistral-large, mistral/codestral
GroqGROQ_API_KEYgroq/llama-3.3-70b-versatile
OpenRouterOPENROUTER_API_KEYopenrouter/openai/gpt-4o, openrouter/anthropic/claude-3.5-sonnet
Codex CLIПодписка ChatGPTcodex/gpt-5.2-codex, codex/gpt-5.1-codex-max
Gemini CLIАккаунт Googlegemini-cli/gemini-3-pro-preview, gemini-cli/gemini-3-flash-preview
DeepseekDEEPSEEK_API_KEYdeepseek/deepseek-chat
ZhipuZHIPUAI_API_KEYzhipu/glm-4, zhipu/glm-4-plus

Проверить, какие ключи настроены:

bash
python3 "$(find ~/.claude -name debate.py -path '*adversarial-spec*' 2>/dev/null | head -1)" providers

Поддержка AWS Bedrock

Для корпоративных пользователей, которым необходимо маршрутизировать все вызовы моделей через AWS Bedrock (например, для соответствия требованиям безопасности или через inference gateway):

bash
# Включить режим Bedrock
python3 "$(find ~/.claude -name debate.py -path '*adversarial-spec*' 2>/dev/null | head -1)" bedrock enable --region us-east-1

# Добавить модели, активированные в вашем аккаунте Bedrock
python3 "$(find ~/.claude -name debate.py -path '*adversarial-spec*' 2>/dev/null | head -1)" bedrock add-model claude-3-sonnet
python3 "$(find ~/.claude -name debate.py -path '*adversarial-spec*' 2>/dev/null | head -1)" bedrock add-model claude-3-haiku

# Проверить конфигурацию
python3 "$(find ~/.claude -name debate.py -path '*adversarial-spec*' 2>/dev/null | head -1)" bedrock status

# Отключить режим Bedrock
python3 "$(find ~/.claude -name debate.py -path '*adversarial-spec*' 2>/dev/null | head -1)" bedrock disable

Когда режим Bedrock включён, все вызовы моделей маршрутизируются через Bedrock — прямые API-вызовы не выполняются. Используйте понятные имена вроде claude-3-sonnet, которые автоматически сопоставляются с идентификаторами моделей Bedrock.

Конфигурация хранится в ~/.claude/adversarial-spec/config.json.

Поддержка OpenRouter

OpenRouter предоставляет унифицированный доступ к нескольким LLM-провайдерам через единый API. Это удобно для:

  • Доступа к моделям разных провайдеров по одному API-ключу
  • Сравнения моделей от разных провайдеров
  • Автоматического резервирования и балансировки нагрузки
  • Оптимизации затрат между провайдерами

Настройка:

bash
# Получите API-ключ на https://openrouter.ai/keys
export OPENROUTER_API_KEY="sk-or-..."

# Используйте модели OpenRouter (с префиксом openrouter/)
python3 debate.py critique --models openrouter/openai/gpt-4o,openrouter/anthropic/claude-3.5-sonnet < spec.md

Популярные модели OpenRouter:

  • openrouter/openai/gpt-4o — GPT-4o через OpenRouter
  • openrouter/anthropic/claude-3.5-sonnet — Claude 3.5 Sonnet
  • openrouter/google/gemini-2.0-flash — Gemini 2.0 Flash
  • openrouter/meta-llama/llama-3.3-70b-instruct — Llama 3.3 70B

Похожие скиллы