| name | devils-advocate |
| description | Full adversarial analysis of any idea, proposal, or argument. Runs steelman, crucible, and verdict in sequence for a complete challenge drawing from 10 reasoning traditions. Use when the user asks to play devil's advocate, run a full challenge, or says 'tear this apart' or 'give me the full treatment'.
|
| argument-hint | idea, plan, or argument to challenge |
Devil's Advocate (Full Analysis)
Context: $ARGUMENTS
Run a complete adversarial analysis by orchestrating all three sub-skills in sequence. Each builds on the shared argument graph.
Workflow
Phase 1 — Steelman + Contrary Case
Read ${CLAUDE_SKILL_DIR}/references/steelmanning.md and ${CLAUDE_SKILL_DIR}/references/dissoi-logoi.md.
Reset and initialize:
uv run ${CLAUDE_PLUGIN_ROOT}/scripts/argument-graph.py reset
uv run ${CLAUDE_PLUGIN_ROOT}/scripts/thought-chain.py reset
uv run ${CLAUDE_PLUGIN_ROOT}/scripts/thought-chain.py init "<subject>" --total 7
Build the strongest version of the argument. Register all claims and assumptions in the graph. Then argue the complete opposite with equal conviction. Register counters and evidence.
uv run ${CLAUDE_PLUGIN_ROOT}/scripts/thought-chain.py think 1 "<steelman>"
uv run ${CLAUDE_PLUGIN_ROOT}/scripts/thought-chain.py think 2 "<contrary case>"
Present both to the user before continuing.
Phase 2 — Crucible
Read ${CLAUDE_SKILL_DIR}/references/socratic-method.md, ${CLAUDE_SKILL_DIR}/references/crucible.md, and ${CLAUDE_SKILL_DIR}/references/red-team.md.
Ask 3-5 Socratic questions targeting specific assumptions. Run structural analysis:
uv run ${CLAUDE_PLUGIN_ROOT}/scripts/argument-graph.py analyze
Use the gaps to drive the hostile review. Register weaknesses. Identify 3-5 failure modes. If multiple independent failure modes exist, branch:
uv run ${CLAUDE_PLUGIN_ROOT}/scripts/thought-chain.py think 3 "<socratic questions>"
uv run ${CLAUDE_PLUGIN_ROOT}/scripts/thought-chain.py think 4 "<crucible findings>"
uv run ${CLAUDE_PLUGIN_ROOT}/scripts/thought-chain.py think 5 "<red team findings>"
REVISION CHECK: If the crucible reveals the steelman was too generous, revise:
uv run ${CLAUDE_PLUGIN_ROOT}/scripts/thought-chain.py revise 1 "<revised steelman>" --reason "<what changed>"
Phase 3 — Verdict
Read ${CLAUDE_SKILL_DIR}/references/social-gadfly.md.
Name the one uncomfortable truth nobody wants to say. Then run the structural verdict:
uv run ${CLAUDE_PLUGIN_ROOT}/scripts/thought-chain.py think 6 "<gadfly sting>"
uv run ${CLAUDE_PLUGIN_ROOT}/scripts/argument-graph.py verdict
uv run ${CLAUDE_PLUGIN_ROOT}/scripts/thought-chain.py think 7 "<verdict>"
Output format
Present the full analysis with clear sections:
- The Strongest Case: (steelman)
- The Strongest Case Against: (dissoi logoi)
- Socratic Questions: (3-5 questions targeting assumptions)
- Weakest Points: (crucible findings from structural analysis)
- Failure Modes: (red team, with branches if multiple)
- The Uncomfortable Truth: (gadfly sting)
- Verdict: Survives / Does not survive / Needs more work
Optionally render the full chain and graph:
uv run ${CLAUDE_PLUGIN_ROOT}/scripts/thought-chain.py render
uv run ${CLAUDE_PLUGIN_ROOT}/scripts/argument-graph.py export
Resources
References (load the file matching the current phase):
${CLAUDE_SKILL_DIR}/references/steelmanning.md — load in Phase 1.
${CLAUDE_SKILL_DIR}/references/dissoi-logoi.md — load in Phase 1.
${CLAUDE_SKILL_DIR}/references/socratic-method.md — load in Phase 2.
${CLAUDE_SKILL_DIR}/references/crucible.md — load in Phase 2.
${CLAUDE_SKILL_DIR}/references/red-team.md — load in Phase 2.
${CLAUDE_SKILL_DIR}/references/social-gadfly.md — load in Phase 3.
${CLAUDE_SKILL_DIR}/references/polemic.md — load when the gadfly sting needs rhetorical force.
${CLAUDE_SKILL_DIR}/references/devils-advocate.md — load for Nemeth's warning about inauthentic dissent.
${CLAUDE_SKILL_DIR}/references/roman-rota.md — load when multi-level appellate review structure is relevant.
${CLAUDE_SKILL_DIR}/references/lawsuits-against-the-devil.md — load when the idea seems too absurd or sacred to challenge.
Scripts:
${CLAUDE_PLUGIN_ROOT}/scripts/argument-graph.py — run throughout. analyze before Phase 2, verdict in Phase 3.
${CLAUDE_PLUGIN_ROOT}/scripts/thought-chain.py — run at every phase. revise when later phases invalidate earlier ones. branch for multiple failure modes.
Gotchas
- Nemeth's warning is real. Inauthentic, going-through-the-motions dissent makes people MORE entrenched. Every objection must cite a specific mechanism of failure.
- Steelman FIRST, always. If you attack a weak version, the entire analysis is worthless.
- Run
analyze before the crucible. The graph catches structural gaps prose misses.
- Revise when warranted. A linear pass that never revisits is weaker than one that evolves.
- The gadfly sting is not another weakness. It's the foundational uncomfortable truth.
- Graph entity names: short kebab-case. Observations carry the detail.