Model choice
GAIA does not run everything on one model. Your session’s model handles the conversation, the decisions, and every step that needs you. When a workflow hands a step to a sub-agent (opens in a new tab) (a separate Claude instance with its own fresh context), the workflow names the sub-agent’s model, chosen for that kind of work. This page lists every one of those choices.
How GAIA picks a model
Section titled “How GAIA picks a model”Every choice follows one table that Claude reads from your project wiki (ask Claude to show it to you). GAIA ranks models by how well they fit the work: how much reasoning it needs, and how closely the model has to stick to its instructions. Price decides only between two models that fit equally well.
| Kind of work | Model | Why it fits |
|---|---|---|
| Pulling out, sorting, or listing items by a written rule | Haiku | A rule decides each item, and the result can be counted or checked. |
| Following a template, a rule id, or a written convention: scaffolding, or a fix for a specific lint or accessibility rule | Haiku | The template already holds the answer. More reasoning adds nothing. |
| Reading widely and making a call on each item: research, checking a finding, verifying | Sonnet | The instructions carry the judgment, and Sonnet applies it one item at a time without straying from them. |
| A bounded change with a written plan and a check behind it | Sonnet | The plan carries the judgment, and Sonnet sticks to the plan. |
| Review: finding what a change got wrong | Opus | It needs sustained judgment and a wide view. A missed defect costs more than the price difference. |
| Specs, plans, and design or architecture decisions | Opus (or Fable) | One weak choice here carries into everything built on it. |
Some steps never leave your session, whatever kind of work they are: a step that needs to ask you something (a sub-agent cannot ask you questions), small work, and quick edit-run-fix loops, where handing off costs more than it saves. For the roles sub-agents take and why only your session commits, see Who does what.
Effort
Section titled “Effort”GAIA never sets effort. Every sub-agent runs at your session’s /effort level, the same as work your session does itself, so a low-effort session reviews at low and a high-effort one at high. The CLAUDE_CODE_EFFORT_LEVEL environment variable overrides the level on a machine. Set it in your shell profile, then restart Claude Code. GAIA chooses the model. You choose the effort.
Model at each step
Section titled “Model at each step”A step not listed here runs on your session’s model. That covers /gaia-debt, /gaia-residue, /gaia-codify, /gaia-forensics, and any sub-agent a workflow starts without naming a model.
| Workflow | Step | Model |
|---|---|---|
/gaia-spec | Writing the SPEC, asking you questions, its audit | Your model. On a model other than Opus or Fable, Claude first offers to stop so you can switch with /model. Auto mode skips the offer. |
/gaia-plan | The planner | Opus or Fable. On Opus or Fable it keeps your model. Otherwise Claude asks: Opus (recommended), Fable, or your model. Auto mode uses Opus without asking. |
| Each phase’s task sub-agents | Sonnet. The planner can raise a phase to Opus when it judges that phase to be deep design work, and names the phase and the reason in the plan. | |
uat-fidelity-judge | Opus | |
| Code Audit Team | audit-loop-unit, which runs the rounds | Opus |
Members: code-audit-frontend, code-audit-github-workflows | Opus | |
audit-rule-specialist, started by code-audit-frontend | Haiku | |
audit-refuter, for code-audit-frontend’s own Critical and Major findings | Sonnet | |
audit-light-reviewer | Sonnet | |
| The fixer | Sonnet | |
tdd skill | worthiness-evaluator | Opus |
/gaia-fitness | fitness-judge, and the agent that proposes fixes | Sonnet |
/gaia-cleanse | Writing the report, then applying it | Sonnet, one agent each |
/gaia-wiki | Sync, and finding consolidate issues | Sonnet |
| Lint checks | Haiku | |
| Consolidate questions and lint fixes | Your model | |
/update-deps | Override checks, minor and patch updates, sub-dependency refresh | Haiku |
| Major updates to react, react-router, storybook, or typescript | Opus | |
| Major updates to eslint and every other group | Sonnet | |
| Security fixes | Your model | |
/update-gaia | The agent that merges the update into your project | Opus when the update crosses a major version, Sonnet otherwise |
| Scaffolders and fix skills | new-component, new-route, new-hook, new-service, eslint-fixes, a11y-fixes | Haiku |
Workflow flowcharts
Section titled “Workflow flowcharts”These show the workflows where the model changes from step to step.
Skills that set a model
Section titled “Skills that set a model”Six skills set Haiku in their frontmatter: the four scaffolders (new-component, new-route, new-hook, new-service) and the two fix skills (eslint-fixes, a11y-fixes). When one of them loads, Claude Code runs the rest of that turn on Haiku. That is right for these skills, because the turn that loads them does nothing but follow a template or fix a specific rule.
Every other skill leaves the model alone and runs on yours. Some look like lookups but load in the middle of other work, such as typescript and tailwind. A Haiku setting there would move the rest of your implementation turn to Haiku. Others need judgment, such as react-code.
A pinned skill runs the rest of the turn on its model even when you picked a stronger one, so a pin on judgment work would hold that work back. Set a model on a skill you write only when every use of it is template or rule-id work.
What you control
Section titled “What you control”- Your session’s model, with
/model. It runs every step that is not listed in the table, and everything that needs you. - The planner’s model, when
/gaia-planasks. - Effort, with
/effort, for your session and every sub-agent.
What each step costs shows up in the cost and usage ledger.