debating-ideas
Dialectic Debate
Stress-test ideas by spawning competing perspectives, then synthesize and ground-truth against code.
$ARGUMENTS is the question or topic to debate.
If no argument provided, ask the user what they want to evaluate.
Use TaskCreate / TaskUpdate to track these 4 phases:
- Frame the debate
- Spawn thesis + antithesis agents
- Synthesize positions
- Verify claims against code
Phase 1: Frame the Debate
Parse the topic from $ARGUMENTS. Identify:
- The core tension — what are the two opposing positions?
- Stakes — what depends on getting this right?
- Scope — bound the debate to avoid sprawl
Frame as a clear binary or spectrum question. Examples:
- "Should we use microservices or a monolith for X?"
- "Is caching worth the complexity here?"
- "Should this be a library or an inline implementation?"
Phase 2: Spawn Thesis + Antithesis (Parallel)
Spawn two Explore agents in a single message:
Task(
subagent_type="Explore",
run_in_background=true,
description="Thesis: argue FOR",
prompt="You are arguing FOR: {position A}.
Topic: {framed question}
Build the strongest possible case:
1. Search the codebase for evidence supporting this position
2. Identify concrete benefits with file:line references
3. Anticipate and preempt counterarguments
4. Rate your confidence (high/medium/low) with reasoning
Be specific — cite code, patterns, and constraints you find.
DO NOT hedge or present both sides. Argue your position fully."
)
Task(
subagent_type="Explore",
run_in_background=true,
description="Antithesis: argue AGAINST",
prompt="You are arguing AGAINST: {position A} (i.e., FOR {position B}).
Topic: {framed question}
Build the strongest possible case:
1. Search the codebase for evidence supporting this position
2. Identify concrete risks/costs of the opposing view with file:line references
3. Anticipate and preempt counterarguments
4. Rate your confidence (high/medium/low) with reasoning
Be specific — cite code, patterns, and constraints you find.
DO NOT hedge or present both sides. Argue your position fully."
)
Phase 3: Synthesize
Collect both results:
TaskOutput(task_id=<thesis_id>, block=true)
TaskOutput(task_id=<antithesis_id>, block=true)
Synthesize into a structured verdict:
- Where they agree — shared facts, common ground
- Where they conflict — genuine disagreements with evidence
- Weak arguments — flag claims that lack code evidence or rely on generalities
- Verdict — which position has stronger grounding, and why
- Conditions — when would the other position win instead?
Phase 4: Verify Claims
For any factual claims made by either side (file references, pattern assertions, dependency claims):
- Read the cited files to confirm accuracy
- Flag any misrepresentations or hallucinated evidence
- Adjust verdict if verification changes the balance
Output
DEBATE: {topic}
==============
Thesis: {position A}
Confidence: {high/medium/low}
Key evidence: {1-2 strongest points with file refs}
Antithesis: {position B}
Confidence: {high/medium/low}
Key evidence: {1-2 strongest points with file refs}
Verdict: {position} wins because {reason}
Caveat: {position} would win if {conditions}
Verified claims: {N}/{M} checked, {K} corrected
Examples
/debating-ideas Should we split the API into microservices?
/debating-ideas Is it worth adding Redis caching to the auth flow?
/debating-ideas Monorepo vs polyrepo for our frontend packages
If the debate reaches no clear conclusion, present both positions with evidence and let the user decide.
Frame the debate now.
More from alexei-led/cc-thingz
improving-tests
Improve test design and coverage, including TDD/red-green-refactor guidance. Use when user says "improve tests", "refactor tests", "test coverage", "combine tests", "table-driven", "parametrize", "test.each", "test-first", "TDD", "red-green-refactor", or wants to remove test waste.
4linting-instructions
Lint plugin agent/skill prompts against rules derived from Anthropic model cards (Opus 4.6, Sonnet 4.6). Use when authoring or reviewing skills and agents — "lint instructions", "audit prompts", "model card rules".
3learning-patterns
Extract learnings and generate project-specific customizations (CLAUDE.md, commands, skills, hooks). Use when user says "learn", "extract learnings", "what did we learn", "save learnings", "adapt config", or wants to improve Claude Code based on conversation patterns.
3documenting-code
Update project documentation based on recent changes. Use when user says "update docs", "document", "add documentation", "update readme", "write docs", or wants to improve documentation.
3analyzing-usage
>-
3evolving-config
>-
3