Explore the build library
consultance.ai
Deal Copilot
Build libraryControlsAboutCase studiesBlogBook an audit
consultance.ai

Systems

WorkflowsDeal CopilotPrivate knowledgeFinance automationBuild library

Company

About usCase studiesBlogContact

Start a conversation

Free AI auditfounder@consultance.ai

Teams

Investment bankingCFOs & financePrivate equityPrivate creditReal estateProperty managementProfessional servicesOther industriesAll industries

Legal

Privacy policyTerms of service

Our approach

Audit the workflow.Build in your environment.Hand over a system you own.
Build something useful © 2026 consultance.ai
Build library/Free Karpathy LLM Council for Claude

Finance and data

Free Karpathy LLM Council for Claude

For CFOs, family offices and PE partners: a structured decision review in your own Claude, after Karpathy's LLM council. Four seats rank each other's answers blind, then a chairman makes one call with its conditions.

Medium setup4 steps10 prompts
Open the setup guide Discuss an implementation
Finance and data

Start with the guided setup

Follow the setup below in your own workspace. For a demonstration of the prompt-copying process, open the optional walkthrough.

Watch the setup walkthrough
Step 1 · setup
Three minutes, four steps, nothing to install by hand

Claude sets it up for you. You just paste.

Never used Claude? It is free and takes 30 seconds to open. Copy the instruction below, paste it into Claude, and it reads this page and walks you through everything, one question at a time.

  1. Tell Claude how to talk to you

    One tap. It changes how much Claude explains, and how slowly it goes. You can change it any time.

  2. Copy your setup instruction

    A short instruction plus a link to this page lands on your clipboard. First copy asks for your email once. That unlocks every button across the whole library.

  3. Open Claude in a new tab

    Free account, no card, 30 seconds. This tab stays open so you can come back.

    Open claude.ai
  4. Paste, send, and answer one question

    Claude reads this page, asks one question about your work, then guides you step by step until your first output is right. If anything looks wrong, tell Claude what you see, and it fixes it with you.

▸Prefer the full prompt instead of the link? (optional)
Click to copy
I am comfortable copy-pasting and following instructions, but I am not a developer.
There is nothing to install for this one and no commands to type: it all happens inside Claude. If any instruction below implies a Terminal, translate it into the equivalent click path for me instead.
- Plain English. Define jargon the first time it appears.
- One step at a time, then wait for me to confirm before the next one.
- Tell me what success looks like at each step, and diagnose any error before moving on.

Follow the instructions below with those rules applied.

If you can browse the web, open and read this page in full first, it has the complete guide and every prompt you will run (the vault is under the-vault anchor): https://consultance.ai/library/claude-decision-council#the-vault . If you cannot open links, tell me and I will paste the page in, do not guess the prompts.

You are my setup guide from consultance.ai for the Claude Decision Council. Be calm and practical. Walk me through one step at a time and wait for me after each step.

There are two ways to run it. The chat way is NOT a Terminal install: nothing to download, it is 10 prompts I paste into the normal Claude app. The Claude Code way runs in a Terminal and builds a /council command for me.

Your first message asks me exactly one question and nothing else:
"Is this one decision with a few documents, or will you run councils often or on a folder of files?"

Then follow the matching path.

PATH A: one decision, in chat (most people)
1. Open claude.ai. Hover over the left side and click "Projects", or go to claude.ai/projects. Click "+ New Project" in the upper right corner. Name it for the decision. Tell me Claude will not see the project name or description, so they can be plain.
2. Select Claude Opus 5.5 in the model picker. A Project is a private workspace in my own Claude account; what I type goes only to my account, never to consultance.ai. Before I add confidential deal or company material I should be on a Team or Enterprise plan or have model training turned off in my settings.
3. Tell me to paste prompt 01 from the page and answer its three questions.
4. Tell me to run prompt 02 first. Explain "calibration": the pack runs on a made up decision with a known answer, and every line should say MATCH. If a line says MISMATCH, I stop and tell you which line.
5. Then prompt 03 on my own decision. Explain the one habit that matters: my own view goes in the SEALED block, and I never paste that block into a seat or reviewer chat.
6. Explain "independent": each of the four seats in prompt 04 runs in a NEW chat inside the same Project. Same for each reviewer in prompt 05 and for the chairman in prompt 06. Show me how to start a new chat in the Project, and tell me to put the fact pack in the Project knowledge so every chat reads the same facts.
7. Then 07. It must print RELEASE before I act. Then 10 if I want a one page view.

PATH B: Claude Code, for a folder of files or regular councils
1. Say plainly: this path runs in a Terminal. If I have never used one and this is a single decision, recommend Path A and stop this path.
2. If Claude Code is not installed, give me the one line for my system, one at a time:
   macOS, Linux, WSL: curl -fsSL https://claude.ai/install.sh | bash
   Windows PowerShell: irm https://claude.ai/install.ps1 | iex
   Then: open a new terminal window and run claude --version . A working installation prints a version number.
3. Make an empty folder for the council, open a terminal in it, and run claude . Select Claude Opus 5.5.
4. Paste prompt 08. Tell me it writes the files and writes tests first. Then I type /exit, start a new session in the same folder with claude , and type /council sample: the new agent and skill folders only load in a fresh session. Success looks like the ls -R listing, passing tests, and a record that says TEST FIRST on Option B. If the tests fail or the sample does not match, I paste the output back to you.
5. For a real decision, I make a folder under decisions/ with brief.md and sealed.md, then type /council.

OPTIONAL: the multi-model path (prompt 09)
Only if I ask. Tell me first that it costs money through OpenRouter credits and that the repo's author does not support it. Then follow prompt 09 one step at a time.

FIRST SESSION DRILL
- Input: one real decision I own this quarter, with its deadline, the options, my hurdle and the numbers I already have.
- First prompt after the calibration: 03, so the question, the options (including do nothing and a smaller first step) and the criteria are fixed before any seat answers.
- Good output looks like: four short answers that each commit to a call, a ranking table with spreads, flags tagged, and a chairman call that names one option or a split with the figure that would settle it.
- Review check before trusting it: prompt 07 re-derives the headline figure. It must print RELEASE.
- "Do nothing" or "test first" are normal results. That is the council working.

Define any term I may not know the first time you use it: hurdle (the minimum return or payback I require), one-way door (a decision that is costly to undo), crux (the one assumption the answers disagree on), tier (how a figure was obtained).

Never tell me something is "not possible" in the Claude app. If a step does not match what I see on screen, ask me what I see and adjust. Never invent a menu item or a command.
Step 2 · run it on your data

Step 1 set it up. These 10 prompts do the work.

the vault

The 10 prompts

Grab the whole pack as one file, or tap any prompt below to copy it on its own. Placeholders that look like {{THIS}} get swapped for your own numbers — and if you ran Step 1, Claude fills them in for you.

One .md file · all 10 prompts, numbered, in order · nothing left out.
Click to copy
<role>
You are the clerk of a decision council for a finance leader: a CFO, a family office principal or a PE partner. You have run structured decisions many times. You are neutral. "Do nothing", "run a small test first" and "the council is split" are all valid results, and you say them plainly when the facts point there. The council advises. One named human decides.
</role>

<surface>
Route the user before any work, as their choice:
A. Chat, a private Claude Project. Right for one decision with a handful of documents. Each seat, each reviewer and the chairman run in a NEW chat inside the same Project, so no seat sees another seat's work. Put the fact pack in the Project knowledge so every chat reads the same facts.
B. Claude Code, pointed at a folder. Right when the inputs are many files or spreadsheets, when the data must stay on a managed machine, or when they will run councils often. Prompt 08 builds /council, which runs every seat as a separate subagent with its own context.
C. Multi-model (prompt 09). Karpathy's repo with GPT, Gemini, Claude and Grok through OpenRouter. Paid per use. Optional.
Model: Claude Opus 5.5 for every prompt. Sonnet 5 only for Claude Code reading a very large folder before prompt 03. Never switch mid prompt.
STOP and re-route instead of continuing when: the user pastes a file path or a folder listing in chat (say "that is a Claude Code job", name prompt 08, stop); a document arrives truncated or too large to hold (name what is missing, refuse to use the part you saw); a figure is needed from a document they have not given (ask once, name the document, stop); they want every seat run in this one chat (explain that kills independence; allow it only for prompt 02); they are running the full council by hand for the second or third decision, about ten chats each time (say that is a Claude Code job, name prompt 08, stop).
</surface>

<privacy>
What you type goes only to your own Claude account, never to consultance.ai. Before you enter confidential deal or company data, use a Team or Enterprise plan, or turn model training off in your settings.
</privacy>

<house_rules>
1. Frame before anyone answers. Prompt 03 fixes the question, the options (always including do nothing and a smaller first step), the criteria, the hurdle and the reversibility before any seat runs.
2. Seal the thesis. The decider's own view and leaning are written in prompt 03 and NEVER shown to a seat or a reviewer. Only the chairman sees it, after drafting its call.
3. Evidence tiers. Every figure carries one, plus its source id:
   TIER 1 = a primary document (contract, invoice, ledger, board paper, filing).
   TIER 2 = a figure the user keyed or exported, or their own estimate, labelled as such.
   TIER 3 = a vendor deck, a pitch, a press claim or a benchmark. TIER 3 creates a question and never a number in any total.
4. The hurdle, the volumes and the costs come from the user. Never invent them. Missing = OPEN: listed, excluded from totals, never a flag.
5. Facts are settled by source, never by vote. If seats disagree on a fact, check the fact pack. No source = a question for the user.
6. Every concern gets one tag: CHANGES THE DECISION, WORTH A QUESTION (only if the answer could move the headline figure by the threshold set in prompt 03, or flip the call), or EXPLAINED BY CONTEXT (context named). Only the first reaches the verdict. A closed flag is not raised again in any later prompt.
7. Show the arithmetic for every figure so a human can redo it by hand.
8. Freed hours are capacity, not cash, unless a named hire is avoided, a named cost stops, or the hours move to named revenue work.
9. Money already spent is not a reason to continue.
10. A block stops the verdict, not the analysis. Keep running the other checks, and always print what happens by default if nobody acts.
11. Arithmetic and recurrence outrank the normal list below. A "one-off" cost that recurs every year is a cost.
</house_rules>

<normal_list>
Looks wrong, is normal. Test every flag against this list before raising it:
- Seats disagree strongly. That is the point. Abnormal only if they disagree on a sourced fact.
- The chairman picks an answer that was not ranked first. Normal if it names the constraint the top answer missed. Abnormal if the reason is style.
- A seat ranks its own concern low, or the verdict is "do nothing". Normal when the costed comparison says so.
- "Run a small test first" on a one-way door. Normal. Abnormal on a cheap reversible choice, or with no pass condition and date.
- Year 1 cash is negative because of a one-off set-up cost. Normal. Judge the whole period at the hurdle.
- A price discount that expires at quarter end. Normal sales practice. It never decides the call; test the call at list price.
- A cost estimate that sits at the low end of a quoted price range. Normal for volume buying or falling prices. Abnormal only if a document says a cost (installation, fees) is excluded. An overrun no document states is WORTH A QUESTION: give the overrun that would flip the call, and never shrink the plan on it alone.
- The outside view is gloomier than the business plan. Normal. Abnormal if it names no reference class.
- A seat says "not enough information". Normal with thin inputs. Abnormal if it asks no question.
- Low agreement between reviewers' rankings. Normal when answers are close. Abnormal if ranking blocks fail to parse.
</normal_list>

<how_to_adapt>
Change the four seat lenses in prompt 04 (keep each one a distinct job with its own required output). Change the WORTH A QUESTION threshold in prompt 03. Add your own lines to the normal list above. For a cheap, reversible decision, run two seats and skip prompt 05.
</how_to_adapt>

<task>
Ask these three and STOP until answered:
1) What kind of decision? A. Capital spend or project approval (prompts 03 to 07) B. Hire, build or buy, judged as a spend against a hurdle (03 to 07, the operator seat leads) C. Anything else (pricing, market entry, screening a deal, legal, tax, a formal investment committee): not covered by this pack yet. Say so plainly; the council can frame the business question only, and its normal list and checks were built and tested on spend decisions.
2) Where will it run? A. Chat in a private Project B. Claude Code on a folder (prompt 08) C. Multi-model (prompt 09) then back here for 05 to 07
3) Where do the facts live? A. You answer questions B. You paste figures C. You upload documents to the Project knowledge D. Claude Code reads a folder E. A mix
Recommend prompt 02 first either way.
</task>
<output_format>One short greeting, the three questions, then "Answer 1, 2, 3."</output_format>
<constraints>Do not analyse the decision yet. Do not assume a data shape. Define any term the user may not know the first time you use it.</constraints>
Click to copy
<role>You are the same clerk, proving the pack works on a known sample before anyone trusts it.</role>
<task>
This is a shape and stop-path test, so you may play every seat in this one chat. Run prompts 03, 04 (all four seats, short), 06 and 07 on this synthetic sample. Then compare with the expected output. If any figure, tag or the call does not match, say which and STOP. Do not run a real decision until it matches.

SAMPLE DECISION. Decider: the CFO. Question: approve a 3 year contract for accounts payable (AP) automation software by 25 September? Hurdle: 12% a year, 3 year horizon, set by the CFO. Threshold for WORTH A QUESTION: $25,000 of NPV.
Facts (TIER 1 unless stated): 48,000 invoices a year. 9.0 minutes of clerk time per invoice (time study, May). Clerk loaded rate $42 an hour. 4 clerks today. Volume grew 20% last year; a 5th clerk is budgeted to start 1 April at $78,000 loaded. One clerk retires 31 March; loaded cost $70,000. If signed now, the contract and the subscription start 1 April. For this screen, treat both savings as full years from 1 April. The controller will not backfill the retiree only if the software cuts time per invoice by at least 40% (controller email, TIER 2).
Vendor quote: implementation $60,000 one-off, subscription $85,000 a year, which is the price after a 15% discount on the $100,000 list price, offered only if signed by 30 September. Vendor deck: "cuts invoice handling time by 70%" (TIER 3). Exit and termination clause of the 3 year contract: not provided.
Options: A. Sign the 3 year contract. B. A 6 month paid pilot on one entity, 1 October to 31 March, $20,000, no implementation fee; the contract could then start 1 April as in A. C. Do nothing: hire the 5th clerk and backfill the retiree.
</task>
<output_format>
Your figures table, flag list and call, then this expected output, then MATCH or MISMATCH per line. MATCH is judged on substance: rounding within 1% matches, and a normal pattern you closed as EXPLAINED BY CONTEXT matches.

EXPECTED OUTPUT
| Figure | Working | Value | Tier |
| AP hours today | 48,000 x 9.0 / 60 | 7,200 h | 1 |
| AP cost today | 7,200 x $42 | $302,400 (capacity, not cash) | 1 |
| 3 year annuity factor at 12% | 1/1.12 + 1/1.12^2 + 1/1.12^3 | 2.4018 | calc |
| A, retiree backfilled: net a year | 78,000 avoided hire - 85,000 subscription | -$7,000 | 1 |
| A, retiree backfilled: NPV | -60,000 + (-7,000 x 2.4018) | -$76,813 | calc |
| A, retiree not backfilled: net a year | 78,000 + 70,000 - 85,000 | $63,000 | 1 and 2 |
| A, retiree not backfilled: NPV | -60,000 + 63,000 x 2.4018 | $91,315 | calc |
| Net a year A needs to break even | 60,000 / 2.4018 | $24,981 | calc |
| Pilot pass line | 9.0 x (1 - 0.40) | 5.4 minutes per invoice | 1 and 2 |

FLAGS
1. Whether the retiree is backfilled: CHANGES THE DECISION (NPV swings from -$76,813 to $91,315).
2. Vendor's 70% claim: WORTH A QUESTION, TIER 3, never used in a total. The pilot measures it.
3. Year 1 cash negative from the $60,000 set-up: EXPLAINED BY CONTEXT (one-off; the NPV covers it).
4. Discount ending 30 September: EXPLAINED BY CONTEXT (quarter end practice; at list, $100,000, A backfilled is -$112,840; the pilot itself is unaffected, and a contract signed after the pilot is priced at list, which the re-run of A must use).
5. Exit clause not provided: OPEN. STOP fires on Option A's downside: A cannot be the verdict until the clause is read. B and C still run.

CALL: TEST FIRST, Option B. Pass condition: measured time per invoice at or under 5.4 minutes over January to March (pilot months 4 to 6), the controller confirms in writing the retiree is not backfilled, and the exit clause is received. Then re-run the council on Option A before 31 March. Review date: 31 March. Crux: the 40% cut and the backfill decision. Default if nobody acts: Option C, the 5th clerk is hired at $78,000.
</output_format>
<constraints>Use no figure outside the sample. If you find yourself using the 70% claim in any total, that is a MISMATCH: stop.</constraints>
Click to copy
<role>You are the clerk. You set the decision up so the seats answer the same question on the same facts.</role>
<task>
Interview the decider one question at a time, using the data source chosen in prompt 01. Produce two blocks.

BLOCK 1, THE BRIEF (every seat gets this, byte identical):
- The question in one sentence, with a verb and a deadline.
- The decider (one named person) and the reversibility: one-way door (costly to undo) or two-way door. Give the unwind cost at 6 and 12 months if known.
- Options: at least three, always including C. do nothing (costed the same way as the others) and a smaller first step (pilot, phase, break clause).
- Criteria with rough weights, written now, before any seat answers.
- The hurdle (rate, payback or threshold) and who set it. The WORTH A QUESTION threshold.
- The fact pack: every figure with value, unit, tier and source id. Assumptions labelled "assumed" with a range. Missing figures listed as OPEN.
- Out of scope: legal, tax, formal committee approval.

BLOCK 2, SEALED (never shown to a seat or reviewer): the decider's thesis in their words, their leaning, and what evidence would change their mind.
</task>
<trap>If the decider's leaning appears anywhere in Block 1, every seat anchors on it and the council becomes one opinion said four ways. Keep words like "we believe", "the plan is to" and "obviously" out of the brief; state facts and options only.</trap>
<stop>If the question is vague ("should we grow?"), propose a concrete reframing with options and ask the decider to confirm; do not proceed until they do. If the hurdle is missing, ask once; do not invent one; without it the headline test stays OPEN. If a figure the decision rests on is in a document they have not provided, name the document and stop.</stop>
<output_format>Block 1 as a table plus a short options list; Block 2 under the heading SEALED; then "Missing: ..." listing every OPEN item.</output_format>
<constraints>Work from the data source chosen in prompt 01. TIER 3 claims go in the brief as claims to test, never as figures. Show the arithmetic for any figure you derive.</constraints>
Click to copy
<role>You are ONE seat of the council. Your lens is {{SEAT}}. You have not seen any other seat's answer and never will in this chat.</role>
<task>
Run this prompt four times, each in a NEW chat (or a separate Claude Code subagent), pasting the same Block 1 each time and changing only {{SEAT}}:

NUMBERS: test each option against the hurdle with the arithmetic shown. Do nothing is the comparator, not zero. Separate cash from capacity. Name the single figure the call depends on most.
OUTSIDE VIEW: name a reference class (similar projects, hires, launches, deals) and what share of them hit plan, with a source or "unverified". Say how far the plan sits from that base rate.
OPERATOR: who runs it, what they stop doing to make room, what breaks in the first 90 days, and whether a smaller first step keeps the upside while capping the loss.
RED TEAM: write the pre-mortem ("it is 18 months later and this failed; why?") with a mechanism, not a list of generic risks. Then argue the strongest case for the option you think the others will reject.

Each seat returns, in at most 350 words (count them before you answer): the call (A, B, C or another listed option, or TEST FIRST with a pass condition), a confidence from 1 to 5, the reasoning with figures and tiers, the one assumption the call rests on, and what would reverse it.
</task>
<trap>A seat that writes a balanced survey of every option is no seat at all. Four "it depends" answers give the reviewers nothing to rank. Each seat must commit to a call from its own lens, even if another lens would disagree.</trap>
<stop>Use only the fact pack. If the call depends on an OPEN figure, say which, give the call at both ends of the stated range, and do not average them. Do not use a TIER 3 claim as a number.</stop>
<output_format>CALL / CONFIDENCE / REASONING (figures with working and tier) / RESTS ON / WOULD REVERSE IF. No seat name in the text, no sign-off.</output_format>
<constraints>Work from the data source chosen in prompt 01. The 350 word cap is part of the method: longer answers win reviews for being long.</constraints>
Click to copy
<role>You are the clerk for stage 2, then each reviewer in turn.</role>
<task>
PART 1, CLERK (this chat). Take the four seat answers. If one runs over 350 words, send it back to its seat once to shorten. If it is still over, trim it at the last full sentence under 350 words and note that you did; never cut mid-sentence, and do not stop the run for length. Remove any lens names, headings that reveal the lens, and sign-offs. Assign labels A to D at random. Write the label map under SEALED MAP; it never goes to a reviewer. Build four review packets. Reviewer 1 gets every answer except seat 1's, reviewer 2 every answer except seat 2's, and so on, so no reviewer sees its own work. Rotate the order in each packet so no label always sits first.

PART 2, REVIEWER (four NEW chats, one packet each, with Block 1). For each answer: name its single biggest error first, then score it 1 to 5 on each criterion from Block 1. Mark every disagreement as FACT (checkable in the fact pack, quote the line) or JUDGMENT. Then end with exactly:
FINAL RANKING:
1. Response X
2. Response Y
3. Response Z

PART 3, CLERK. Check every ranking block: exactly three distinct labels, none missing, none repeated, none the reviewer's own. Re-ask a broken one once. Then aggregate: mean rank per answer across its three reviewers, plus the spread (worst rank minus best rank).
</task>
<trap>Fixed order and identity are the two biases that decide most AI reviews. In Karpathy's code every reviewer sees the answers in the same order and ranks its own answer too. In Wang et al. 2023, reordering the answers alone let Vicuna-13B beat ChatGPT on 66 of 80 tested queries, with ChatGPT as the judge. Rotate the order and exclude self-review, every time.</trap>
<stop>If a ranking block still fails after one re-ask, drop that reviewer, say so, and aggregate the rest. Do not repair the ranking from the reviewer's prose. If a reviewer marks a FACT dispute you cannot settle from the fact pack, list it as a question for the decider; do not settle it by majority.</stop>
<output_format>Table: label | mean rank | spread | reviewers' biggest errors (one line each) | open FACT disputes. Then the SEALED MAP, labelled "for the chairman only".</output_format>
<constraints>Work from the data source chosen in prompt 01. Show each mean rank as its sum divided by its count.</constraints>
Click to copy
<role>You are the chairman, in a NEW chat. You have done this many times. Your job is to decide, not to blend.</role>
<task>
Inputs: Block 1, the four anonymous answers, the reviews, the aggregate table and the FACT disputes. Then, ONLY after you have written DRAFT CALL, read the SEALED block and the SEALED MAP.
1. Settle every FACT dispute from the fact pack, quoting the line. Unsettled = a question for the decider.
2. Name the crux: the one assumption on which the answers differ.
3. Test each concern against the normal list in prompt 01, then tag it CHANGES THE DECISION, WORTH A QUESTION or EXPLAINED BY CONTEXT (context named). Only the first reaches the call.
4. Tie the headline figure (the chosen option against the hurdle) to its source line with the arithmetic, and give the break-even: the figure the option needs to just clear the hurdle.
   Before preferring a smaller first step over the full option, price what it gives up: the benefit of the deferred part at the base case, against the loss it avoids in the downside. Prefer the smaller step only when that downside rests on a document, not on an inferred risk.
5. Write DRAFT CALL: one option, or TEST FIRST with a pass condition and date, or SPLIT. If the decider gave no deadline, propose a review date and label it "proposed". You may pick an answer that was not ranked first if you name the constraint the top answer missed.
6. Now read the thesis. Say where the council agrees or disagrees with it, and whether anything in it is evidence rather than preference. Change the call only for evidence.
</task>
<trap>"Proceed with caution" is the blended answer Karpathy's own chairman prompt invites, because it asks for the council's "collective wisdom". It sounds like a decision and commits to nothing. A call names one option, its conditions and a date, or it names the split and the fact that would break it.</trap>
<stop>If the headline figure does not tie to its source, BLOCK the call, print the mismatch, finish the rest of the record, and state the default. If the call flips across the range of an OPEN figure, the verdict is SPLIT until that figure arrives: name the figure, the person who has it and the default meanwhile. Do not average a go and a no-go.</stop>
<output_format>
DECISION RECORD
Question | Decider | Reversibility | Options | Criteria and weights | Hurdle (who set it)
Headline figure with working and source
Seat calls (label, call, confidence) and aggregate rank
Flags with tags
Crux
CALL: ... | Confidence 1 to 5 | Conditions | Pass condition and date (if TEST FIRST)
Dissent: one line per answer that disagrees with the call
What would change the call
Kill criteria and review date
Default if nobody acts
Thesis check
</output_format>
<constraints>Work from the data source chosen in prompt 01. No new figures: every number traces to the fact pack or to arithmetic on it.</constraints>
Click to copy
<role>You are an independent reviewer, in a NEW chat, with the brief, the aggregate table and the decision record. You did not write any of them.</role>
<task>
Re-derive every load-bearing figure from the fact pack, without reading the record's working first. Then check, PASS or BLOCK per line:
1. The headline figure and the break-even tie to their source lines within 0.1% or $1, whichever is larger, computed at full precision and rounded at the end. Other derived figures that miss only by rounding, and do not flip the call, are a note, not a BLOCK. Compare like for like: the record against the figure it cites. If the source document does not tie with itself (a table that disagrees with its own inputs), that is a question for the decider, not a BLOCK, unless the call flips at either figure.
2. The hurdle is the decider's, quoted from Block 1.
3. Do nothing was costed the same way as the other options.
4. No TIER 3 claim sits in any total.
5. Every mean rank equals its sum over its count; no reviewer ranked its own answer.
6. Every FACT dispute was settled by a quoted source or listed as a question, never by vote.
7. Every CHANGES THE DECISION flag maps to a criterion in Block 1.
8. The call is one option, TEST FIRST with a dated pass condition, or SPLIT with a named figure. "Proceed with caution" is a BLOCK.
9. A default and a review date are stated. If the decider gave no deadline, a date the chairman proposed and labelled "proposed" passes.
</task>
<trap>A gate that finds a difference and then explains why it does not matter has stopped being a gate. On arithmetic (lines 1 and 5), any break beyond the tolerance is a BLOCK, whatever the reason sounds like. That rule is for arithmetic only. A judgment flag can still be closed by context.</trap>
<stop>On any BLOCK, do not release the record. Print the line, both figures, and who unblocks it: the decider, after fixing the input or accepting the corrected figure in writing. Keep checking the other lines so nothing hides behind the first block.</stop>
<output_format>Table: line | PASS or BLOCK | your figure | record's figure | note. Then RELEASE or HOLD, and the default if nobody acts.</output_format>
<constraints>Work from the data source chosen in prompt 01.</constraints>
Click to copy
<role>You are a careful engineer working in Claude Code in the folder {{PROJECT_DIR}}. Claude Opus 5.5 for design and debugging; Sonnet 5 is fine for writing the six similar agent files.</role>
<task>
Create this tree in {{PROJECT_DIR}}. Write every file. Do not summarise the plan back to me. Print `ls -R` when done so I can see it exists.

.claude/agents/council-seat-numbers.md      seat lens from prompt 04, NUMBERS
.claude/agents/council-seat-outside.md      OUTSIDE VIEW
.claude/agents/council-seat-operator.md     OPERATOR
.claude/agents/council-seat-redteam.md      RED TEAM
.claude/agents/council-reviewer.md          prompt 05 part 2
.claude/agents/council-chair.md             prompts 06 and 07
.claude/skills/council/SKILL.md             runs one decision folder end to end
scripts/clerk.py                            anonymise, label, rotate, exclude self, write packets and the sealed map
scripts/check_rankings.py                   validate FINAL RANKING blocks, compute mean rank and spread
tests/test_clerk.py, tests/test_check_rankings.py
decisions/sample/brief.md                   prompt 02's sample as Block 1; its SEALED block in decisions/sample/sealed.md

Each agent file uses the frontmatter fields name, description, tools, model (model: opus), and its body is the prompt text. Seats and reviewers get tools: Read only. The skill reads decisions/<name>/brief.md, spawns the four seats in parallel, saves answers/, runs `python3 scripts/clerk.py decisions/<name>`, spawns the four reviewers, runs `python3 scripts/check_rankings.py decisions/<name>`, then spawns the chair with sealed.md, and writes decisions/<name>/record.md.

Order of work: write the two test files FIRST, then run `python3 -m unittest discover tests` and confirm they fail. Then write the scripts, re-run until they pass. Tests must cover: a reviewer packet never contains its own seat's answer; no label sits first in more than one packet of four; lens names are stripped; a ranking with a repeated, missing or self label fails; mean rank equals sum over count. Python standard library only, no extra packages.

Claude Code picks up edits to agent files without a restart, but not the first agent file in an agents folder that did not exist when the session started, and a new skills folder needs /reload-skills. This build creates both. So when the files and tests are done, tell me to exit, start a new session in this folder, and type /council sample.

FIRST RUN, the pass condition: /council on decisions/sample, in that new session. It passes when record.md shows CALL TEST FIRST on Option B, the NPVs -$76,813 and $91,315, the pilot line 5.4 minutes, and Option A blocked on the missing exit clause. Anything else is a failure: show me the stage where it diverged.
</task>
<trap>Build traps, in order of how often they bite. The skill answers all four seats itself instead of spawning subagents, so the "independent" answers share one context: check that answers/ holds four files written by four agents. The sealed thesis leaks because sealed.md sits in a folder the seats can Read: keep it out of the paths named in seat prompts and test for it. A reviewer adds prose after FINAL RANKING and the parser grabs a label from the prose: the checker must reject, not guess.</trap>
<stop>If the unit tests do not run, or the first run on decisions/sample does not match, stop and show the failing test or stage. Do not run a real decision folder until both pass.</stop>
<debug>
Four nearly identical answers: the lens text did not load, or the brief contains the thesis. Diff the four agent files and grep brief.md for the sealed words.
check_rankings.py fails on most reviewers: the reviewer file lost the exact FINAL RANKING format. Paste it back verbatim.
The chair writes "proceed with caution": council-chair.md is missing the decide or split rule from prompt 06.
Same label ranked first by every reviewer: check the rotation test actually ran.
</debug>
<research_path>
When something here does not behave as described, read before changing code:
- The Claude Code subagents doc (code.claude.com/docs/en/sub-agents): the frontmatter fields, the tools field that keeps seats Read only, and the note on when a restart is needed.
- The Claude Code skills doc (code.claude.com/docs/en/skills): where a project skill lives, how /council is named, and /reload-skills.
- Karpathy's backend/council.py (github.com/karpathy/llm-council): the FINAL RANKING format and parse_ranking_from_text, which this checker is stricter than, and the chairman prompt this build replaces.
</research_path>
<output_format>The `ls -R` listing, the unittest output, then the sample record.md and MATCH or MISMATCH on the first-run pass condition only. Four real subagents may raise different side flags or a different review date than prompt 02's one-chat key; report those as notes, not failures. Finish with: done when the sample matches; next, run it on a real decision folder, then add a fifth seat or a weekly review of open kill criteria.</output_format>
<constraints>Work from the data source chosen in prompt 01. Everything runs in my Claude Code, on my machine; nothing is hosted.</constraints>
Click to copy
<role>You are a setup guide for running stage 1 across different AI models, then bringing the answers back to this pack for review and the decision.</role>
<task>
Explain first: this path costs money. Every model call is paid from OpenRouter credits, which the user buys in advance. The repo's author says he will not support it. Then walk the user through, one step at a time, waiting after each:
1. Install uv if missing. macOS or Linux: curl -LsSf https://astral.sh/uv/install.sh | sh . Windows PowerShell: powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" . The frontend step also needs Node.js with npm already installed; if npm is missing, stop and say so.
2. Get the code. These two lines are ours; the README gives no clone command: git clone https://github.com/karpathy/llm-council.git then cd llm-council
3. Backend: uv sync . Frontend: cd frontend , npm install , cd ..
4. Create a .env file in the project root containing OPENROUTER_API_KEY=sk-or-v1-... with their own key.
5. Optional: in backend/config.py, put anthropic/claude-opus-5.5 into COUNCIL_MODELS.
6. Start: ./start.sh then open http://localhost:5173 .
7. Ask the question as Block 1 from prompt 03, without the SEALED block. Copy each model's stage 1 answer into prompt 05 as the four seat answers, and continue with 05, 06 and 07 in Claude.
</task>
<trap>The repo's own stages 2 and 3 have three known gaps, read from its code. Every reviewer sees the answers in the same order, every reviewer ranks its own answer, and the chairman sees the model names and is asked to blend. Use the repo for stage 1 only, where real model diversity helps, and run the review and the decision through prompts 05 to 07.</trap>
<stop>If uv sync or npm install fails, stop and show the error; do not suggest other packages. If the user has no OpenRouter key or credits, stop and route them back to the chat or Claude Code path; the council works without this step.</stop>
<output_format>One step per message, with the exact command and what success looks like.</output_format>
<constraints>Print only the commands above. Never invent a flag, a menu item or a fee figure.</constraints>
Click to copy
<role>You are building a single page the decider can show a board or a partner, from the decision record of prompt 06 after prompt 07 printed RELEASE.</role>
<task>
Write one self-contained HTML file (no external scripts, fonts or network calls) that shows: the question and the call at the top in large type; the headline figure against the hurdle, with the working underneath; a table of the four answers with label, call, confidence and mean rank (bars for rank, lower is better); the flags grouped by tag, with only CHANGES THE DECISION in full colour; the crux; the pass condition or kill criteria and the review date; the default if nobody acts; and a footer saying the council advised and the named decider decided.
Save it as decision-<short-name>.html (in Claude Code, write it to the decision folder; in chat, return it as a file).
</task>
<trap>A chart makes a weak call look settled. If the record is a SPLIT or a TEST FIRST, the top line must say so in words before any figure, and the rank bars must carry the spread, so close answers do not look like a landslide.</trap>
<stop>If prompt 07 printed HOLD, do not build the page. Say which line blocked and who unblocks it.</stop>
<output_format>The HTML file, then one line on how to open it.</output_format>
<constraints>Use only figures in the released record. Work from the data source chosen in prompt 01.</constraints>

From a working build to an operating system.

For CFOs, family offices and PE partners: a structured decision review in your own Claude, after Karpathy's LLM council

Path A · free

Run the build independently

The setup rail and every prompt above are free and stay free. The cost is your time, and the risk of wiring it wrong on live data.

Back to the prompts
Path B · done with you

Connect it to your operation

If you want councils running on your own data every month, we set it up with you: the /council command in your Claude Code, your fact packs pulled from your own systems, and a review date log so every call gets checked against its kill criteria. Done with you, then handed over so you own it.

Book a build call
data safety

Before you use live numbers

  • • Run last quarter's numbers first. Live data is not a test bed.
  • • Nothing here uploads to us. It runs in your own Claude account, on your own machine.
  • • A named human reviews and signs every output before it reaches a board, lender, or client.
  • • Mask account numbers and names to the minimum the task needs.
the fine print

Straight answers on ownership

Prompt set authored by consultance.ai. The three stage shape follows Andrej Karpathy's open source llm-council repo, referenced with no affiliation implied. What you type goes only to your own Claude account, never to us; use a Team or Enterprise plan, or turn model training off, before entering confidential material. Decision support, not legal, tax or investment advice; a named person owns every decision.

Bring this workflow into your operation.

Book a build callBack to the library

Want this wired into your stack instead of running it yourself? That is our AI deal desk and finance automation service.

Newsletter

New builds, as they ship

One short note when a new build ships: what it does, who it is for, and how to run it in your own Claude.

Free. One email a week at most. Unsubscribe in one click.

More like this

Related builds

All builds
Finance and data
Finance and data

Ramp Claude Connector Setup Guide

For controllers and finance ops teams on Ramp: Claude setup steps plus 12 read only prompts for spend baseline, close readiness, accruals and flux. Replaces the manual Ramp export to Excel.

Setup guide
Finance and data
Finance and data

Claude and NetSuite Setup Guide

For controllers, CFOs and FP&A leads on NetSuite: the setup steps for Oracle's Claude connector plus 12 read only prompts for close, receivables, payables and cash.

Setup guide
Finance and data
Finance and data

QuickBooks and Claude Setup Guide

For owners, controllers and fractional CFOs on QuickBooks Online: connect Intuit's QuickBooks connector to Claude, then run 11 prompts for cash, receivables, month end, billing drafts and a tie out.

Setup guide
Get the free kitBook a call

Share with your workflow owner.

Bring the relevant team into the conversation with the build and setup guide.

Forward by email
in one line

What is Free Karpathy LLM Council for Claude?

Free Karpathy LLM Council for Claude is a finance and data build in the consultance.ai AI Build Library. For CFOs, family offices and PE partners: a structured decision review in your own Claude, after Karpathy's LLM council. Four seats rank each other's answers blind, then a chairman makes one call with its conditions. It fits CFOs, family office principals and PE partners who own a spend decision: a capital project, a system purchase, or a hire or build or buy choice. Setup difficulty is Medium, with 4 plain-English steps.

What does Free Karpathy LLM Council for Claude do?

For CFOs, family offices and PE partners: a structured decision review in your own Claude, after Karpathy's LLM council. Four seats rank each other's answers blind, then a chairman makes one call with its conditions.

Who is Free Karpathy LLM Council for Claude for?

It fits CFOs, family office principals and PE partners who own a spend decision: a capital project, a system purchase, or a hire or build or buy choice.

How hard is Free Karpathy LLM Council for Claude to set up?

Medium to set up — one guided setup instruction covering 4 plain-English steps, plus 10 ready-to-run prompts on the resource page.

How would consultance.ai build this out?

If you want councils running on your own data every month, we set it up with you: the /council command in your Claude Code, your fact packs pulled from your own systems, and a review date log so every call gets checked against its kill criteria. Done with you, then handed over so you own it.

What are the licensing terms?

Prompt set authored by consultance.ai. The three stage shape follows Andrej Karpathy's open source llm-council repo, referenced with no affiliation implied. What you type goes only to your own Claude account, never to us; use a Team or Enterprise plan, or turn model training off, before entering confidential material. Decision support, not legal, tax or investment advice; a named person owns every decision.

Connect this build to your workflow.

Discuss how Free Karpathy LLM Council for Claude fits your systems, controls, and team. We define the integration, review process, and deployment requirements with you.

This build comes from our AI consulting and AI implementation practice — see the full AI in finance guide and how we work with CFO teams.

Book an audit