A plugin for Claude Code

Stop Claude from agreeing with you.

Convene a council of adversarial agents on any idea. Blinded seats argue it, a jury checks the facts, and a chairman hands down one committed verdict, with the strongest case against it attached.

01/plugin marketplace add mihhhir08/high-council
02/plugin install high-council@high-council

Restart Claude Code, then /council · MIT · Works on an empty folder

claude · session14:02
I think we should rewrite the API in Go.
Great call. Go's concurrency model is a natural fit for this workload…agreed
Actually, let's keep Node and optimise the hot paths.
That's the pragmatic choice. A rewrite carries real risk…agreed
Two approvalsNo signal
How it rules

Six stages.
One ruling.

Every stage exists to remove a way the answer could bend toward what you hoped to hear.

  1. § 01

    The Clerk seals your preference

    Your request is rewritten into a neutral brief. What you lean toward, and why, goes into a sealed note that only two roles can open. If something only you can answer would flip the verdict, the Clerk asks before anyone spends a token.

  2. § 02

    The Researcher puts facts on the table

    Prior art, existing solutions, numbers, and what has already been tried and failed. Every line sourced. Absence reported. The council debates from evidence, not from memory.

    Standard and full
  3. § 03

    Round one, in isolation

    Every seat writes at the same time and sees nobody else. Each opens by steelmanning the view it is about to argue against, then commits to a position and a confidence number. Hedging is sent back.

  4. § 04

    Round two, rebuttal

    Each seat reads the bench and must answer the single strongest point against it. Not the easiest one. The Doubter joins here to audit everyone's reasoning for assumptions that were never earned.

    Standard and full
  5. § 05

    The Jury checks every claim

    Every factual claim from both rounds is pulled out and marked Verified, Contradicted, or Unverified against your stated facts, past verdicts, your repo, and the web. Opinions are not claims. Gaps are reported as gaps.

    Standard and full
  6. § 06

    The Chairman rules

    On verified claims only. The verdict states your lean and how it was weighted, carries a minority report the losing side would sign, answers the Doubter, and makes a two-week prediction you can check. Or it remands with the questions that would decide it.

The bench

Ten seats.
One job each.

Four sit on every question. Five are seated when the Clerk decides the question earns them. One sits only in round two, and argues with nobody about the idea.

SEAT I

Advocate

The strongest realistic case for your idea. The only seat that reads your reasoning, so what you know cannot be lost.

Always
SEAT II

Skeptic

The pre-mortem. It is six months later and this failed. Writes the post-mortem, ranked by likelihood times damage.

Always
SEAT III

Constraints

What time, money, skills, and the codebase actually allow. Reads your repo and cites the line.

Always
SEAT IV

Contrarian

Option C. Asks whether A versus B was ever the right question, and prices the alternative honestly.

Always
SEAT V

Engineer

Build order, the first slice a real person could use, effort in ranges with the assumption each range rests on.

When earned
SEAT VI

Architect

What costs a year to undo. Data model, boundaries, the dependencies you marry, the scale you design for.

When earned
SEAT VII

Security

Assets, actors, entry points, worst credible outcome. Scaled to the stakes. Says when it does not decide the question.

When earned
SEAT VIII

Business

Who pays, why they switch, how they find it, whether the numbers close. Says when it is not a business question.

When earned
SEAT IX

User Voice

Speaks as the person this is for. What they tolerate today, whether they would notice, try, and keep it.

When earned
SEAT X

Doubter

Doubts the council, not the idea. Assumptions without evidence, confidence not earned, seats that contradict each other.

Round two

Clerk

Neutral brief. Sealed note. Seat selection. Intake.

Researcher

Sourced fact sheet before anyone argues.

Jury

Claim ledger. Verified, contradicted, unverified.

Chairman

One ruling. Minority report attached.

What you get

A ruling you can
hold it to.

Every verdict is written to your project as a dated file, with the full debate as an appendix. Future councils read the last five, so rulings stay consistent.

Verdict · docs/council/2026-09-16-rewrite-api-go-or-node.md

Keep Node. Optimise the three hot paths.

User's leanGoweighted as one input
Decision

Keep Node. Profile and rewrite the three endpoints that carry 81% of p99 latency. Revisit Go only if those three still miss target.

Confidence
78/100
Reasons
  1. Three endpoints account for 81% of p99 latency verified · src/metrics/report.ts:44
  2. No engineer on the team has shipped Go to production verified · user-given
  3. Auth middleware carries 2,300 lines of Node-specific session logic with no tests verified · src/auth/session.ts
Minority report

“The team will hit Node's ceiling within a year at current growth. Every month spent optimising is a month not spent on the migration you will do anyway, under more load, with less time.”Advocate · round two

Doubter's open points
  1. “Current growth” was assumed, not stated unresolved · priced into confidence
  2. Hot-path share measured last quarter resolved · metrics file dated this month
  3. Skeptic's six-month rewrite estimate has no source unresolved · not load-bearing
What would change this
  • The three optimised endpoints still miss target after two weeks
  • A Go engineer joins
Prediction
  • Right: p99 on those endpoints drops below target by week two
  • Wrong: profiling shows latency spread across many endpoints, not three
Consistency with past verdicts · no relevant prior verdict

Example verdict, shortened. Standard mode, six seats, two rounds.

Why it does not just agree

Personas are
not the fix.

Seven agents with different moods would still agree with you. These six mechanics are what stop it. Each one closes a door the answer could have bent through.

i.

Blinding

The Clerk strips your preference before any seat reads the question. Only the Advocate and the Chairman see it, and the Chairman must say how it was weighted.

ii.

Your idea gets counsel

You know things about your situation the council cannot. That knowledge enters through the Advocate at full strength instead of leaking into every seat.

iii.

Commitment

Every seat ends with a position and a number. “It depends” is not a position. A seat that hedges is sent back once, then its second answer stands.

iv.

Steelman first

Every statement opens with the strongest version of the view it is about to argue against. Two sentences its best defender would sign.

v.

Evidence ladder

Your stated facts, then past verdicts, then the repo, then the web. Unverified claims can lower confidence. They cannot be a reason.

vi.

Remand

If the decision hinges on something only you know, the Chairman returns the questions instead of a guess. A confident wrong answer is the worst outcome, so it is not allowed.

Modes

Spend what the
question is worth.

A standard run is fourteen to eighteen model calls and a few minutes. Use quick for anything you would not spend five minutes on yourself.

ModeCommandSeatsResearchRebuttalJuryCalls
Quick/council quick …4 core———~6
Standard/council …4 + up to 3yesyesyes14–18
Full/council full …all 9yesyesyes~25

Seats run on Sonnet, the Chairman on Opus. Every role is one markdown file. Change a model, a tool, or how a seat argues by editing it.

Install

Two commands.
Then /council.

01/plugin marketplace add mihhhir08/high-council
02/plugin install high-council@high-council
03/council should we rewrite the API in Go or keep Node?

Restart Claude Code after installing. No repo required. Or just say it: ask the council whether we should…