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
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
README
synced Oct 23, 2026claude-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:
| Set | Critics | When to use |
|---|---|---|
ui-ux | visual-designer, cro-analyst, a11y-auditor, target-user, skeptic | Live or staged web page review |
code-review | security, performance, maintainability, junior-comprehension, skeptic | PR diff or code change review |
incident-debug | sre, app-engineer, recent-changes, customer-impact, skeptic | Production incident triage |
architecture | scalability, operability, cost, security, future-eng, skeptic | ADR / system design review |
model-review | stats-rigor, market-aware, recreational-user, overfitting-skeptic, edge-decay | Prediction model performance review |
strategy | cfo, ceo, customer, contrarian, optimist, pessimist, skeptic | Business / strategic decisions |
Or define your own — see "Adding a custom persona set" below.
How it runs
When you invoke panel <set>, Claude Code:
- Reads the persona definitions for your chosen set
- Locates the evidence (path you provided, or asks)
- Dispatches the critics in parallel via Agent subagents (each gets only their lens + the evidence)
- Runs the skeptic sequentially after, with all critics' outputs in context (their job: argue against)
- Runs the synthesizer (different model tier) over the original evidence + all critique files
- Writes
panel-output/<timestamp>_<set>/containing:critique-<persona>.mdfor each criticcritique-skeptic.mdbacklog.md(the synthesized output)
- 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:
- 4-6 critic personas, each with:
- A unique name (used as
critique-<name>.mdfilename) - Model + temperature +
sees_screenshotsflag - A
system_promptblock encoding the lens's evaluation framework
- A unique name (used as
- One skeptic persona — always
sees_other_critiques: YES, runs sequentially after critics - A synthesizer config — always Opus by default, with
weight_by_lensguidance 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: