.squad/templates/skills/model-selection/SKILL.md
# Model Selection > Determines which LLM model to use for each agent spawn. ## SCOPE ✅ THIS SKILL PRODUCES: - A resolved `model` parameter for every `task` tool call - Persistent model preferences in `.squad/config.json` - Spawn acknowledgments that include the resolved model ❌ THIS SKILL DOES NOT PRODUCE: - Code, tests, or documentation - Model performance benchmarks - Cost reports or billing artifacts ## Context Squad supports 18+ models across three tiers (premium, standard, fast). The
npx skillsauth add cwoodruff/morespeakers-com .squad/templates/skills/model-selectionInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Determines which LLM model to use for each agent spawn.
✅ THIS SKILL PRODUCES:
model parameter for every task tool call.squad/config.json❌ THIS SKILL DOES NOT PRODUCE:
Squad supports 18+ models across three tiers (premium, standard, fast). The coordinator must select the right model for each agent spawn. Users can set persistent preferences that survive across sessions.
Resolution is first-match-wins — the highest layer with a value wins.
| Layer | Name | Source | Persistence |
|-------|------|--------|-------------|
| 0a | Per-Agent Config | .squad/config.json → agentModelOverrides.{name} | Persistent (survives sessions) |
| 0b | Global Config | .squad/config.json → defaultModel | Persistent (survives sessions) |
| 1 | Session Directive | User said "use X" in current session | Session-only |
| 2 | Charter Preference | Agent's charter.md → ## Model section | Persistent (in charter) |
| 3 | Task-Aware Auto | Code → sonnet, docs → haiku, visual → opus | Computed per-spawn |
| 4 | Default | claude-haiku-4.5 | Hardcoded fallback |
Key principle: Layer 0 (persistent config) beats everything. If the user said "always use opus" and it was saved to config.json, every agent gets opus regardless of role or task type. This is intentional — the user explicitly chose quality over cost.
.squad/config.jsondefaultModel field — if present, this is the Layer 0 override for all spawnsagentModelOverrides field — if present, these are per-agent Layer 0a overridesagentModelOverrides.{agentName} in config.json? → Use it.defaultModel in config.json? → Use it.## Model section? → Use it.claude-sonnet-4.6claude-sonnet-4.6claude-opus-4.6claude-haiku-4.5claude-haiku-4.5🔧 {Name} ({resolved_model}) — {task}Trigger phrases: "always use X", "use X for everything", "switch to X", "default to X"
defaultModel to .squad/config.json (merge, don't overwrite)✅ Model preference saved: {model} — all future sessions will use this until changed.Per-agent trigger: "use X for {agent}"
agentModelOverrides.{agent} in .squad/config.json✅ {Agent} will always use {model} — saved to config.Trigger phrases: "switch back to automatic", "clear model preference", "use default models"
defaultModel from .squad/config.json✅ Model preference cleared — returning to automatic selection.After resolving the model and including it in the spawn template, this skill is done. Do NOT:
.squad/config.json).squad/config.json model-related fields:
{
"version": 1,
"defaultModel": "claude-opus-4.6",
"agentModelOverrides": {
"fenster": "claude-sonnet-4.6",
"mcmanus": "claude-haiku-4.5"
}
}
defaultModel — applies to ALL agents unless overridden by agentModelOverridesagentModelOverrides — per-agent overrides that take priority over defaultModelIf a model is unavailable (rate limit, plan restriction), retry within the same tier:
Premium: claude-opus-4.6 → claude-opus-4.6-fast → claude-opus-4.5 → claude-sonnet-4.6
Standard: claude-sonnet-4.6 → gpt-5.4 → claude-sonnet-4.5 → gpt-5.3-codex → claude-sonnet-4
Fast: claude-haiku-4.5 → gpt-5.1-codex-mini → gpt-4.1 → gpt-5-mini
Never fall UP in tier. A fast task won't land on a premium model via fallback.
tools
Cross-platform path handling and command patterns
development
Update tests when changing APIs — no exceptions
development
Core conventions and patterns used in the Squad codebase
tools
Find and resume interrupted Copilot CLI sessions using session_store queries