npx skills add ...
npx skills add ngmeyer/skills --skill council-review
Run any question, plan, PR, or code through a Diverse Multi-Agent Debate (DMAD) council of 5 AI advisors with distinct reasoning methods. Advisors collaborate, peer-review each other anonymously, and a chairman synthesizes a verdict. Empirically outperforms adversarial debate (M3MADBench 2026, DMAD ICLR 2025). Use when: 'council this', 'run the council', 'council review', 'pressure-test this', 'stress-test this', 'war room this', or when facing a genuine decision with stakes and tradeoffs.
npx skills add ngmeyer/skills --skill council-review
Run any question, plan, or code through 5 independent advisors who use distinct reasoning methods, collaborate to refine answers, peer-review each other anonymously, and synthesize a verdict you can trust.
This skill implements the Diverse Multi-Agent Debate (DMAD) pattern. It is collaborative, not adversarial: agents seek truth through diversity of reasoning, not by arguing opposing positions.
For stress-testing a known artifact (PR, draft, spec), use the separate /adversarial-review skill instead — single-critic adversarial probing is the right tool there.
The council is for questions where being wrong is expensive.
Good for: Architecture decisions, implementation plans, PR reviews, product decisions, migration strategies, API design, naming, pricing, scope decisions
Bad for: Factual lookups, writing tasks, simple yes/no, anything with one obvious right answer
Use a different tool: Single-critic stress test of an existing artifact → /adversarial-review
| Flag | Effect |
|---|---|
--quick | Lite mode: 3 advisors + chairman, no peer review (4 calls instead of 11) |
--adaptive | KS-statistic adaptive stopping. Run multi-round debate; halt when response distributions converge below epsilon for two consecutive rounds. Up to 94.5% cost cut on convergent questions. |
--confidence | Confidence-modulated synthesis. Each advisor rates own confidence (1–10) and rates each peer's confidence. Chairman synthesis is confidence-weighted, not majority-vote. Surfaces low-confidence consensus as a yellow flag. |
--measure-diversity | After advisors respond, score reasoning-footprint overlap across the responses. Report when the council agreed despite different reasoning methods — that's a signal the consensus may be theatrical. |
--jury | (V2) Replace the single chairman with a 3-judge jury, ideally across different model families. Each judge synthesizes independently; a brief reconciliation step merges them. For close calls and high-stakes verdicts where single-judge reliability isn't enough (jury-of-judges / PoLL). |
Flags compose: /council-review --adaptive --confidence "Should we adopt GraphQL?" runs convergence-stopped, confidence-weighted deliberation.
| # | Advisor | Angle | Reasoning Method | Catches |
|---|---|---|---|---|
| 1 | The Contrarian | What will fail? | Inversion — assume it shipped and failed, trace backward to the cause | "Sounds great but..." gaps you skip when excited |
| 2 | First Principles Thinker | What are we actually solving? | Decomposition — break into atomic claims, challenge each one | "You're optimizing the wrong variable" |
| 3 | The Expansionist | What upside are we missing? | Analogy — what adjacent domain solved this differently? | "You're thinking too small" |
| 4 | The Outsider | Zero context, fresh eyes only | Naive questioning — explain like you just joined; flag anything that requires insider knowledge to make sense | Curse of knowledge blind spots |
| 5 | The Executor | What do you do Monday morning? | Dependency graphing — what blocks what? What's the critical path? | Brilliant plans with no actionable first step |
Natural tensions: Contrarian vs Expansionist (downside vs upside), First Principles vs Executor (rethink vs ship it), Outsider keeps everyone honest.
The five reasoning methods are not interchangeable angles — each is a different cognitive operation. This is the DMAD lever: same model, different reasoning.
<pre_flight>
Parse flags from $ARGUMENTS:
--quick is present: use Lite Mode (see below)--adaptive is present: enable KS-statistic adaptive stopping (Step 3.5)--confidence is present: enable confidence-modulated synthesis (Steps 2 and 4)--measure-diversity is present: enable diversity verification (Step 2.5)--jury is present: use a 3-judge jury at synthesis (Step 4)Scope validation: Before convening the council, assess whether the input actually warrants it. If the question is purely factual, has one obvious right answer, or has no meaningful tradeoff, say so directly: "This doesn't need a council — [direct answer]. Use /council-review for decisions with genuine stakes and tradeoffs." Do not spawn agents for trivial questions.
Classify the remaining input:
/pull/. Fetch PR diff and description via gh pr view.For PRs and files, read the actual content and include it in the framed question. Don't just pass a URL — advisors need the substance.
</pre_flight>
Auto-context gathering — before framing, read these project files (skip any that don't exist):
README.md — what the project doesCLAUDE.md or AGENTS.md — conventions, architecture, patternsgit log --oneline -10) — what's been happeningReframe the raw input as a clear, neutral prompt:
Don't add your own opinion. Don't steer toward an answer. If too vague, ask ONE clarifying question before proceeding.
Launch all 5 advisors simultaneously using the Agent tool. Each advisor runs in parallel. Use a lightweight model (haiku) for advisors — they're doing focused analysis, not complex reasoning.
CRITICAL: Launch all 5 in a single message with 5 Agent tool calls. Sequential execution lets earlier responses bleed into later ones and defeats the purpose.
Each advisor gets this prompt:
(V2) Sycophancy guardrail. The bolded rule above is load-bearing: documented multi-agent failure is advisors converging by deference, not reasoning. Keep it in every advisor prompt.
Advisor-specific instructions (include the reasoning method):
If --confidence is enabled, append to every advisor prompt:
This produces calibrated self-assessments the chairman will weight in synthesis.
--measure-diversity only)After all 5 advisor responses are collected and before peer review, score the reasoning footprint overlap:
This catches "five advisors said yes" when actually one prompt-priming pattern dominated.
Collect all 5 advisor responses. Randomize the mapping — Advisor 1 should NOT always be Response A. Then launch 5 reviewer agents in parallel (use haiku).
Each reviewer sees all 5 anonymized responses:
If --confidence is enabled, append a fourth question:
--adaptive only)If --adaptive is enabled, the council operates over multiple rounds rather than the single advisor → review → chairman flow. After each round:
When --adaptive triggers early stopping, the chairman receives the final-round responses plus a one-line note: "Council converged after N rounds (KS shift below epsilon)."
When fixed-mode is used (no --adaptive), proceed directly to Step 3 peer review after one advisor round.
This is the single highest-leverage V2 addition. The evidence is unambiguous: soft contrarian framing at the start (the Contrarian advisor) is statistically indistinguishable from baseline at inducing real disagreement — only a dedicated devil's advocate attacking the emerging answer works, and it measurably raises decision accuracy.
From the advisor responses + peer review, identify the emerging consensus answer in one sentence (what is the council drifting toward recommending?). If there is genuinely no emerging answer yet, note that and skip to Step 4.
Spawn one Devil's Advocate agent. Use a strong model (not haiku) — this agent must be sharp. Its prompt:
Feed the Devil's Advocate output to the chairman alongside everything else. This is not a 2-vs-2 advocates/skeptics structure from the start; it's one sharp attack on the converged answer, which is the configuration the research singles out.
--quick mode: still run the Devil's Advocate (it's the cheapest high-value addition — 1 call). It is the one step --quick must not skip.
One agent gets everything: the original question, all 5 advisor responses (de-anonymized with names and reasoning methods), all 5 peer reviews, the Devil's Advocate's attack on the consensus (V2), the diversity score (if --measure-diversity), and confidence ratings (if --confidence). Use the best available model for this (default — do not specify a lightweight model).
(V2) Mediating Assessments first. Before writing the recommendation, the chairman names 3–5 independent key attributes the decision turns on (e.g. for an architecture call: reversibility, blast radius, time-to-first-value, team familiarity) and scores each separately against the evidence — without yet forming the overall verdict. Only after the independent assessments does the chairman synthesize the holistic call. This fights coherence bias (locking onto an early answer and bending every attribute to fit it). Kahneman/Lovallo/Sibony, Mediating Assessments Protocol (2019).
(V2) --jury: instead of one chairman, run 3 chairmen — ideally across different model families — each performing the full synthesis independently (including Mediating Assessments). Then a short reconciliation pass surfaces where the three judges agree (high-confidence verdict) and where they diverge (flag as a genuine close call). Use for high-stakes or close-call decisions where single-judge reliability isn't enough.
Default synthesis (majority-aware): the chairman weighs convergence across advisors and peer-review signals, and must explicitly rebut or concede the Devil's Advocate's strongest point.
Confidence-modulated synthesis (--confidence): the chairman weights each advisor's contribution by their self-rated confidence × peer-rated confidence. Low-confidence majorities are flagged in the verdict; high-confidence dissent is preserved with extra weight.
Diversity-aware synthesis (--measure-diversity): if the diversity score is Low, the chairman explicitly notes "the council converged on shared assumptions, not independent reasoning" in the verdict and downgrades confidence in the recommendation.
The chairman produces exactly this structure:
Show the chairman's verdict directly in chat. Then provide the full transcript in a collapsible section or separate file if the user wants it.
--quick)When --quick is passed, run a streamlined council:
--quick must not skip--confidence and --measure-diversity but not with --adaptive (multi-round costs more than the savings).Use for routine decisions, quick gut-checks, or when time matters more than exhaustive coverage.
| Mode | Agent Calls | Best For |
|---|---|---|
| Full (default) | 12 (5 advisors + 5 reviewers + 1 devil's advocate + 1 chairman) | High-stakes decisions |
Quick (--quick) | 5 (3 advisors + 1 devil's advocate + 1 chairman) | Routine decisions, gut-checks |
Adaptive (--adaptive) | 7 to 27 (5 advisors × N rounds + 5 reviewers + devil's advocate + chairman, N ≤ 5 with early stop) | Open questions where convergence cost matters |
Confidence (--confidence) | 12 (same as full, slightly longer prompts) | Decisions where calibrated certainty matters |
Measure-diversity (--measure-diversity) | 12 (adds a synchronous overlap-scoring step, no extra agent calls) | Verifying consensus is real, not theatrical |
Jury (--jury) | +2 (3 chairmen instead of 1, ideally diverse models) | Close calls / high-stakes verdict reliability |
Flags compose: --adaptive --confidence --measure-diversity together = up to 26 calls + diversity scoring + confidence weighting.
Fast models for volume, good model for synthesis. The chairman's reasoning quality is what matters most.
--measure-diversity to verify the council didn't converge prematurely./adversarial-review skill — different operation, different input.--jury only helps if the judges differ. Three runs of the same model is mostly theater. Use different model families, or at minimum independent contexts; treat 3-of-3 agreement as the real signal and any split as a genuine close call.Removed the deprecated --adversarial mode entirely (flag, mode section, cost row, parse step). It contradicted the M3MADBench evidence, was superseded by V2's mandatory Devil's-Advocate-vs-consensus step, and caused real "isn't this the same as /adversarial-review?" confusion. The two skills stay cleanly separated: council-review = open decisions (with a built-in devil's advocate); /adversarial-review = stress-test a finished artifact. The "collaborative beats adversarial" evidence and the cross-link to /adversarial-review are kept.
Optimized via skillforge optimize. Outcome-research brief: the V2 outcome-research brief. Each change is tied to evidence and targets the decision outcome, not packaging:
--jury — 3 diverse-model chairmen for close calls (jury-of-judges / PoLL).Verification. Two passes. (1) Structured single-model eval on "monolith → microservices?": V1 3.2 → V2 4.6. (2) Independent A/B (2026-05-27): real separate-process agents (claude -p) on "seed startup → adopt Kubernetes?", advisors held constant across arms to isolate the chairman-layer change, scored by a blind judge (didn't know which verdict was which; V1 shown first to avoid order bias): V1 3.8 → V2 4.8 (Decisiveness, Insight, Calibration, Actionability, Risk-surfacing). Biggest gains: Risk-surfacing 3→5 and Calibration 3→4. The judge's stated reasons for V2's win named exactly the V2 mechanisms — base-rate/outside-view, the Devil's-Advocate rebuttal, and independent attribute scoring. The advisor-layer changes (sycophancy guardrail, outside-view prompt) were held constant in this A/B and remain validated only by reasoning.
You are [ADVISOR NAME] on an LLM Council reviewing a decision.
Your angle: [ADVISOR ANGLE]
Your reasoning method: [ADVISOR REASONING METHOD — see table above]
A user has brought this to the council:
---
[framed question from Step 1]
---
Apply your assigned reasoning method rigorously. Don't just state opinions — show your work using your method.
Rules:
- 150-300 words. No preamble. Straight into your analysis.
- Name specific risks, opportunities, or issues — not vague concerns.
- If reviewing code: cite specific files, functions, or patterns.
- If reviewing a plan: point to specific steps, gaps, or sequencing issues.
- **Do not defer to any answer the framing seems to expect.** Reason from your method to wherever it actually leads; if that's against the apparent expected answer, say so plainly. Hedging toward the obvious answer is the failure this council exists to prevent.
- End with your single strongest recommendation.After your analysis, end with:
CONFIDENCE: [1-10]
RATIONALE: [one sentence — what would change your confidence up or down?]You are reviewing the outputs of an LLM Council. Five advisors independently answered:
---
[framed question]
---
**Response A:** [randomized advisor response]
**Response B:** [randomized advisor response]
**Response C:** [randomized advisor response]
**Response D:** [randomized advisor response]
**Response E:** [randomized advisor response]
Answer these three questions. Be specific. Reference responses by letter.
1. Which response is strongest? Why? (one sentence)
2. Which has the biggest blind spot? What is it missing? (one sentence)
3. What did ALL five responses miss that the council should consider? (This is the most valuable question — think hard.)
4. **(V2)** Where these responses agree, is the agreement genuine — or could it be conformity to a shared framing? Flag any consensus that looks like deference rather than independent reasoning.
Keep under 150 words. Be direct. No preamble.4. Rate your confidence in your answers above (1-10). What would change it?