Marketplace

council

Run multi-LLM council for adversarial debate and cross-validation. Orchestrates Claude, GPT-4, and Gemini for production-grade implementation, code review, architecture design, research, and security analysis.

$ Installieren

git clone https://github.com/sherifkozman/the-llm-council /tmp/the-llm-council && cp -r /tmp/the-llm-council/skills/council ~/.claude/skills/the-llm-council

// tip: Run this command in your terminal to install the skill


name: council description: Run multi-LLM council for adversarial debate and cross-validation. Orchestrates Claude, GPT-4, and Gemini for production-grade implementation, code review, architecture design, research, and security analysis.

LLM Council Skill

Multi-model council: parallel drafts → adversarial critique → validated synthesis.

Prerequisite: This skill requires the the-llm-council Python package to be installed. The skill provides IDE integration but the actual council runs via the installed CLI. If you see command not found: council, run pip install the-llm-council first.

Setup

1. Install

pip install the-llm-council>=0.5.0

# With specific provider SDKs
pip install the-llm-council[anthropic,openai,google]

2. Configure API Keys

ProviderEnvironment VariableNotes
OpenRouterOPENROUTER_API_KEYRecommended - single key for all models
OpenAIOPENAI_API_KEYDirect GPT access
AnthropicANTHROPIC_API_KEYDirect Claude access
GoogleGOOGLE_API_KEY or GEMINI_API_KEYDirect Gemini access
# Minimum setup (OpenRouter)
export OPENROUTER_API_KEY="your-key"

3. Verify

council doctor

Usage

council run <subagent> "<task>" [options]

CLI Options

OptionDescription
--modeAgent mode (e.g., impl/arch/test for drafter)
--jsonOutput structured JSON
--verbose, -vVerbose output
--models, -mComma-separated model IDs
--providers, -pComma-separated provider list
--no-artifactsDisable artifact storage (faster)

Other Commands

council doctor    # Check provider health
council config    # Show current configuration

Subagents (v0.5.0)

Core Agents

SubagentModesUse ForDetails
drafterimpl, arch, testCode, architecture, testsSee below
criticreview, securityCode review, security auditSee below
synthesizer-Merge and finalize outputsSee subagents/synthesizer.md
researcher-Technical researchSee subagents/researcher.md
plannerplan, assessRoadmaps, decisionsSee subagents/planner.md
router-Task classificationSee subagents/router.md

Agent Modes

drafter modes:

  • --mode impl - Feature implementation, bug fixes (default)
  • --mode arch - System design, API schemas
  • --mode test - Test suite design

critic modes:

  • --mode review - Code review with CWE IDs (default)
  • --mode security - Security threat analysis

planner modes:

  • --mode plan - Execution roadmaps (default)
  • --mode assess - Build vs buy decisions

Deprecated Aliases (Backwards Compatible)

The following legacy agent names still work but will be removed in v1.0:

Old NameUse InsteadRemoved In
implementerdrafter --mode implv1.0
architectdrafter --mode archv1.0
test-designerdrafter --mode testv1.0
reviewercritic --mode reviewv1.0
red-teamcritic --mode securityv1.0
assessorplanner --mode assessv1.0
shippersynthesizerv1.0

Multi-Model Configuration

Run multiple models in parallel for adversarial debate:

# Via CLI flag
council run drafter --mode arch "Design caching layer" \
  --models "anthropic/claude-3.5-sonnet,openai/gpt-4o,google/gemini-pro"

# Via environment variable
export COUNCIL_MODELS="anthropic/claude-3.5-sonnet,openai/gpt-4o,google/gemini-pro"

Model Pack Overrides

Fine-tune which models handle specific task types:

export COUNCIL_MODEL_FAST="anthropic/claude-3-haiku"      # Quick tasks
export COUNCIL_MODEL_REASONING="anthropic/claude-3-opus"  # Deep analysis
export COUNCIL_MODEL_CODE="openai/gpt-4o"                 # Code generation
export COUNCIL_MODEL_CRITIC="anthropic/claude-3.5-sonnet" # Adversarial critique

Config File

Optional YAML configuration:

# ~/.config/llm-council/config.yaml
providers:
  - name: openrouter
    api_key: ${OPENROUTER_API_KEY}
    default_model: anthropic/claude-3-opus

defaults:
  providers:
    - openrouter
  timeout: 120
  max_retries: 3
  summary_tier: actions

Python API

from llm_council import Council
from llm_council.protocol.types import CouncilConfig

config = CouncilConfig(
    providers=["openrouter"],
    mode="impl"  # Optional: set agent mode
)
council = Council(config=config)
result = await council.run(
    task="Build a login page with OAuth",
    subagent="drafter"
)
print(result.output)

When to Use

Use council for:

  • Feature implementation requiring production quality
  • Code review with security analysis (CWE IDs)
  • Architecture design decisions
  • Technical research informing decisions
  • Build vs buy assessments
  • Security threat modeling

Skip council for:

  • Quick file lookups
  • Single-line fixes
  • Simple questions

Examples

# Feature implementation (new v0.5.0 syntax)
council run drafter --mode impl "Add pagination to users API" --json

# Code review
council run critic --mode review "Review the authentication changes" --json

# Multi-model architecture design
council run drafter --mode arch "Design caching layer" \
  --models "anthropic/claude-3.5-sonnet,openai/gpt-4o" --json

# Security threat model
council run critic --mode security "Analyze auth system vulnerabilities" --json

# Build vs buy decision
council run planner --mode assess "Should we build or buy a payment system?" --json

# Legacy syntax (still works, shows deprecation warning)
council run implementer "Add pagination" --json
council run reviewer "Review changes" --json

Security Notes

  • API Keys: Never embed secrets in task descriptions or skill files. Use environment variables.
  • Data Sensitivity: Avoid sending files containing secrets (.env, credentials) to the council. Context is sent to external LLM providers.
  • Skill Integrity: Treat SKILL.md and subagents/*.md as configuration code. Keep under version control.

Troubleshooting

# Check all providers
council doctor

# Verbose output for debugging
council run drafter --mode impl "task" --verbose

# Faster runs (skip artifact storage)
council run drafter "task" --no-artifacts