Run your hard decision past an AI council in Claude Code
One skill, about three minutes: five AI advisers argue about your decision, challenge each other blind, and a chairman tells you what to do this week.
Luís Rodrigues8 min read
Ask an AI whether your plan is good and it usually says yes, with a few gentle caveats. That's one voice, and it leans towards agreeing with you. Andrej Karpathy's LLM Council works differently: several models answer the same question, each ranks the others without knowing who wrote what, and a chairman writes the final answer.
I built a version of it for Claude Code, as a skill: five advisers that each run as their own agent, and a chairman who decides. Setup takes five minutes, and each council about three.
The one rule
Use the council when being wrong is expensive: a price change, a job offer, a hire, a move. For a quick fact or a yes or no question, it's three minutes and a long report for an answer you already had.
The council
The plan · about three minutes, five advisers and a chairman
- The contrarian looks for what will fail.
- The first-principles thinker questions your assumptions.
- The expansionist finds the upside you missed.
- The outsider challenges what insiders take for granted.
- The executor turns it into what you do Monday morning.
Then they challenge each other, and a chairman gives you one decision and one next step.
Each adviser is its own agent: a separate Claude with a fresh context, so it only sees your decision and its own lens. In round two the same five agents come back. Each one still remembers its own answer, reads the other four labelled A to E, ranks them and says where it disagrees. The chairman is the Claude you typed into. It reads everything and decides. All six run on Opus, even if your session is on Sonnet.
Before you start
- Claude Code. In a terminal, or the Code tab of the Claude desktop app.
- A folder for the reports. Each council saves a
council-folder wherever you start Claude Code.
Install the skill
- Create the folder
~/.claude/skills/llm-council/. - Save the text below in it as
SKILL.md. - Start a new Claude Code session.
- Type
/llm-councilfollowed by your decision, with your numbers and your limits:/llm-council Should we raise our day rate from 600 to 850 euros for new clients in January? Our three biggest clients are on the old rate.
If you type /llm-council on its own, it asks you about the decision first, one question at a time.
---
name: llm-council
description: Runs a five-adviser decision council as parallel subagents on Opus (contrarian, first-principles thinker, expansionist, outsider, executor), has the same five challenge each other anonymously, then gives one chairman's verdict and saves an HTML report. Use when the user types /llm-council, says "council this", or explicitly asks for a council on a high-stakes decision. Not for lookups or quick yes/no questions.
argument-hint: "[the decision you're stuck on]"
model: opus
---
# LLM council
DECISION: $ARGUMENTS
If the decision above is empty or one vague line, ask the user one question at a time (their situation, their constraints, what a good outcome looks like) and wait for each answer. Do not start any agent until you have the decision.
The council is five agents and you. You are the chairman. Never write an adviser's answer or challenge yourself, and never start more than five agents.
Copy this checklist and tick it off as you go:
```
Council progress:
- [ ] 1. Five advisers answered (5 Agent calls, one message)
- [ ] 2. The same five challenged each other (5 SendMessage calls, one message)
- [ ] 3. Chairman's verdict written
- [ ] 4. HTML report saved
```
## The advisers
- **Contrarian**: looks only for what will fail. Every reason this is wrong, what breaks first, the worst plausible outcome.
- **First-principles thinker**: questions the user's assumptions, drops the standard frameworks, reduces the problem to what is true and rebuilds the answer.
- **Expansionist**: finds the upside the user missed. The outcome if this works far better than expected, and what a bigger version opens up.
- **Outsider**: knows nothing about the user's field. Challenges what insiders take for granted and asks the plain questions they stopped asking.
- **Executor**: ignores strategy. Exactly what the user does on Monday morning and through the week: the email, the conversation, the file, the decision to put off.
## 1. The council answers
Send five Agent calls in a single message, one per adviser, so they run in parallel. On every call use `subagent_type: general-purpose`, `model: opus` and `run_in_background: false`, and make the description the adviser's name (for example "Contrarian").
Each prompt contains the decision, that adviser's lens from the list above, and these rules: "You are one adviser on a five-person council. Stay in your lens; do not balance it with other views. Do not name or describe your role anywhere in the answer. Do not use any tools. Answer in under 300 words."
Write down the `agentId` each call returns, next to the adviser's name. You need it in step 2.
## 2. They challenge each other
Run `pwd`, then create a folder `council-YYYYMMDD-HHMM/` inside it (today's date and time). Build every file path from the `pwd` output exactly, character for character.
Shuffle the five answers and label them Response A to E. Keep the mapping to yourself. Delete any line or phrase that reveals an adviser (for example "Contrarian read:" or "As the outsider"), and change nothing else. Write the decision and the five lettered responses to `responses.md` in the folder, once.
If the SendMessage tool isn't loaded, load it with ToolSearch (`select:SendMessage`). Then send five SendMessage calls in a single message, one to each adviser's `agentId` from step 1. Do not start new agents for this step. Each message:
"Round two. Your answer is Response [LETTER]. Read [FULL PATH TO responses.md] with the Read tool and skip your own. Rank the other four from 1 to 4. For each, give its strongest point and its biggest flaw, judged through your own lens. Then name the one point in the council you most disagree with, and why. Use no tool other than Read. Under 300 words."
The replies come back one by one. Wait until all five advisers have replied before step 3.
## 3. Chairman
Read all five answers and all five challenges. First, say which response the council ranked highest overall (add up the ranks, lowest wins) and where it disagreed most.
Then the verdict, under 250 words. No hedging, no "both sides".
- **Decision**: what to do
- **Strongest reason**: the one reason that carries it
- **Biggest risk**: the one thing to watch
- **Next 7 days**: one specific step
- **What would flip it**: the one assumption that, if wrong, changes the decision
## 4. Report
Write `report.html` in the same `council-YYYYMMDD-HHMM/` folder with the Write tool. One self-contained file with no external scripts: the decision, the chairman's verdict at the top, then the five answers and the five challenges in full (named, not summarised), the letter-to-adviser mapping and the rank totals. Readable on a phone.
Then show the chairman's verdict in chat, with the report path.
If any step did not run through the five adviser agents, say so at the top of the verdict and in the report.What you'll see: five agents start at once, named Contrarian, First-principles thinker, Expansionist, Outsider and Executor. When they've answered, Claude sends the same five a second message and they challenge each other. Then the chairman's verdict appears in the chat, and the full report is saved as report.html in the new council- folder.
How to read the result
Read the chairman first: the decision, the strongest reason, the biggest risk and one step for the next seven days. Then read "What would flip it". That's the assumption to check before you act.
In the report, go to the answer the council ranked lowest. A low rank sometimes means the answer was weak, and sometimes it means the point was unwelcome, so check which.
Heads up: On claude.ai you can upload a skill under Customize, then Skills (Anthropic's help page), but Anthropic says subagents are available in Claude Code and the Agent SDK. There the council runs as one reply, with one model writing every adviser.
Common mistakes
- Giving the council one line. "Should I raise my prices?" gets generic advisers. Add your numbers, your limits and what a good outcome looks like.
- Reading the five answers and skipping the chairman. On their own, five strong opinions can leave you more stuck than before. Read the verdict, then the lowest-ranked answer.
- Running it again until it agrees with you. If you run the same decision twice, compare the "What would flip it" lines, not the verdicts, because those tell you what to find out.
The honest part
- It's still one model. Karpathy's council mixes models from different companies. Here all five advisers are Claude, so they share the same blind spots and can agree too easily. Separate agents stop them copying each other's answers, though they still think alike.
- The numbers are guesses. Advisers invent plausible figures, like a break-even point or a market rate. Check every number before you act on it.
- Black out what isn't yours. Remove salaries, client names and account details before you type the decision.
- Some calls aren't for a council. For legal, medical or big money decisions, use it to prepare questions for a real professional. If the decision is weighing on your mental health, talk to someone you trust or a professional, not a panel of agents.
Your action plan
- Install the skill and start a new session.
- Pick one decision you've been putting off this month.
- Run
/llm-councilon it, with your real numbers. - Do the chairman's 7-day step before you ask anything else.
Run step 1 tonight, and step 3 on the decision you thought of first.
Try next: 5 free add-ons for Claude Code, and what each one changes
- #claude-code
- #skills
- #decisions