Convene a council of expert personas for multi-perspective deliberation. Use when facing non-trivial decisions across any domain: architecture, investments, content strategy, code review, business strategy, research. Invoke as /council [preset] where preset is one of: general, planning, code, finance, content, business, research. Add --deep for novel questions that need a bespoke council.
/council [preset] "question"
/council --deep [preset] "question"
Presets: general (default), planning, code, finance, content, business, research
If no preset is specified, use general. If an unknown preset is given, fall back to general and note it.
Proactively suggest /council when you detect:
Gallery personas in presets/ are examples and a quality floor, not rigid configs. For every council invocation, Claude ADAPTS or GENERATES personas tailored to the specific question. The gallery shows what a great persona looks like — the right level of specificity, the right format, the right tension. Claude then creates personas that serve THIS question.
When --deep is passed, read references/deep-mode.md and run Phase 0 (meta-deliberation) before the normal flow. Use for novel questions that don't fit existing domains, cross-domain questions, or high-stakes decisions worth the extra compute.
Parse the invocation to extract:
general)--deep for meta-deliberationIf --deep is set, read references/deep-mode.md and execute Phase 0 before continuing.
Load the preset file from presets/{preset}.md if it exists. If the preset file is missing, proceed with general-domain defaults. Read references/output-formats.md to load the output template for this domain.
Assemble the material all personas will analyze. Depending on the question type:
git diff, test results, error logsPackage this as a context block that every persona receives identically. If context is very large (>50KB), summarize the key points and include file paths for agents to read directly.
references/persona-design.md for design principles.Each persona MUST have:
Critical design rules:
Spawn each persona as a background agent using run_in_background: true.
Each agent receives:
Wait for all agents to complete. If an agent fails or times out, proceed with N-1 agents and note the gap in the proceedings. Do not retry — the council can function with 2+ perspectives.
Strip all persona labels from the outputs. Present them as:
This prevents anchoring bias during judgment. The judge evaluates arguments on merit, not authority. Persona labels are revealed AFTER the decision is made.
Two modes, configured per preset:
The assistant reviews all anonymized analyses and exercises independent judgment — this is NOT vote counting or majority rule. The assistant:
Read references/output-formats.md for the domain-specific output template.
Present all anonymized analyses to the user in a structured format. The user reads, deliberates, and makes the call. The assistant:
Save the full proceedings as a structured markdown file:
council-proceedings-{preset}-{YYYYMMDD-HHMMSS}.md
Location logic:
docs/ directory exists in the project, save thereThe proceedings file includes:
| Scenario | Action |
|---|---|
| Unknown preset | Fall back to general, note in proceedings |
| Preset file missing | Proceed with general-domain defaults |
| Agent fails/times out | Proceed with N-1 agents, note the gap |
| No context available | Ask the user to provide context before proceeding |
| Very large context (>50KB) | Summarize key points, give agents file paths |
These files inform persona design and output quality but are NOT required to run the flow:
references/persona-design.md — Evidence-based persona design principlesreferences/output-formats.md — Domain-specific output templatesreferences/examples.md — Worked examples from real council sessionsreferences/deep-mode.md — Meta-deliberation logic for --deep flag