The Council
Put a decision in front of four hospitality operators and a chair. They answer on their own, run it through a Friday service, and disagree when they disagree. You get a verdict you can forward.
Pick a decision. Seat four of six. Convene. Then swap a seat and watch the verdict move.
Illustrative runs: the members’ answers are written to the pack’s rules to show the interaction. The verdict and confidence are computed live from the seats you choose, using the same rules the chair follows.
01
What it does
And what it is not
Synthetic users agree with everything. This panel is built to argue.
Hospitality operators are the hardest users in software to reach. They work nights, they do not answer surveys, and one bad Friday decides whether a feature survives. So teams build on guesses.
Generic synthetic users do not fix that. They know nothing about a docket rail, and models tend to please. The Council adds what they miss: operators written from lived detail, a service scenario every idea must survive, dissent that is tested, and a decision record, not a transcript.
It does not replace talking to operators. It tells you what to ask them. Every record ends with three questions for real people, because the panel advises and a person decides.
02
How it works
One loop, five steps
- 01 You state the decision. No attachments. Personal data is masked.
- 02 One shared brief: the Friday scenario and the panel’s rules. Written once, cached for all four.
- 03 Four members answer in parallel. None sees another’s answer, so nobody anchors.
- 04 The chair writes the record: verdict, confidence, dissent, kill signals, assumptions, questions.
- 05 A person signs it. That click is the evidence the tool was useful.
03
Decisions made, and why
Written down so they can be wrong
- 01Four members and a chair, not six with peer reviewPeer review doubles the wait. It comes back only if the eval shows better verdicts. Resembling a good project is not a reason to copy its latency.
- 02Dissent is tested, not hoped forTwenty deliberately bad ideas. The panel must hold back at least eighteen, or the build is broken, whatever the demo looks like.
- 03A strong objection is never averaged awayOne member failing an idea at 70% confidence or more caps the verdict. The chair names the dissent instead of smoothing it over.
- 04Recorded runs before live runsThe interaction is made perfect first, with no meter running. Live runs follow with caps on tokens, concurrency and daily spend, enforced in code.
- 05No bring-your-own-key on the sitePasting an API key into a stranger’s portfolio is a trust problem bigger than the cost problem. Clone it and run it locally instead.
- 06The visitor’s text is material, never instructionsEvery prompt says so. Obvious emails, phone and card numbers are masked before anything leaves the machine. Nothing is stored.
04
Build your own
Five minutes, your own key
The engine is a small TypeScript package. The panel is a folder of Markdown and YAML, so you can write your own pack for any domain: SaaS buyers, a school board, your own leadership team. The schema tells you what is missing.
- Clone the repository and install the package.
- Set your Anthropic API key in your shell.
- Run a decision through the hospitality pack, or copy it and write your own.
- Before you trust a new pack, run the eval. If it passes more than two bad ideas, fix the prompts.
# 1. Get it
git clone https://github.com/niel-cody/portfolio
cd portfolio/packages/council-core && npm install
# 2. Your key, your machine
export ANTHROPIC_API_KEY=sk-ant-...
# 3. Convene
npx tsx src/cli.ts \
--members mara,priya,keith,sam \
"Launch a $15 bottomless brunch on Sundays"
# 4. Keep it honest
npx tsx src/eval.ts # 20 bad ideas, must hold 1805
Colophon
What it is made of
- Members
- Claude Haiku 4.5, four in parallel, 600 output tokens each
- Chair
- Claude Sonnet 5, 1,200 output tokens, structured output
- Budget
- About US$0.06 a run, expected case. Shared brief prompt-cached
- Pack
- Markdown and YAML, validated against a schema at build time
- Quality
- Unit tests on the pack and the verdict rules, plus the 20-idea sycophancy eval
- This page
- Astro, one React island, CSS for every motion. No model calls
- Personas
- Six composites written for this site. Not real people, and nothing from any employer