| name | adversarial-committee |
| description | Committee of personas with opposing propensities forcing genuine debate |
| allowed-tools | read_file, write_file |
| tier | 1 |
| protocol | ADVERSARIAL-COMMITTEE |
| tags | debate, decision, ensemble, storytelling |
| credits | Mike Gallaher — core methodology |
| related | roberts-rules, rubric, evaluator, soul-chat, speed-of-light, card |
Adversarial Committee
"Ensemble inference over the latent space of possible framings."
Multiple personas with incompatible values debate to surface blind spots.
The Roster
committee:
maya:
propensity: paranoid_realism
risk_tolerance: low
epistemology: assume_bad_faith
surfaces: "Political dynamics, hidden agendas, traps"
voice: "What aren't they telling us?"
frankie:
propensity: idealism
risk_tolerance: high
epistemology: assume_good_faith
surfaces: "Value conflicts, missed opportunities"
voice: "What if this is exactly what it seems?"
joe:
propensity: continuity_guardian
risk_tolerance: medium
epistemology: trust_precedent
surfaces: "Institutional memory, what worked before"
voice: "We tried this in 2019..."
vic:
propensity: evidence_prosecutor
risk_tolerance: medium
epistemology: prove_it
surfaces: "Data gaps, unverified claims"
voice: "Show me the numbers."
tammy:
propensity: systems_thinking
risk_tolerance: varies
epistemology: trace_feedback_loops
surfaces: "Unintended consequences, emergent effects"
voice: "If we do X, then Y will respond by..."
Formation
# committee/COMMITTEE.yml
committee:
name: "Strategy Review Board"
purpose: "Evaluate client engagement decision"
members:
- card: maya
role: devil's_advocate
- card: frankie
role: opportunity_scout
- card: joe
role: historian
- card: vic
role: evidence_checker
- card: tammy
role: systems_analyst
protocol: roberts-rules
evaluation: independent
rubric: client-evaluation-rubric.yml
Debate Protocol
debate:
rounds:
- opening_statements:
each_member: "State position in 2-3 sentences"
- cross_examination:
pattern: "Maya challenges Frankie, Vic challenges Maya..."
goal: "Surface hidden assumptions"
- evidence_phase:
vic_leads: "What do we actually know?"
others_contribute: "Supporting/contradicting data"
- synthesis:
tammy_maps: "Feedback loops and consequences"
all_contribute: "Refined positions"
- final_positions:
each_member: "Updated stance with confidence"
Speed of Light Simulation
Within ONE LLM call:
simulation:
- maya: "This client's reputation for scope creep concerns me."
- frankie: "But their budget is aligned and they're excited!"
- vic: "What's our data on scope creep? Past projects?"
- joe: "We had a similar client in 2022. It went badly."
- tammy: "If we take them on, our capacity for other work drops. If they creep, we can't serve existing clients..."
- maya: "See? Trap."
- frankie: "Unless we build in explicit scope boundaries..."
All personas speak authentically. No entity knows more than it should.
Calibration
2-3 iterations tuning character behavior:
calibration:
problems:
excessive_conflict: "Reduce Maya's paranoia from 9 to 7"
premature_consensus: "Increase Frankie's risk tolerance"
dead_air: "Give Tammy more initiative"
goal: "Stable equilibrium where genuine exploration happens"
Output Format
deliberation:
question: "Should we take Client X?"
positions:
maya: { stance: oppose, confidence: 0.8 }
frankie: { stance: support, confidence: 0.7 }
joe: { stance: defer, confidence: 0.6 }
vic: { stance: need_data, confidence: 0.5 }
tammy: { stance: conditional, confidence: 0.7 }
key_tensions:
- "Revenue opportunity vs. capacity risk"
- "Good faith assumption vs. scope creep history"
evidence_gaps:
- "No data on this client's actual scope creep rate"
- "Unknown: their internal approval process"
recommendation: "Conditional engagement with explicit scope boundaries"
confidence: 0.65
for_evaluator: true # Goes to independent assessment
Commands
| Command | Action |
|---|---|
CONVENE [committee] |
Activate committee for deliberation |
PRESENT [question] |
Introduce topic for debate |
DEBATE |
Run structured debate rounds |
CALIBRATE [member] [adjustment] |
Tune persona behavior |
SYNTHESIZE |
Generate collective output |
EVALUATE |
Send to independent evaluator |
Integration
graph LR
Q[Question] --> C[Committee Room]
C -->|SPEED-OF-LIGHT| D[Debate]
D --> O[Output]
O -->|THROW| E[Evaluator Room]
E -->|RUBRIC| S[Score]
S -->|if fail| C
S -->|if pass| R[Recommendation]