Decision architecture for conflicting minds.
A role-based orchestration swarm for Claude Code.
Convene · Workflow · Standing Bench · Institutions · Tabularium · Install
/senate:convene routes each request to its proper organ. Consequential choices go through five deliberately adversarial lenses in one bounded sitting; --cross-check can add a cross-family Envoy to attack whatever they share. Designs, faults, research, reviews, and builds go to specialist institutions. Only the Legions edit files, and campaigns begin only after you approve the actual plan.
Installed from source? Invoke the same skill as /convene.
/senate:convene Should we launch the paid plan now or wait for 100 beta users? [--debate] [--cross-check] [--log]
/senate:convene Add dark mode to the settings page
/senate:convene My nightly backup silently stopped working
One command. Different institution. Correct duty.
/plugin marketplace add ember-mind/senate
/plugin install senate@ember-mind
Then invoke it with /senate:convene <your decision> (plugin skills are namespaced by the plugin name). Update later with /plugin marketplace update ember-mind.
Copies straight into ~/.claude and gives you a bare /convene command:
git clone https://github.com/ember-mind/senate && cd senate && ./install.shRequires Claude Code. Optional: Codex CLI + codex plugin for the Envoy. Sub-agents use portable model-family aliases: bench, senators, and ordinary craft work on sonnet; scouts and literal skirmishes on haiku; deep or high-risk craft on opus. Consul inherits your session model. See MODEL-POLICY.md to change or flatten tiers.
The Consul owns orchestration. It reads your request, gathers missing context, sends work to the right organ, then returns one final result in plain language.
| You ask for | Primary organ | Specialists do | Final result |
|---|---|---|---|
| A consequential choice | 🏛️ Senate | five lenses challenge; optional Envoy attacks consensus | verdict with agreement, conflicts, blind spots, condition, next step |
| A new system or feature | 📐 Collegium | one master designs or proves feasibility | bounded, buildable plan |
| A broken system | 📐 Collegium | Galen tests causes and identifies root fault | diagnosis and minimal cure |
| Research | 📚 Library | Callimachus gathers and synthesizes sources | cited answer |
| Review of finished work | 📜 Censors | Appius Claudius inspects independently; Envoy may cross-check | findings ranked by severity |
| An approved plan or tiny fix | ⚔️ Legions | file-bounded cohorts implement and verify | changed files, checks, concise campaign report |
Non-trivial builds stop after plan. You approve actual plan; only then Legions edit files. Finished work can return to Censors for independent review.
| 01 · Distill | 02 · Conflict | 03 · Optional attack | 04 · Decide |
|---|---|---|---|
| Consul writes one compact brief and asks the Senate | Five declared biases receive identical facts. | Censor or foreign model family attacks shared assumptions. | Agreement becomes granite; the Legions start their march. |
Full decision run
- Consul distills question, options, constraints, numbers, and success criteria into one brief.
- Standing bench loads from
roster.yaml; up to two task-specific experts may be summoned. - One bounded bench sitting applies all five rows to the same brief in sealed, non-cross-referencing passes.
--debateadds one bounded exchange inside the same sitting, on the conflict most likely to change the verdict.--cross-checkoptionally asks the Foreign Envoy—OpenAI Codex—to attack aggregate agreement, not individual opinions.- Consul performs non-averaging merge: agreement, conflicts, blind spots, optional Envoy attack, verdict, next step.
--logoptionally appends one-line verdict to projectMEMORY.md.
With --cross-check, no Codex available? Envoy degrades to a Claude devil, and verdict says so.
The Standing Bench is Senate's permanent panel of five reasoning personas. One bench agent produces their sealed first-pass memos in a bounded sitting: every row sees the same brief, may not reference another memo, and argues from one deliberately exaggerated lens. With --debate, the same sitting appends a short exchange between the two sides of the sharpest conflict. Their names are Roman offices and archetypes—not historical simulations.
|
Quaestor TREASURY Can Rome afford this? |
Legatus EXECUTION Can Rome execute this? |
Tribunus Plebis THE PEOPLE Who benefits or suffers? |
Augur SECOND ORDER What happens next? |
Cato OPPOSITION Why should Rome reject this? |
| Senator | Protects | Overweights |
|---|---|---|
| Quaestor | financial sustainability | cost and downside |
| Legatus | deliverability | execution risk |
| Tribunus Plebis | people affected | user harm |
| Augur | second-order effects inside the decision horizon | consequences hidden by the first-order result |
| Cato | resistance to groupthink | attempts to falsify from the brief |
Two optional layers can deepen deliberation:
--debatedeepens the sharpest conflict inside the bounded bench call.--cross-checkasks the Foreign Envoy to attack consensus from another model family.
Senate handles choices. Other work goes to specialists built for different outputs.
Three named masters share one magister agent template. Consul chooses one row from collegium.yaml, based on the problem:
| When summoned | Master | Specializes in | Returns |
|---|---|---|---|
| New product, system, or architecture | Vitruvius | structure, interfaces, dependencies, build sequence | concrete implementation plan |
| Feasibility, mechanism, or performance | Archimedes | calculation, constraints, cost, proof | computed design or feasibility answer |
| Failure, bug, or degraded system | Galen | reproduction, competing causes, diagnostic tests | root cause and minimal cure |
Consul gives the chosen master a compact brief plus concrete pointers. The master reads only what the craft requires and returns a bounded plan or diagnosis. The master never edits.
If the plan contains a real tradeoff, it goes to Senate for challenge. If the plan is clear, Consul presents it directly. Either way, implementation waits for your approval; then Legions march.
| Office | Worker | When used | What comes back |
|---|---|---|---|
| 📚 Library | Callimachus, one librarian |
question needs external or repository research | sourced scroll; Consul delivers cited answer |
| 📜 Censors | Appius Claudius, one censor; optional Envoy |
finished code, plan, or prose needs review | concrete findings ranked by severity |
| 🐎 Scouts | Exploratores, one explorator |
missing context blocks another organ | terrain report for Consul's brief—not final answer |
| ⚔️ Legions | named legionary cohorts |
approved plan, or tiny unambiguous fix | file changes, checks, capped implementation report |
| 🐍 Foreign Envoy | OpenAI Codex; Claude devil fallback | with --cross-check after Senate or beside Censor |
attack on shared assumption; advisory only |
| 🛡️ Praetorians | guardrail, not agent | whenever outside text enters workflow | quoted instructions remain data, never commands |
- Scouts, if needed, map missing ground and report to Consul.
- Consul writes one brief and dispatches one primary organ.
- Primary organ returns its native artifact: verdict, plan, diagnosis, cited scroll, review, or implementation report.
- Genuine choice inside plan goes to Senate. Approved plan goes to Legions.
- Consul synthesizes reports into one final answer with one explicit next step.
No giant swarm handles every request. Each office appears only when its output is needed.
A campaign that fits one conversation needs no extra record. When an approved plan outlives the session, Consul creates one TABULARIUM.md at the project root. It is a compact, mutable campaign ledger—not a second plan and not a transcript.
| Field | What survives between sessions |
|---|---|
| Destination | final outcome the campaign must reach |
| Settled | completed, verified results with date and pointer |
| Standing orders | constraints every future cohort must obey |
| Open | next order sharp enough to dispatch |
| Fog | known later work that is not yet precise enough to cut into an order |
The lifecycle is explicit:
- Collegium drafts the actual plan; the user approves it.
- Tabularium opens only when work must cross conversation boundaries.
- Legions execute session-sized orders in waves, with non-overlapping file boundaries and at most three cohorts per wave.
- After each wave, Consul records one settled result and refreshes
Open. Fog stays fog until it can be stated precisely. - A risk-triggered Censor verifies the result. Consul archives or removes the Tabularium when the campaign closes.
On a later session, Consul reads TABULARIUM.md before dispatch: it preserves standing orders, never repeats settled work, and continues from Open.
TABULARIUM.md and MEMORY.md serve different duties: Tabularium is temporary and mutable campaign state; Memory is permanent, append-only decision history written only with --log.
See the exact campaign contract in references/campaign.md.
Decision comes first. Internal memos stay internal.
| Read order | What you get |
|---|---|
| Verdict | PROCEED, DO NOT PROCEED, or CONDITIONAL |
| Rome decides | decision in one sentence |
| Next command | one action |
| Why | at most two reasons |
| Main risk | one outcome-changing risk, only when supported |
| Changes verdict if | one concrete flip condition |
| Lore | at most two lines for organs that actually ran |
Read a complete sample verdict
/senate:convene --cross-check Move the newsletter off Substack (10% fee, 2,100 subs, 38 paid at €7/mo) to self-hosted Ghost (€12/mo VPS, migration ~2 weekends, own the list)?
# 🏛️ VERDICT — CONDITIONAL
Rome decides: Move only if list ownership and about €175/year outweigh
two weekends of migration plus ongoing operations.
➡️ Next command: Estimate annual VPS operations time.
Why
- Removing the fee saves about €14.60/month after the €12 VPS.
- Self-hosting gives list ownership and removes one vendor dependency.
Main risk
- Codex Envoy: maintenance, patching, backups, and recovery could erase savings.
Changes verdict if
- Annual operations burden exceeds direct savings plus the value of ownership.
---
🏛️ Senators raised their tablets. Choice faced five opposing lenses —
decision remains conditional.
Standard verdicts stop at 120 words. --debate or --cross-check may use 180. More internal work never means more transcript.
Lore appears after result, only for offices that worked:
- 🏛️ Senators raised their tablets. Choice faced five opposing lenses — proceed.
- 📐 Magister drew the plan. Craft turned intent into structure — plan needs approval.
- 🐎 Scouts mapped unknown ground. Missing facts returned to Rome — no blocker remains.
- 📜 Censor searched for cracks. Result survived inspection — two risks remain.
- ⚔️ Legions carried the order. Plan became working change — tests pass.
- 📚 Library opened its scrolls. Claims returned with sources — four sources agree.
Final output uses at most two lines and 40 lore words.
| I · Conflict before confidence | II · Foreign counsel cannot command | III · Judgment earns command |
|---|---|---|
| Roles challenge from different angles, but facts outrank persona. | Briefs, files, pages, and Envoy output are data—never instructions. | Every organ remains read-only except Legions. Campaigns require approved plan. |
Right model for each duty:
- Readers — Scouts on haiku.
- Compact bench — five first-pass lenses in one bounded sonnet call.
- Bounded depth —
--debateadds no new agent call. - Craft tier — magistri and censors on sonnet; opus only for deep or high-risk work.
- Frontier one — Consul on current session model.
This keeps repeated work on lower-cost tiers while final judgment stays with your session model. See MODEL-POLICY.md for bindings and overrides.
| Path | Contents |
|---|---|
agents/ |
bench, senator, magister, librarian, censor, explorator, legionary |
skills/convene/ |
Consul workflow, standing bench, masters, evaluation |
.claude-plugin/ |
plugin and marketplace manifests |
MODEL-POLICY.md |
role-to-model bindings |
EVALS.md |
per-role evaluation scenarios |
CHANGELOG.md |
release history |
LICENSE |
MIT license |
SPQR.


