# COUNCIL PROTOCOL — three rounds, three seats (P2)

Authored 2026-07-30 [F]. Sponsor-mandated formal council (D-001): this protocol is executed as written; it is not simplified at run time.

## Seats
Three seats, **one model per seat, each in its own Claude Code session**:
- Seat A — Fable `[F]`
- Seat B — Opus `[O]`
- Seat C — Sonnet `[S]`

**Concurrency: hard limit 3 sessions total** (sponsor ceiling). On this box, sequential execution is preferred and changes nothing: independence is enforced by *what a seat is allowed to read*, not by simultaneity. A seat session reads only the inputs its round permits and must state at the top of its paper which files it read.

## Common rules
- Every paper is signed with its seat tag and dated. Papers land in the round folder and are **frozen when the round closes** — later corrections happen in the next round with a back-pointer.
- Every position, critique, and recommendation carries a confidence label:
  - **HIGH** — would be surprised if wrong; ≥2 independent cited sources, no live counter-evidence.
  - **MEDIUM** — best explanation of the evidence, but a named plausible alternative exists.
  - **LOW** — reasoned hunch; evidence thin, missing, or conflicting (name what's missing).
- Claims of fact follow the P1 evidence contract (cite or label UNVERIFIED). Council papers may reason beyond evidence, but must say when they are doing so.
- No seat may present group consensus that did not occur. Dissent is a deliverable.

## Round 1 — independent proposals (`round-1/`)
**Inputs allowed:** `PROJECT_CHARTER.md`, `00_ADMIN/*`, `01_RESEARCH/*`. **Forbidden:** other seats' papers, anything in `02_COUNCIL/`.
Each seat writes `seat-<A|B|C>-proposal.md`: recommended beachhead/wedge, expansion sequence (child/elder/pet), trust-model stance, monetisation hypothesis, top 5 risks, evidence gaps it wants filled — each element with a confidence label.
**Close:** all three proposals exist → freeze folder.

## Round 2 — mandatory adversarial critique (`round-2/`)
**Inputs allowed:** round-1 folder (all three proposals) + round-1 inputs.
Each seat writes `seat-<X>-critique.md` attacking **both** rival proposals (and may attack its own): for each rival — strongest objection, weakest evidence link, most likely failure mode, and one steelman improvement. Praise without an attack is a protocol violation. No revised proposals in this round.
**Close:** all three critiques exist → freeze folder.

## Round 3 — revision, aggregate, dissent (`round-3/`)
**Inputs allowed:** rounds 1–2 + P1 evidence (including any gap-filling research the critiques triggered — log such follow-ups in `00_ADMIN/TASKS.md`).
1. Each seat writes `seat-<X>-final.md`: revised position, explicitly listing what changed vs round 1 and **which critique caused each change** (or why a critique was rejected).
2. **Opus writes `AGGREGATE.md`** `[O]`: the synthesis — recommended direction, ranked alternatives, what evidence would flip the ranking. The aggregate must quote each seat's final confidence labels and may not upgrade any confidence above its source.
3. **Opus writes `DISAGREEMENT_REGISTER.md`** `[O]`: every position where seats did not converge — issue, each seat's stance + confidence, why it matters downstream, and what test/evidence would settle it. An empty register is presumed false consensus and fails the gate.
**Close:** finals + aggregate + register exist → freeze; P2 gate passes.

## Output → P3
`03_STRATEGY/` starts from `AGGREGATE.md` + `DISAGREEMENT_REGISTER.md`. Fable `[F]` signs off the final beachhead selection in P3, explicitly addressing each register entry (adopt, mitigate, or accept-with-risk).
