Model Spar - the family-diverse panel
A panel is not "ask three models and pick the best answer." A panel exists
to make correlated models disagree - which is exactly what a single-provider
or single-family answer cannot do.
Ground rules
- Family-diverse or nothing. Same-family models correlate (same
training data, same blind spots). A "5 model panel" of one family is a
fancy single opinion. Ship families: frontier + contending + local.
- Identical context pack. Every seat gets the exact same input, verbatim
- the panel measures the MODELS, not the prompt quality differences.
(Bonus: identical context = cache-write once, cache-read N times, which
is why panels are cheap - see the cost-runway-tracker skill.)
- Roles give dissent structure. Assign each seat an explicit stance
(structural, contrarian, momentum, risk-first) so disagreements are
legible, not random.
- Never average to mush. A verdict is produced FROM the disagreement:
surface what they split on, then decide with the evidence table. "Record
who said what" is mandatory; consensus-by-averaging hides information.
- Pay attention to the lone voice. The single contrarian is often
carrying the information the herd missed - specifically ask for each
seat's "one risk the others won't flag."
The pattern
1. BUILD the context pack - the problem, constraints, data, nothing else
2. FILL the roster - 1 family per seat, roles assigned
3. RUN the panel - same input, independent, no chat between seats
4. DIFF the outputs - agreement map + split map
5. DECIDE from the split - evidence table wins, name the deciding factor
6. RECORD the dissent - the minority report is an artifact, not a footnote
Known pitfalls (learned the hard way)
- Family-blind "diversity". claude/gpt/grok/qwen is diverse; claude +
a claude clone is not. Check provider, not name.
- Reasoning-token starvation. Reasoning flagships burn their whole
output budget on chain-of-thought when
max_tokens is set near the
reasoning floor - content returns null with finish_reason=length.
Always set max_tokens well above the reasoning budget (live verified:
opus-class needs ~16000+ for long-form panel answers; flash-class ~4096).
- Panel drift on budgets. The free fallback roster must be pre-defined,
so a failed seat degrades to a known model, not whatever is cheapest today.
- Cost illusion. 5 flagships feels expensive; with cache-read discounts
(6-50x for shared context) it is not. Measure the actual panel cost, don't
assume it.
Output discipline
- Every panel run produces: the verdict, each seat's answer verbatim, the
split map, and the deciding evidence. The minority report is retained.
- No verdict without a named decision driver; "they disagreed" is not a
decision.
Skill pattern: dissent-by-design -> decision from the split. The value is
the disagreement, which correlated models cannot give you.
1---2name: model-spar3description: Multi-model sparring / panel pattern. Use when a decision is high-stakes, judgment-heavy, or single-model-biased: product selection, trading calls, architectural verdicts, diagnosis of a struggling system. Deliberately run the SAME input through N model FAMILIES, keep their dissent visible, and produce a decision from the disagreement - never by averaging it away.4---56# Model Spar - the family-diverse panel78A panel is not "ask three models and pick the best answer." A panel exists9to make correlated models disagree - which is exactly what a single-provider10or single-family answer cannot do.1112## Ground rules13141. **Family-diverse or nothing.** Same-family models correlate (same15 training data, same blind spots). A "5 model panel" of one family is a16 fancy single opinion. Ship families: frontier + contending + local.172. **Identical context pack.** Every seat gets the exact same input, verbatim18 - the panel measures the MODELS, not the prompt quality differences.19 (Bonus: identical context = cache-write once, cache-read N times, which20 is why panels are cheap - see the cost-runway-tracker skill.)213. **Roles give dissent structure.** Assign each seat an explicit stance22 (structural, contrarian, momentum, risk-first) so disagreements are23 legible, not random.244. **Never average to mush.** A verdict is produced FROM the disagreement:25 surface what they split on, then decide with the evidence table. "Record26 who said what" is mandatory; consensus-by-averaging hides information.275. **Pay attention to the lone voice.** The single contrarian is often28 carrying the information the herd missed - specifically ask for each29 seat's "one risk the others won't flag."3031## The pattern3233```341. BUILD the context pack - the problem, constraints, data, nothing else352. FILL the roster - 1 family per seat, roles assigned363. RUN the panel - same input, independent, no chat between seats374. DIFF the outputs - agreement map + split map385. DECIDE from the split - evidence table wins, name the deciding factor396. RECORD the dissent - the minority report is an artifact, not a footnote40```4142## Known pitfalls (learned the hard way)4344- **Family-blind "diversity".** claude/gpt/grok/qwen is diverse; claude +45 a claude clone is not. Check provider, not name.46- **Reasoning-token starvation.** Reasoning flagships burn their whole47 output budget on chain-of-thought when `max_tokens` is set near the48 reasoning floor - content returns null with `finish_reason=length`.49 Always set max_tokens well above the reasoning budget (live verified:50 opus-class needs ~16000+ for long-form panel answers; flash-class ~4096).51- **Panel drift on budgets.** The free fallback roster must be pre-defined,52 so a failed seat degrades to a known model, not whatever is cheapest today.53- **Cost illusion.** 5 flagships feels expensive; with cache-read discounts54 (6-50x for shared context) it is not. Measure the actual panel cost, don't55 assume it.5657## Output discipline5859- Every panel run produces: the verdict, each seat's answer verbatim, the60 split map, and the deciding evidence. The minority report is retained.61- No verdict without a named decision driver; "they disagreed" is not a62 decision.6364---65*Skill pattern: dissent-by-design -> decision from the split. The value is66the disagreement, which correlated models cannot give you.*