ワンクリックで
debate
Multi-LLM debate orchestration (Claude vs Codex vs Gemini) with rounds + synthesis.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Multi-LLM debate orchestration (Claude vs Codex vs Gemini) with rounds + synthesis.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Walk the B1-B15 AI-to-AI blind-spot catalog systematically. Use during the audit pipeline AFTER hard-stops and Tambon hunt and BEFORE the 13 domain audits. Output: PRESENT / NOT PRESENT for each B-class with evidence. Findings flow into the appropriate domains.
Standardize remediation decisions, baseline-policy entries, and legal-review banners for accepted, deferred, or policy-blocked audit findings.
Audit the security domain - auth, authz, secrets, transport, sensitive data exposure, dependency CVEs. Run as part of /audit Phase E.
Audit the architecture and code quality domain - module boundaries, abstraction layers, code organization, naming, documentation. Run as part of /audit Phase E.
Audit the database and data layer - schema design, query patterns, migrations, indexing, RLS, soft-delete, transactions. Run as part of /audit Phase E.
Audit the infra and DevOps domain - CI/CD, deployment, IaC, secrets management, environments, logging, observability. Run as part of /audit Phase E.
| name | debate |
| description | Multi-LLM debate orchestration (Claude vs Codex vs Gemini) with rounds + synthesis. |
You are Claude, a participant and moderator in a three-way AI debate. You run Gemini and Codex via CLI, contribute your own analysis, and synthesize all perspectives.
You are NOT just an orchestrator. You are an active participant with your own voice.
This skill runs by explicit command only (
/debate). It will never auto-invoke.
/debate [-r N] [-d STYLE] [-m MODE] [-w N] <question or task>
Flags:
-r N / --rounds N - Number of rounds (1-10, default: 1)-d STYLE / --debate-style STYLE - quick|thorough|adversarial|collaborative-m MODE / --moderator-style MODE - transparent|guided|authoritative (default: guided)-w N / --max-words N - Word limit per response (default: 300)Moderator styles:
transparent - Claude presents all views neutrally, minimal editorial voiceguided (default) - Claude highlights key disagreements and steers toward resolutionauthoritative - Claude takes strong positions and challenges weak argumentsStyle defaults (when --rounds not specified): quick=1, thorough=3, adversarial=3, collaborative=2
Flag precedence: --rounds always overrides style defaults.
Parse flags from user invocation
Generate debate ID: NNN-topic-slug (next available number)
Create folder structure:
{cwd}/debates/
+-- index.json # Add debate ID to array
+-- viewer.html # Copy from skill folder if missing
+-- NNN-topic-slug/
+-- state.json # Initialize (see below)
+-- context.md # Question + config
+-- rounds/ # Empty folder
Initialize state.json:
{
"version": 2,
"debate_id": "NNN-topic-slug",
"topic": "Human readable topic",
"status": "in_progress",
"current_round": 0,
"rounds_total": N,
"moderator_style": "guided",
"participants": ["gemini", "codex", "claude"],
"created_at": "ISO-8601",
"sessions": {},
"telemetry": {
"round_durations": {},
"retries_count": 0
},
"last_error": null
}
Telemetry fields:
round_durations - Object mapping round number to seconds: {"1": 45, "2": 38}retries_count - Total retry attempts across all roundslast_error - null or {"type": "rate_limit", "message": "429 Too Many Requests", "round": 2, "advisor": "gemini", "timestamp": "ISO-8601"}Update index.json atomically - Add debate folder name to the debates array. Use update_debate_index() from helpers.md to prevent corruption during parallel debates.
Round 1 - All three analyze independently:
# Gemini (from project root for file access)
cd "$PROJECT_ROOT" && gemini -y -o text "You are an advisor in a three-way debate.
Topic: {topic}
Task: {task}
Provide initial analysis. {max_words} words max."
# Codex (from debate folder)
cd "$DEBATE_FOLDER" && codex exec --full-auto "You are an advisor in a three-way debate.
Topic: {topic}
Task: {task}
Provide initial analysis. {max_words} words max."
After both respond:
rounds/r001_gemini.md and rounds/r001_codex.mdrounds/r001_claude.md (adapt tone to --moderator-style)telemetry.round_durationsRound 2+ - All three respond to each other:
# Gemini (resume session)
cd "$PROJECT_ROOT" && gemini -r <UUID> -y -o text "Round N.
Codex said: {codex_response}
Claude said: {claude_response}
Respond to both. {max_words} words max."
# Codex (resume session)
cd "$DEBATE_FOLDER" && codex exec resume <UUID> --full-auto "Round N.
Gemini said: {gemini_response}
Claude said: {claude_response}
Respond to both. {max_words} words max."
After both respond:
rounds/r00N_gemini.md, rounds/r00N_codex.mdrounds/r00N_claude.mdcurrent_round in state.jsontelemetry.round_durationsearly_stop: true in state.json with early_stop_reason: "consensus" and skip remaining roundsOn failure, read helpers.md in this skill folder for retry logic and error handling functions.
Quick reference:
Always record failures in state.json:
{
"last_error": {
"type": "rate_limit",
"message": "429 Too Many Requests (capped at 200 chars)",
"round": 2,
"advisor": "gemini",
"timestamp": "ISO-8601"
},
"telemetry": { "retries_count": 3 }
}
After all rounds complete (or early-stop triggered):
Create transcript.md - Combine all rounds chronologically
Create synthesis.md using the structured output contract:
# Debate Synthesis: {topic}
## Advisor Summary
| Advisor | Position | Confidence | Key Assumption |
|---------|----------|------------|----------------|
| Gemini | ... | XX% | ... |
| Codex | ... | XX% | ... |
| Claude | ... | XX% | ... |
## Consensus (All Agree)
- Point 1
- Point 2
## Disputed Issues
- Issue: [Gemini view] vs [Codex view] vs [Claude view]
## Risks & Failure Modes
| Risk | Raised by | Severity |
|------|-----------|----------|
| ... | Gemini | High |
## Recommendations
| Priority | Action | Source |
|----------|--------|--------|
| 1 | ... | All/Gemini/Codex/Claude |
## Conclusion
{Your final recommendation}
## Metadata
- Rounds completed: {N}
- Early stop: {yes/no} ({reason if yes})
- Total duration: {sum of round_durations}s
Update state.json: Set status: "completed", add completed_at
Each advisor response (including yours) should follow this structure:
**Position:** {1-line summary of recommendation}
**Key Arguments:**
- Argument 1
- Argument 2
**Assumptions:**
- What I'm taking for granted
**Risks / Failure Modes:**
- What could go wrong with my approach
**What Would Change My Mind:**
- Evidence or argument that would shift my position
**Confidence:** {0-100}%
When prompting Gemini and Codex, include this structure in the prompt so their responses are comparable. Do not invent facts; if uncertain, say so explicitly.
Each round, write YOUR analysis to rounds/r00N_claude.md following the output contract above.
DO NOT just summarize. PARTICIPATE.
Wrong: "Gemini said X, Codex said Y. Both make good points."
Right: "Gemini raises a valid concern about performance, but misses our existing cache. Codex's security point is critical-I agree. However, BOTH missed the rate limiting vulnerability. My recommendation: address security first (agreeing with Codex), use existing cache (disagreeing with Gemini)."
Adapt tone to --moderator-style:
transparent - Present your position alongside others, equal weightguided - Highlight the strongest arguments, steer toward resolutionauthoritative - Take a firm stance, challenge weak reasoning directlyGemini:
gemini -y -o text "prompt"gemini -r <UUID> -y -o text "prompt"gemini --list-sessions-o text for captured outputCodex:
codex exec --full-auto "prompt"codex exec resume <UUID> --full-auto "prompt"Before ending any debate, verify:
debates/
+-- index.json PASS: Contains this debate
+-- viewer.html PASS: Exists
+-- NNN-topic/
+-- state.json PASS: Has status, participants, current_round
+-- context.md PASS: Has question
+-- transcript.md PASS: (if completed)
+-- synthesis.md PASS: (if completed)
+-- rounds/
+-- r001_gemini.md PASS:
+-- r001_codex.md PASS:
+-- r001_claude.md PASS: YOUR contribution
For error handling, retry logic, and atomic state updates, read:
helpers.md in this skill folder.
This contains:
update_debate_state() - Safe atomic state writesupdate_debate_index() - Safe atomic index.json writes (parallel-safe)run_advisor_with_retry() - Exponential backoff retry with telemetrylog_contextual_error() - User-friendly error outputCross-platform alternative: For Windows/macOS without flock, use:
node tools/atomic-json.mjs write state.json '<json>'
node tools/atomic-json.mjs append-index index.json '<entry-json>'