Skip to content
Conduit

skill

claude-panel

Multi-persona AI review skill for Claude Code. Spawns 4-6 expert subagents in parallel + an adversarial skeptic, then synthesizes with a different model to avoid self-preference bias. Preserves dissen

jakefitz5/claude-panelcommunitylistedunreviewed

Set up

Skills are installed by placing their folder where your agent loads skills.

The download comes from github.com/jakefitz5/claude-panel itself, not from our server, so what you get is exactly what its author published.

Install instructions come from the README

Skills do not use an MCP config. Follow the steps in the README below.

README

synced Oct 23, 2026

claude-panel

A Claude Code skill that does what single-LLM critique can't: real multi-perspective review.

When you ask one Claude to review your code/site/incident/architecture, you get one opinion. Sometimes it's right. Often it's hedged, sycophantic, or pattern-matched to whatever it's seen most. This skill spawns 4–6 expert subagents in parallel, each evaluating the same evidence through a different orthogonal lens, then runs an adversarial skeptic that argues against their findings, and finally synthesizes with a different model to avoid self-preference bias.

The output preserves dissent (no forced consensus), cites which persona flagged each item, and honestly admits what the evidence couldn't assess.

Why this works (and where it fails)

The architecture is research-backed:

  • Heterogeneous critics > homogeneous ones — "Stop Overvaluing MAD" (Zhang et al, 2025) showed homogeneous debate often underperforms single-agent CoT; heterogeneity is the rescue
  • Independence prevents groupthink — critics see only the evidence, never each other's outputs (Liang et al, Du et al)
  • Skeptic catches sycophancy — "Peacemaker or Troublemaker" documents critic-to-critic sycophancy; an explicit adversary breaks it
  • Synthesizer ≠ critic model family — judges silently overweight their own family's outputs (Panickssery 2024); the synthesizer uses Opus when critics are Sonnet
  • Preserve dissent, don't average — "Beyond Majority Voting" shows weighted aggregation provably beats majority vote and rewards surprisingly-correct minorities

Failure modes (and how to spot them) are documented in references/design-principles.md. Real examples include inflated severity counts, sycophancy across critics on conventional best practices, and tool-capture artifacts misdiagnosed as real bugs.

Install

git clone https://github.com/jakefitz5/claude-panel.git ~/.claude/skills/panel

Verify the skill is registered by opening Claude Code and typing /panel — autocomplete should show the skill.

Use it

panel <set-name> [evidence-path-or-description]

Six pre-built persona sets:

SetCriticsWhen to use
ui-uxvisual-designer, cro-analyst, a11y-auditor, target-user, skepticLive or staged web page review
code-reviewsecurity, performance, maintainability, junior-comprehension, skepticPR diff or code change review
incident-debugsre, app-engineer, recent-changes, customer-impact, skepticProduction incident triage
architecturescalability, operability, cost, security, future-eng, skepticADR / system design review
model-reviewstats-rigor, market-aware, recreational-user, overfitting-skeptic, edge-decayPrediction model performance review
strategycfo, ceo, customer, contrarian, optimist, pessimist, skepticBusiness / strategic decisions

Or define your own — see "Adding a custom persona set" below.

How it runs

When you invoke panel <set>, Claude Code:

  1. Reads the persona definitions for your chosen set
  2. Locates the evidence (path you provided, or asks)
  3. Dispatches the critics in parallel via Agent subagents (each gets only their lens + the evidence)
  4. Runs the skeptic sequentially after, with all critics' outputs in context (their job: argue against)
  5. Runs the synthesizer (different model tier) over the original evidence + all critique files
  6. Writes panel-output/<timestamp>_<set>/ containing:
    • critique-<persona>.md for each critic
    • critique-skeptic.md
    • backlog.md (the synthesized output)
  7. Presents the TL;DR, top findings, and evidence gaps

Output format

The synthesized backlog.md always has these sections:

  • TL;DR (2-4 sentences, highest-leverage items)
  • HIGH CONFIDENCE — 3+ critics agreed
  • MINORITY OPINION — 1-2 critics flagged (surfaced, not buried)
  • DISPUTED — critics conflicted, with both sides + recommendation
  • FLOW-LEVEL / META findings — cross-cutting issues no single critic could see
  • Dropped after skeptic review — items the skeptic invalidated (with reason)
  • Notes on evidence gaps — what this couldn't assess (next captures needed)

Cost

Routes through Claude Code's Max subscription via Agent subagents (no separate API key needed) — ~230K tokens per panel run, well within Max quotas.

For paid API users, ~$0.55/run with Sonnet critics + Opus synthesizer, or ~$1.50/run all-Opus.

Adding a custom persona set

To add a new domain, append a ## set: <name> section to references/personas.md. Required structure:

  1. 4-6 critic personas, each with:
    • A unique name (used as critique-<name>.md filename)
    • Model + temperature + sees_screenshots flag
    • A system_prompt block encoding the lens's evaluation framework
  2. One skeptic persona — always sees_other_critiques: YES, runs sequentially after critics
  3. A synthesizer config — always Opus by default, with weight_by_lens guidance for which persona's opinion dominates which type of issue

Lenses must be orthogonal. If two would give the same answer on the same evidence, collapse them into one. The shared rules (anti-sycophancy, anti-vagueness, anti-prompt-injection) are appended automatically by the orchestrator.

When in doubt, copy the ui-ux set as a template.

Why I built this

Single-LLM critique has a real ceiling. The model defaults to helpful-and-positive, drifts toward conventional best practice, and can't tell you when its own recommendation is wrong for your specific case.

The first project that motivated this: I wanted brutal, specific, evidence-grounded feedback on a live site I was iterating on. A single Claude prompt gave me hedged generic advice. A multi-persona panel — with an explicit skeptic — caught real bugs the per-persona analysis would have shipped (an inflated severity count, a sycophantic recommendation that conflicted with the actual product setup, a tool-capture artifact 4 LLMs collectively misdiagnosed as a real bug).

The architecture is domain-agnostic. UI/UX was just the first use case.

License

MIT. See LICENSE.

Contributing

PRs welcome for:

  • New persona sets (data-pipeline review, RFP response review, hiring panels, etc.)
  • Sharper prompts on existing sets (especially based on real-world failure cases — these get cataloged in references/design-principles.md)
  • Documentation improvements

Open an issue first if you want to discuss a bigger change.

Credits

Research-backed by:

↑↓ navigate openesc close