---
name: council-execution
description: Executes council queries by running the query pipeline across selected AI providers (Gemini, OpenAI, Grok, Perplexity), displaying formatted responses verbatim, and generating a synthesis of consensus, divergence, and recommendations. Invoked by the ask command during standard (non-agent) council queries.
---

# Council Query Execution

## Step 1: Run Query and Save to File

```bash
bash ${CLAUDE_PLUGIN_ROOT}/scripts/run-council.sh --providers=gemini,openai -- "Your question"
```

This outputs the path to the saved file (e.g., `.claude/council-cache/council-1734567890.md`).

**Flag syntax**: Use `=` with no spaces: `--providers=gemini,openai`

**Pass only the flags the user asked for.** Never add `--no-pane`, `--quiet`,
`--no-cache` or `--no-auto-context` on your own judgment; they are the user's
to choose, and the script already skips a pane that cannot open.

**CRITICAL**: Always place `--` before the prompt to prevent prompt text containing dashes from being parsed as flags.

**Run this Bash call with `timeout: 600000`** (ten minutes). The Bash tool's
two-minute default is shorter than a slow council round, and inside tmux a
provider failure makes the streaming pane offer the user a retry for
`COUNCIL_RETRY_WAIT` seconds (default 45) and then runs another provider round
if accepted. A call cut off mid-run loses the whole transcript, the answers
that did arrive included.

## Step 2: Read and Display the Output VERBATIM

Use the **Read tool** to read the output file path returned by Step 1.

**If the file's first line is `<!-- council: round 1 was shown in the pane -->`**,
the user already read every round-1 answer in the streaming pane. Do not
reprint them. Instead, output one line per provider in round 1, taken from
its `## ` header (name, role, model, and any fallback note) followed by
`answered` or the `Error:` line under it. When the header says the seat fell
back, add the `> <provider>: <reason>` line printed under it. Then display VERBATIM the rest of
the file from its `## Round 2` heading, or from `## Synthesis` when there is no
round 2 (debate rebuttals never reach the pane), and continue with Step 3 under
the `## Synthesis` header. Without that first line, display the whole file as
below.

**CRITICAL**: Display the file content EXACTLY as written. Do NOT:
- Reformat or reinterpret any text
- Add your own headers or structure
- Summarize or abbreviate responses
- Skip any lines including separator lines (`---`)

Simply copy-paste the entire file content into your response.

## Step 3: Complete the Synthesis Section

The file ends with a `## Synthesis` header. Read
`${CLAUDE_PLUGIN_ROOT}/prompts/synthesis.md` and write your synthesis UNDER
that header following its structure (Consensus / Divergence / Recommendation)
and calibration rules.

## Step 4: Notify User of Saved Output

After displaying the synthesis, tell the user:

> ---
> (use this emoji 💾) Full output saved to `.claude/council-cache/council-TIMESTAMP.md` (use the actual filename)

This lets them review the complete responses later.

## Output Format: Provider Names

Each provider section opens with a `## ● <Provider> (<role>) - <model>`
header, where the dot is the provider's colour swatch. Display the header as
written.
