Fix release for 1.1.2: the 14 longest skills keep their later phases after a compaction, a question nobody answered is never taken as an answer, settings read the same from a subfolder, the commit check works for a project in a subfolder of a larger repository, every skill opens with a title, and the shipped allow rules no longer approve deleting a branch or writing files without asking. Details in CHANGELOG.md; upgrade steps in UPGRADING.md (v1.1.2 → v1.1.3). Refs #83 Refs #133 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0185en4t76fPn7315q4c3nko
5.6 KiB
Model Tier Assignment
When a skill's
model:is used — skills onlyA skill's
model:overrides the session model for the rest of the turn the skill runs in, and your next prompt returns to the session model. Whether the override happens depends on how the skill starts:
How the skill starts Is model:used?You type /skill-namein Manual (default) modeYes You type /skill-namein auto modesonnetandopus: yes.haiku: no — auto mode does not support Haiku, so the session keeps its modelClaude starts the skill itself, through the Skill tool No — the session model runs it Two things follow:
- An
opusskill costs more in a Sonnet session. Typing/architecture-review,/gate-checkor/review-all-gddsmoves that turn to Opus.- A
haikuskill saves nothing in auto mode (this project's settings start terminal sessions in Manual, but a user can switch) — or when Claude starts it. Never tell a user ahaikutier is saving them money.Because the override ends at your next prompt, a skill that stops to ask you something in chat finishes on the session model after you answer.
This does NOT apply to agents.
model:in.claude/agents/*.mdis a different mechanism, spawned as a separate session rather than executed inline, and Claude Code documents it as applied: it is second in the subagent model order, after amodelClaude passes for one invocation. See the agent section below.
Skills and agents are assigned tiers by task complexity. A tier is written as
the alias model: takes, never as a model ID: Claude Code resolves each alias
to the current model in that family, so this table does not change when a new
model ships.
| Tier | model: |
When to use |
|---|---|---|
| Haiku | haiku |
Read-only status checks, formatting, simple lookups — no creative judgment needed |
| Sonnet | sonnet |
Implementation, design authoring, analysis of individual systems — default for most work |
| Opus | opus |
Multi-document synthesis, high-stakes phase gate verdicts, cross-system holistic review |
| Session | inherit |
Agents only — runs on whatever model the session runs |
Skills with model: haiku (5): /help, /onboard, /project-stage-detect,
/scope-check, /sprint-status
/patch-notesand/changelogaresonnet, nothaiku: both produce player-facing copy and need judgement the cheapest tier is defined as not doing. Full reasoning in each skill's own header.
/settingswas moved offhaikufor the same reason. It does not only read and format — it resolves every leaf with provenance and then compares the configured rigor against the project's observable working practice. That is synthesis, which is what the Haiku row is defined as excluding.
Skills with model: opus (3): /architecture-review, /gate-check, /review-all-gdds
All other skills are Sonnet. When creating a new skill, assign Haiku if it only
reads and formats; assign Opus if it must synthesize 5+ documents with
high-stakes output; otherwise write model: sonnet explicitly. Every skill
declares a tier. Whether the tier takes effect depends on how the skill starts
(see the table at the top of this file).
Agent model tiers. 30 agents use model: inherit and run on the session's
model. 19 are pinned:
- opus (3):
creative-director,producer,technical-director. Under an Opus session anopuspin runs on the session's exact model,[1m]included, so it never gets a smaller window than its parent. - sonnet (16):
lead-programmer,prototyper,devops-engineer,community-managerand the 12 engine sub-specialists:godot-csharp-specialist,godot-gdextension-specialist,godot-gdscript-specialist,godot-shader-specialist,ue-blueprint-specialist,ue-gas-specialist,ue-replication-specialist,ue-umg-specialist,unity-addressables-specialist,unity-dots-specialist,unity-shader-specialist,unity-ui-specialist./dev-storyand/code-reviewspawn the sub-specialists named inproject.yaml'sspecialistsblock (which/setup-enginewrites);/team-uispawnsunity-ui-specialistandue-umg-specialist;/team-releasespawnsdevops-engineerandcommunity-manager, and/team-live-opsspawnscommunity-manager. - haiku (0): no agent. The Haiku row above is for read-only lookups and
formatting; every agent drafts, writes or judges. Building CI pipelines and
writing player-facing text are Sonnet work, as they are for
/patch-notes.
Every agent not named above is inherit. The model: line in the agent's own
file is what runs.
A pin gets that model's context window, whatever the session runs. On the
Anthropic API sonnet currently resolves to Sonnet 5, which always has a 1M
window, so a sonnet pin is not smaller than a 1M session there; haiku
resolves to Haiku 4.5 and its 200K window, and behind an LLM gateway a sonnet
pin can be smaller too. A subagent starts from
the brief it is given, not the parent's conversation, so this only matters when
a brief is very large. If a pinned agent does overflow, run every subagent on
the session's model with one line in your .claude/settings.local.json
(Claude Code v2.1.257 or later):
{ "env": { "CLAUDE_CODE_SUBAGENT_MODEL_FORCE": "1" } }
It applies to every pin, the three opus directors included: under a
Sonnet session they run on Sonnet too. CLAUDE_CODE_SUBAGENT_MODEL alone does
not do it: it applies only to agents that set no model of their own.