From arena
Orchestrates multi-expert debates with real-world personas who argue directly with each other until convergence. Use when the user wants multiple opposing viewpoints, expert panel discussion, or structured debate on a complex question. Don't use for quick questions, single-expert analysis, implementation planning, or structured thinking without debate.
npx claudepluginhub izzzzzi/izteam --plugin arenaThis skill is limited to using the following tools:
The **Moderator** orchestrates an expert arena. The goal: select experts, provide context, and **let them argue among themselves**. The Moderator observes and intervenes only when necessary.
Assembles teams of real experts for independent evaluation of options, comparing approaches with diverse pros/cons maps across dev, product, business, or any domain. Activate for 'compare variants', 'best approach', or expert opinions.
Orchestrates multi-agent debates with 2-5 dynamic agents in Challenge (select best variant), Strategy (deep analysis with proposals), or Critic (find weaknesses) modes. Triggers on debate, challenge, compare, critique prompts.
Conducts multi-persona debates for founder decisions with 4 grounded personas (Operator, Buyer, Investor, Contrarian) across structured rounds. Outputs transcript, recommendation, and decision log.
Share bugs, ideas, or general feedback.
The Moderator orchestrates an expert arena. The goal: select experts, provide context, and let them argue among themselves. The Moderator observes and intervenes only when necessary.
Key principle: Experts communicate DIRECTLY with each other via SendMessage. The Moderator does NOT relay messages. The Moderator does NOT manage rounds. Experts argue until they reach common ground themselves.
Works for ANY domain: development, product, strategy, business, science, philosophy.
Determine:
Aim for 5. Fewer only if the domain is narrow.
See references/expert-selection-guide.md for the full selection criteria (diversity requirements, angle types, Devil's Advocate) and arena presentation template.
Show the user: Arena Question, Expert Panel table, Devil's Advocate designation. See the template in references/expert-selection-guide.md.
"The Arena is preparing. Gathering context for the debates... ๐๏ธ"
Launch 2-4 arena:researcher agents IN PARALLEL in a single message. These are one-shot agents โ they are NOT part of the team.
Researcher 1: "Study the project architecture, stack, and existing patterns.
QUESTION CONTEXT: [question]
FOCUS: Code structure, key modules, dependencies."
Researcher 2: "Find current best practices and expert opinions.
QUESTION CONTEXT: [question]
FOCUS: Via WebSearch โ recent articles, discussions, approach comparisons."
Researcher 3: "Analyze constraints and tech debt.
QUESTION CONTEXT: [question]
FOCUS: Existing solutions, dependencies, potential conflicts."
Researcher 1: "Find current data, statistics, and trends."
Researcher 2: "Find expert positions and notable debates on the topic."
Researcher 3: "Find case studies, precedents, and real-world examples."
Once the researchers return, compile findings into a unified briefing package:
## Arena Briefing
### Project Context (if applicable)
[From Researcher 1]
### Current Data and Practices
[From Researcher 2]
### Constraints and Precedents
[From Researcher 3]
TeamCreate(team_name="arena-<topic-slug>")
"Context gathered. Releasing the experts into the arena โ๏ธ"
Launch all experts in a single message โ each receives a full init prompt:
Task(
subagent_type="arena:expert",
team_name="arena-<topic-slug>",
name="<expert-slug>",
prompt="# You are [Full Name]
## Your Persona
[Description: books, principles, characteristic style. 3-5 sentences]
[If Devil's Advocate โ specify the special role and VETO right]
## Debate Question
[Full question statement]
## Briefing
[Compiled briefing package โ IN FULL]
## Other Participants
- **[slug-1]** โ [Name 1] ([angle]): [expected position]
- **[slug-2]** โ [Name 2] ([angle]): [expected position]
...
## Evidence Rules
- Every argument MUST cite evidence with R (reliability) and CL (congruence) ratings
- You can challenge other experts' R/CL ratings with justification
- Your final position MUST include an evidence summary table with WLNK trust score
## Begin!
1. Broadcast your position to ALL participants โ with evidence and R/CL ratings
2. Then argue directly with those you disagree with โ challenge their evidence
3. When you believe common ground has been reached โ notify team-lead with evidence summary"
)
Names (slug): lowercase Latin with hyphens: martin-fowler, dhh, nassim-taleb
Experts on their own:
| Situation | Action |
|---|---|
| Expert silent for too long | SendMessage(recipient="slug", content="You haven't weighed in on [X] yet. What do you think?") |
| Argument drifted off-topic | SendMessage(type="broadcast", content="Let's return to the question: [X]") |
| Two experts stuck in a loop | SendMessage(recipient="third-slug", content="Arbitrate the dispute between A and B on [X]") |
| No progress toward convergence | SendMessage(type="broadcast", content="Provide an interim summary. Where do you agree? Where do you disagree?") |
| More than 15 minutes elapsed | SendMessage(type="broadcast", content="Time's up. Send your final positions to team-lead") |
When significant debate events occur, provide real-time commentary for the user.
See references/live-commentary-rules.md for the full commentary protocol (sources, event types, format, tone).
| Situation | Action |
|---|---|
| Researcher fails in Phase 1 | Proceed with reduced briefing. Experts receive less context but can still debate. |
| Expert agent fails to spawn | Proceed with N-1 experts. Minimum 2 experts required for meaningful debate. If fewer than 2, report failure. |
| Expert goes silent after spawning | Send nudge via SendMessage. If no response after 2 nudges, proceed without that expert. |
| No convergence after 20 minutes | Broadcast timeout. Request final positions. Compile synthesis from available positions. |
| SendMessage fails | Retry once. If still fails, note communication gap and proceed with available data. |
flowchart TD
FP{"3+ of N experts<br/>submitted final positions?"}
FP -->|YES| VETO{"VETO active?"}
FP -->|NO| IDLE{"All experts idle?"}
IDLE -->|YES| BCAST["Broadcast: Submit final positions"]
BCAST --> WAIT5["Wait 5 min"] --> SYNTH
IDLE -->|NO| TIMEOUT{">20 min of active debate?"}
TIMEOUT -->|YES| TO_BCAST["Broadcast timeout<br/>Request final positions"] --> SYNTH
TIMEOUT -->|NO| MON["Continue monitoring"]
VETO -->|NO| SYNTH["Proceed to Synthesis"]
VETO -->|YES| V_BCAST["Broadcast VETO to all<br/>Wait for responses"]
V_BCAST --> V_CHECK{"VETO withdrawn?"}
V_CHECK -->|YES| SYNTH
V_CHECK -->|NO| DISAGREE["Record disagreement<br/>in synthesis"] --> SYNTH
When the debates are concluded:
Before creating the document:
Trust = min(evidence_scores)Compile the synthesis document using the template from references/synthesis-template.md.
The template includes Trust Summary, Evidence Catalog, and contested evidence resolution.
Save the document to docs/arena/YYYY-MM-DD-[topic-brief].md
SendMessage(type="shutdown_request", recipient="<slug-1>", content="Arena concluded!")
SendMessage(type="shutdown_request", recipient="<slug-2>", content="Arena concluded!")
...
Wait for confirmations, then: TeamDelete()
"Arena concluded. Results saved to
docs/arena/.... Winner: [position] (L[level], trust: [score]). Would you like to dive deeper into any aspect, or shall we move to action? Note: experts recommend โ the human makes the final call."