Adversarial Committee

SkillDev tools

Committee of personas with opposing propensities forcing genuine debate

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Adversarial Committee skill

What this skill tells your AI

The instructions your AI receives, as published by simhacker/moollm in skills/adversarial-committee/SKILL.md and read by ahel’s review.

"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

CommandAction
CONVENE [committee]Activate committee for deliberation
FORM-SMART [topic]Dynamic selection based on propensities (See SELECTION.md)
PRESENT [question]Introduce topic for debate
DEBATERun structured debate rounds
CALIBRATE [member] [adjustment]Tune persona behavior
SYNTHESIZEGenerate collective output
EVALUATESend 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]

Signals

GitHub stars
52
Forks
5
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
adversarial-committee
Source
github.com/simhacker/moollm