一键导入
model-selection
Determine which LLM model to use for each agent spawn based on configuration, session directives, and task type
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Determine which LLM model to use for each agent spawn based on configuration, session directives, and task type
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Authorization Code Flow for web applications using MSAL.NET confidential client to sign in users and access APIs on their behalf
Handle MSAL distributed token cache collisions and stale entries in ASP.NET Core applications
On-Behalf-Of (OBO) Flow for web APIs to call downstream APIs while preserving user identity in MSAL.NET
{what this skill teaches agents}
Review API DTO implementations for contract/domain separation, mapping patterns, and REST compliance
This skill should be used when the user asks to "build a feature", "fix a bug", "implement something", "start a dev cycle", types "/dev", or describes a software task that requires design, implementation, testing, and shipping. Orchestrates the full software development lifecycle from interrogation through shipping, with self-learning that improves over time.
| name | model-selection |
| description | Determine which LLM model to use for each agent spawn based on configuration, session directives, and task type |
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.