Research backing: MIT studies show multi-perspective AI deliberation improves decision accuracy by 7-45%. The AI Council Framework and Debate-Based Consensus patterns demonstrate that structured disagreement surfaces blind spots that single-perspective analysis misses.
For standard mode (Agent Teams): requires CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 in settings.json env.
Verify: check ~/.claude/settings.json for this variable before proceeding.
Economy mode (-e): no prerequisites, uses sequential subagents instead of Agent Teams.
Minimal council (3 steps):
1. /council Should we migrate our monolith to microservices?
2. Councillors debate across 2 rounds (default)
3. Receive structured verdict: PROCEED / PROCEED WITH CONDITIONS / RECONSIDER / DO NOT PROCEED
With options:
/council -c 5 -r 3 -s -f security Our plan to store PII in a third-party service
Flags:
| Flag |
Default |
Description |
-r N |
2 |
Number of debate rounds (1-4) |
-c N |
4 |
Number of councillors (3-6) |
-s |
false |
Save transcript to .claude/output/council/ |
-e |
false |
Economy mode: sequential subagents instead of Agent Teams |
-f X |
none |
Focus domain: technical, business, UX, security, ethics, custom |
Councillor assignment by -c N:
| Count |
Councillors |
| 3 |
visionary, critic, pragmatist |
| 4 |
+ innovator (default) |
| 5 |
+ ethicist |
| 6 |
+ domain-expert (requires -f) |
Parse at start:
- Check for
-r N → set {rounds} (default 2, clamp 1-4)
- Check for
-c N → set {councillor_count} (default 4, clamp 3-6)
- Check for
-s → set {save_mode} = true
- Check for
-e → set {economy_mode} = true
- Check for
-f X → set {focus} = X
- Validate: if
-c 6 without -f → warn and reduce to 5
- Validate: if
-e and Agent Teams env var set → note economy override
- Remove all flags from input → store as
{topic}
{topic} - The idea/plan to evaluate (flags removed)
{rounds} - Number of debate rounds (1-4, default 2)
{councillor_count} - Number of councillors (3-6, default 4)
{save_mode} - true if -s flag passed
{economy_mode} - true if -e flag passed
{focus} - Domain focus if -f passed (technical/business/UX/security/ethics/custom)
{councillors} - List of active councillor roles
{team_name} - Team name (if Agent Teams mode)
{output_dir} - Path to output directory (if save_mode)
{opening_statements} - Collected opening positions from step-02
{debate_log} - Accumulated debate exchanges from step-03
{position_evolution} - How each councillor's position changed across rounds
Summary:
| Role |
Perspective |
Agent Type |
| Moderator |
Neutral orchestrator, synthesizer |
Team lead (you) |
| Visionary |
Potential, opportunities, best-case scenarios |
Plan (read-only) |
| Critic |
Flaws, risks, failure modes, worst-case |
Plan (read-only) |
| Pragmatist |
Feasibility, constraints, execution reality |
Plan (read-only) |
| Innovator |
Alternatives, creative reframings |
Plan (read-only) |
| Ethicist |
Human impact, moral implications, stakeholders |
Plan (read-only, 5th) |
| Domain Expert |
Specialized expertise per -f focus |
Plan (read-only, 6th) |
Phase 1: Setup (step-01)
- Parse flags and validate configuration
- Determine councillor roster based on
-c N
- Create team (Agent Teams) or prepare sequential execution (economy)
- Spawn all councillors in parallel
Phase 2: Opening Statements (step-02)
- Each councillor independently analyzes the topic from their perspective
- No cross-contamination — councillors don't see each other's positions yet
- Moderator collects all opening statements
Phase 3: Debate Rounds (step-03)
- Share all positions with every councillor
- Each councillor must challenge 2+ specific points from others
- Peer exchange: councillors message each other directly via SendMessage
- Moderator injects anti-groupthink questions between rounds
- Track position evolution across rounds
- Repeat for
{rounds} rounds
Phase 4: Verdict (step-04)
- Synthesize consensus and dissensus points
- Build risk assessment matrix
- Produce structured verdict with confidence level
- Present strongest counter-argument (steelmanned)
- Save transcript (if
-s) and cleanup team
steps/step-01-setup.md - Parse flags, create team, spawn councillors
steps/step-02-opening.md - Independent opening statements (no cross-contamination)
steps/step-03-debate.md - Cross-examination rounds + peer exchange
steps/step-04-verdict.md - Synthesis, verdict, cleanup
FIRST ACTION - Parse flags:
- Check for
-r N → set {rounds} (default 2, validate 1-4)
- Check for
-c N → set {councillor_count} (default 4, validate 3-6)
- Check for
-s → set {save_mode} = true
- Check for
-e → set {economy_mode} = true
- Check for
-f X → set {focus} = X
- Validate flag combinations (see parameters section)
- Remove flags from input → store as
{topic}
THEN: Load steps/step-01-setup.md to begin council setup.
- Load one step at a time - Only load the current step file
- Persist state variables across all steps
- Follow next_step directive at end of each step
- You are the Moderator - Orchestrate, don't argue. Stay neutral.
- Economy mode - Use sequential Task calls with subagent_type
Plan instead of Agent Teams
- Peer exchange is the differentiator - In standard mode, councillors MUST message each other directly
- Anti-groupthink - If positions converge too quickly, inject challenging questions
- Steelman, don't strawman - Present the strongest version of opposing arguments
- Read-only councillors - Councillors analyze and argue, they NEVER modify files
- Always cleanup - Shutdown all councillors + TeamDelete when done
- All councillors produced opening statements independently
- At least
{rounds} rounds of cross-examination completed
- Peer exchange occurred (councillors challenged each other directly)
- Position evolution tracked across rounds
- Structured verdict produced with confidence level
- Consensus AND dissensus points identified
- Risk assessment matrix included
- Strongest counter-argument steelmanned
- Team cleaned up properly (shutdown + delete)
- Transcript saved (if
-s flag)
1---2name: workflow-debate3description: Structured adversarial debate between AI councillors using Agent Teams to evaluate ideas, plans, or decisions. ALWAYS use when the user says "council", "debate this", "evaluate this idea", "challenge my plan", "stress-test", "devil's advocate", "multiple perspectives", "évaluer cette idée", "débattre", "challenger mon plan", "tester cette décision", or when the user wants rigorous multi-perspective analysis of a proposal, architecture decision, or strategic choice. Each councillor (visionary, critic, pragmatist, innovator, ethicist, domain expert) represents a distinct perspective and they challenge each other through cross-examination and peer exchange, producing a nuanced verdict (PROCEED / PROCEED WITH CONDITIONS / RECONSIDER / DO NOT PROCEED). Do NOT use for divergent brainstorming or idea generation — use workflow-brainstorm instead.4---5
6<objective>
7Orchestrate a structured adversarial debate (council) between multiple AI councillors, each representing a distinct perspective, to rigorously evaluate an idea, plan, or decision. Unlike brainstorming (divergent exploration), this skill uses structured adversarialism where agents actively challenge each other's positions through cross-examination and direct peer messaging.
8
9Research backing: MIT studies show multi-perspective AI deliberation improves decision accuracy by 7-45%. The AI Council Framework and Debate-Based Consensus patterns demonstrate that structured disagreement surfaces blind spots that single-perspective analysis misses.
10</objective>
11
12<prerequisites>
13For standard mode (Agent Teams): requires `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` in settings.json env.
14Verify: check `~/.claude/settings.json` for this variable before proceeding.
15
16Economy mode (`-e`): no prerequisites, uses sequential subagents instead of Agent Teams.
17</prerequisites>
18
19<quick_start>
20
21**Minimal council (3 steps):**
22
23```
241. /council Should we migrate our monolith to microservices?
252. Councillors debate across 2 rounds (default)
263. Receive structured verdict: PROCEED / PROCEED WITH CONDITIONS / RECONSIDER / DO NOT PROCEED
27```
28
29**With options:**
30```
31/council -c 5 -r 3 -s -f security Our plan to store PII in a third-party service
32```
33
34</quick_start>
35
36<parameters>
37
38**Flags:**
39
40| Flag | Default | Description |
41|------|---------|-------------|
42| `-r N` | 2 | Number of debate rounds (1-4) |
43| `-c N` | 4 | Number of councillors (3-6) |
44| `-s` | false | Save transcript to `.claude/output/council/` |
45| `-e` | false | Economy mode: sequential subagents instead of Agent Teams |
46| `-f X` | none | Focus domain: technical, business, UX, security, ethics, custom |
47
48**Councillor assignment by `-c N`:**
49
50| Count | Councillors |
51|-------|-------------|
52| 3 | visionary, critic, pragmatist |
53| 4 | + innovator (default) |
54| 5 | + ethicist |
55| 6 | + domain-expert (requires `-f`) |
56
57**Parse at start:**
581. Check for `-r N` → set `{rounds}` (default 2, clamp 1-4)
592. Check for `-c N` → set `{councillor_count}` (default 4, clamp 3-6)
603. Check for `-s` → set `{save_mode}` = true
614. Check for `-e` → set `{economy_mode}` = true
625. Check for `-f X` → set `{focus}` = X
636. Validate: if `-c 6` without `-f` → warn and reduce to 5
647. Validate: if `-e` and Agent Teams env var set → note economy override
658. Remove all flags from input → store as `{topic}`
66
67</parameters>
68
69<state_variables>
70Capture at start and persist throughout all steps:
71
72- `{topic}` - The idea/plan to evaluate (flags removed)
73- `{rounds}` - Number of debate rounds (1-4, default 2)
74- `{councillor_count}` - Number of councillors (3-6, default 4)
75- `{save_mode}` - true if `-s` flag passed
76- `{economy_mode}` - true if `-e` flag passed
77- `{focus}` - Domain focus if `-f` passed (technical/business/UX/security/ethics/custom)
78- `{councillors}` - List of active councillor roles
79- `{team_name}` - Team name (if Agent Teams mode)
80- `{output_dir}` - Path to output directory (if save_mode)
81- `{opening_statements}` - Collected opening positions from step-02
82- `{debate_log}` - Accumulated debate exchanges from step-03
83- `{position_evolution}` - How each councillor's position changed across rounds
84</state_variables>
85
86<roles>
87For detailed councillor role descriptions, prompts, and protocols, see [references/roles.md](references/roles.md).
88
89**Summary:**
90
91| Role | Perspective | Agent Type |
92|------|-------------|------------|
93| **Moderator** | Neutral orchestrator, synthesizer | Team lead (you) |
94| **Visionary** | Potential, opportunities, best-case scenarios | `Plan` (read-only) |
95| **Critic** | Flaws, risks, failure modes, worst-case | `Plan` (read-only) |
96| **Pragmatist** | Feasibility, constraints, execution reality | `Plan` (read-only) |
97| **Innovator** | Alternatives, creative reframings | `Plan` (read-only) |
98| **Ethicist** | Human impact, moral implications, stakeholders | `Plan` (read-only, 5th) |
99| **Domain Expert** | Specialized expertise per `-f` focus | `Plan` (read-only, 6th) |
100
101</roles>
102
103<workflow>
104
105### Phase 1: Setup (step-01)
1061. Parse flags and validate configuration
1072. Determine councillor roster based on `-c N`
1083. Create team (Agent Teams) or prepare sequential execution (economy)
1094. Spawn all councillors in parallel
110
111### Phase 2: Opening Statements (step-02)
1125. Each councillor independently analyzes the topic from their perspective
1136. No cross-contamination — councillors don't see each other's positions yet
1147. Moderator collects all opening statements
115
116### Phase 3: Debate Rounds (step-03)
1178. Share all positions with every councillor
1189. Each councillor must challenge 2+ specific points from others
11910. **Peer exchange**: councillors message each other directly via SendMessage
12011. Moderator injects anti-groupthink questions between rounds
12112. Track position evolution across rounds
12213. Repeat for `{rounds}` rounds
123
124### Phase 4: Verdict (step-04)
12514. Synthesize consensus and dissensus points
12615. Build risk assessment matrix
12716. Produce structured verdict with confidence level
12817. Present strongest counter-argument (steelmanned)
12918. Save transcript (if `-s`) and cleanup team
130
131</workflow>
132
133<step_files>
134Each step is a separate file for progressive context loading:
135
136- `steps/step-01-setup.md` - Parse flags, create team, spawn councillors
137- `steps/step-02-opening.md` - Independent opening statements (no cross-contamination)
138- `steps/step-03-debate.md` - Cross-examination rounds + peer exchange
139- `steps/step-04-verdict.md` - Synthesis, verdict, cleanup
140</step_files>
141
142<entry_point>
143<step_0 name="Initialize">
144
145**FIRST ACTION - Parse flags:**
146
1471. Check for `-r N` → set `{rounds}` (default 2, validate 1-4)
1482. Check for `-c N` → set `{councillor_count}` (default 4, validate 3-6)
1493. Check for `-s` → set `{save_mode}` = true
1504. Check for `-e` → set `{economy_mode}` = true
1515. Check for `-f X` → set `{focus}` = X
1526. Validate flag combinations (see parameters section)
1537. Remove flags from input → store as `{topic}`
154
155**THEN:** Load `steps/step-01-setup.md` to begin council setup.
156</step_0>
157</entry_point>
158
159<execution_rules>
160
161- **Load one step at a time** - Only load the current step file
162- **Persist state variables** across all steps
163- **Follow next_step directive** at end of each step
164- **You are the Moderator** - Orchestrate, don't argue. Stay neutral.
165- **Economy mode** - Use sequential Task calls with subagent_type `Plan` instead of Agent Teams
166- **Peer exchange is the differentiator** - In standard mode, councillors MUST message each other directly
167- **Anti-groupthink** - If positions converge too quickly, inject challenging questions
168- **Steelman, don't strawman** - Present the strongest version of opposing arguments
169- **Read-only councillors** - Councillors analyze and argue, they NEVER modify files
170- **Always cleanup** - Shutdown all councillors + TeamDelete when done
171
172</execution_rules>
173
174<success_criteria>
175
176- All councillors produced opening statements independently
177- At least `{rounds}` rounds of cross-examination completed
178- Peer exchange occurred (councillors challenged each other directly)
179- Position evolution tracked across rounds
180- Structured verdict produced with confidence level
181- Consensus AND dissensus points identified
182- Risk assessment matrix included
183- Strongest counter-argument steelmanned
184- Team cleaned up properly (shutdown + delete)
185- Transcript saved (if `-s` flag)
186
187</success_criteria>