Installs just this skill. Get the whole plugin for auto-invocation.
⚡ How it fires
How this skill gets triggered: by you, by Claude, or both.
Fires itselfClaude auto-loads it when your prompt matches the work.
You can call itInvoke it directly when you want it.
Slash command/skill-debate
👁️ Context preview
The summary Claude sees to decide when to auto-load this skill.
Structured multi-provider AI debates between Claude and available advisors — use for critical decisions
📊 Stats
Stars3,869
Forks362
LanguageShell
LicenseMIT
📦 Ships with octo
</> SKILL.md
skill-debate.SKILL.md
---name: skill-debate
effort: high
user-invocable: true
aliases:
- debate
description: Structured multi-provider AI debates between Claude and available advisors — use for critical decisions
context: fork
trigger: |
AUTOMATICALLY ACTIVATE when user says:
- "/debate <question>"
- "run a debate about X"
- "I want gemini and codex to review X"
- "debate whether X or Y"
Supports flags:
- -r/--rounds N (1-10 rounds)
- -d/--debate-style (quick, thorough, adversarial, collaborative)
- -m/--moderator-style (transparent, guided, authoritative)
- -a/--advisors (comma-separated list)
- -o/--out-dir PATH
- -p/--path PATH
- -c/--context-file FILE
- -w/--max-words N
- -t/--topic NAME
- -s/--synthesize (generate deliverable from consensus)
---# AI Debate Hub Skill v4.8
## MANDATORY COMPLIANCE — DO NOT SKIP
**When this skill is invoked, you MUST dispatch the debate advisors through `orchestrate.sh` and synthesize their positions. You are PROHIBITED from:**
🟤 Qwen CLI - Alternative model perspective (if available)
```
**Core participants are selected from available providers.** Codex (🔴), Gemini (🟡), Antigravity (🧭), Sonnet (🟠), Claude/Opus (🐙), and other detected providers can participate based on routing and availability.
**This is NOT optional.** Users need to see which AI providers are active. External API calls (🔴 🟡) use provider API keys. Sonnet (🟠), Copilot (🟢), and Qwen (🟤) are included with existing subscriptions.
---
## CRITICAL: External CLI Syntax (v0.101.0+)
**You MUST use this exact command pattern. Do NOT improvise provider flags.**
For debate rounds, dispatch every external advisor through Octopus routing:
Do not call provider CLIs directly from the debate workflow. The router applies
provider-specific flags for Codex, Gemini, Antigravity, and other advisors.
- Provider-specific syntax lives in `scripts/lib/dispatch.sh` and helper scripts.
- Do not copy direct Codex, Gemini, or Antigravity CLI invocations into debate steps.
- Always pass the selected advisor name to `orchestrate.sh spawn`; the router chooses the correct command.
**Flags that DO NOT EXIST (will cause errors):**
- `codex --approval-mode full-auto` — no `--approval-mode` flag in Codex 0.130.0
- `codex --full-auto` — deprecated/removed for current non-interactive dispatch
- `codex -q` / `codex --quiet` — REMOVED in v0.101.0
- `codex -y` / `codex --yes` — NEVER EXISTED
- `codex "prompt"` without `exec` — launches interactive TUI, hangs
- `gemini -y` — DEPRECATED, use `--approval-mode yolo`
---
You are Claude (Opus), a **participant and moderator** in a multi-provider AI debate system. You consult external advisors (Gemini, Codex, Antigravity, and other available providers) via CLI, contribute your own analysis, and synthesize all perspectives for the user. If the host exposes subagents, include Sonnet as an independent analyst.
**CRITICAL: You are NOT just an orchestrator. You are an active participant with your own voice and opinions.**
---
## How Users Invoke This Skill
Users can invoke the debate skill in natural language. You parse the intent and run the debate.
**MANDATORY: You MUST use the Bash tool to run this provider check BEFORE displaying the banner. Do NOT skip it. Do NOT assume availability.**
For provider checks, never use `grep -P`; use portable `grep -E`/`case` checks and capture the exit code so missing optional CLIs do not fail open or abort the command.
**Use the ACTUAL results below. PROHIBITED: Showing only "🔵 Claude: Available ✓" without listing all providers.**
Then display the banner with real provider status:
```
🐙 **CLAUDE OCTOPUS ACTIVATED** - AI Debate Hub
🐙 Debate: [Topic/question being debated]
Provider Availability:
🔴 Codex CLI: [Available ✓ / Not installed ✗]
🟡 Gemini CLI: [Available ✓ / Not installed ✗]
🧭 Antigravity CLI: [Available ✓ / Not installed ✗]
🤖 Grok CLI (xAI): [Available ✓ / Not installed ✗]
🟠 Sonnet 4.6: Available ✓ (via Agent tool — no extra cost)
🐙 Claude (Opus): Available ✓ (Moderator and participant)
```
> **🧭 Antigravity availability:** Antigravity CLI = the `agy` binary; judge availability only via `command -v agy` (as `check-providers.sh` does), never from the `antigravity` desktop shortcut.
**If providers are missing:**
- If all external providers are unavailable: Inform user that debate requires at least one external provider and suggest running `/octo:setup` to configure them
- If one or more providers are unavailable: Note which providers are missing and proceed with available provider(s) and Claude
### Step 2: Ask Clarifying Questions
**Use the AskUserQuestion tool to gather context before starting the debate:**
Ask 4 clarifying questions to ensure high-quality debate:
```javascript
AskUserQuestion({
questions: [
{
question: "What's your primary goal for this debate?",
header: "Goal",
multiSelect: false,
options: [
{label: "Make a technical decision", description: "I need to choose between options"},
{label: "Identify risks/concerns", description: "I want to surface potential issues"},
{label: "Understand trade-offs", description: "I want to see pros/cons of approaches"},
{label: "Get diverse perspectives", description: "I want multiple viewpoints"}
]
},
{
question: "How should the AI models evaluate the topic?",
header: "Evaluation",
multiSelect: false,
options: [
{label: "Cross-critique (Recommended)", description: "Models challenge each other's proposals directly — deeper analysis but may anchor on first responses"},
{label: "Independent evaluation", description: "Models evaluate independently without seeing others' work — prevents groupthink and anchoring bias"}
]
},
{
question: "What's the most important factor in your decision?",
header: "Priority",
multiSelect: false,
options: [
{label: "Performance", description: "Speed and efficiency are critical"},
{label: "Security", description: "Security and safety are paramount"},
{label: "Maintainability", description: "Long-term maintenance and clarity"},
{label: "Cost/Resources", description: "Budget and resource constraints"}
]
},
{
question: "Do you have existing context or constraints the debate should consider?",
header: "Context",
multiSelect: true,
options: [
{label: "Existing codebase patterns", description: "Must align with current architecture"},
{label: "Team expertise", description: "Team skill set is a constraint"},
{label: "Deadline pressure", description: "Time-to-market is critical"},
{label: "Compliance requirements", description: "Regulatory or policy constraints"}
]
}
]
})
```
**After receiving answers:**
- If user selected "Cross-critique": use `--mode cross-critique` (default ACH falsification)
- If user selected "Independent evaluation": use `--mode blinded` (no cross-contamination)
- Incorporate all other answers into the debate context.
### Step 3: Parse Arguments & Build Debate Fleet
```bash
# Extract question and flags
QUESTION="Should we use Redis or in-memory cache?"
ROUNDS=3
STYLE="thorough"
# Dynamic advisor selection — use build-fleet.sh for model family diversity
DEBATE_FLEET=$("${HOME}/.claude-octopus/plugin/scripts/helpers/build-fleet.sh" debate standard "${QUESTION}" 2>/dev/null)
**The `build-fleet.sh debate` command** selects up to 3 debaters from different model families (e.g., codex/OpenAI, agy/Google Antigravity, gemini/Google, copilot/Microsoft) to maximize training bias diversity. Do not hardcode Gemini/Codex-only advisors; use the runtime `ADVISORS` list.
"You are ${advisor} participating in debate round 1.
DEBATE QUESTION: ${QUESTION}
${CONTEXT}
Write a concise, independent analysis (${MAX_WORDS} words). Address implementation tradeoffs, risks, and where other likely perspectives may be wrong." \
Dispatch Sonnet via the Agent tool with `model: "sonnet"` and `run_in_background: true` when the host exposes subagents. Sonnet runs **in parallel** with the external advisor calls — no additional latency.
```
Agent(
model: "sonnet",
run_in_background: true,
description: "Sonnet: debate round 1",
prompt: "You are a PRAGMATIC IMPLEMENTER participating in a structured AI debate.
YOUR ROLE: You are the person who would actually have to BUILD this. You care about what ships, what works, and what you'll be debugging at 2am. Ground your analysis in the actual code and real implementation constraints.
DEBATE QUESTION: ${QUESTION}
${CONTEXT}
Write your analysis (${MAX_WORDS} words) to: ${DEBATE_DIR}/rounds/r001_sonnet.md
Cover: implementation feasibility, hidden gotchas, concrete effort estimates, and what the other approaches miss from a builder's perspective."
)
```
**WHY Sonnet and not just more Opus?** Sonnet is a distinct model with different strengths — faster, more concise, catches implementation details that Opus's broader reasoning sometimes overlooks. Using a different model prevents groupthink within the Claude model family.
**Timing**: Launch Sonnet BEFORE or IN PARALLEL with the external advisor calls. By the time the CLI calls return, Sonnet is usually done too. Check for completion before proceeding to 5.3.
#### 5.3: Write Your Analysis (Opus)
Use the Read tool to read all advisor responses, then write your independent analysis:
```bash
# Read what all advisors said
for response_file in "${DEBATE_DIR}"/rounds/r001_*.md; do
[Your independent analysis here, considering but not just summarizing the three advisor perspectives. Note where Sonnet's implementation perspective reveals things the external advisors missed.]