# Model Spar

> 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.

- Skill: `amirulskulker/model-spar` (Agent Skill)
- Install (CLI): `npx skillmds@latest add amirulskulker/model-spar`
- Raw SKILL.md: https://api.skillmd.com/api/skills/amirulskulker/model-spar/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: amirulskulker (https://skillmd.com/u/amirulskulker)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/amirulskulker/model-spar

---


# 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

1. **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.
2. **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.)
3. **Roles give dissent structure.** Assign each seat an explicit stance
   (structural, contrarian, momentum, risk-first) so disagreements are
   legible, not random.
4. **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.
5. **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.*
