Skip to main content
GSD uses different Claude models for different agents. Model profiles let you balance quality vs token spend based on your needs.

Profile Overview

Three profiles control the quality/cost tradeoff:

Switching Profiles

Quick switch

Changes profile immediately and shows model assignments.

Interactive configuration

Walk through all settings including model profile.

Per-Agent Model Breakdown

Quality Profile

Use when: You need maximum quality and have quota available.

Balanced Profile (Default)

Use when: You want high quality with reasonable token usage (recommended).

Budget Profile

Use when: High token volume, prototyping, or less critical phases.
Notice that even in budget mode, the debugger stays Sonnet. Finding root causes is important enough to justify the quality.

Which Agents Use Which Models

Planning agents

Why planner gets Opus in balanced: Plans determine everything that follows. An Opus plan + Sonnet execution beats Sonnet plan + Opus execution.

Research agents

Toggle: Set workflow.research: false to skip research entirely.

Execution agents

Why Sonnet is enough: Executors follow explicit XML plans. With good plans, Sonnet executes reliably.

Utility agents

Cost Considerations

Token usage patterns

Execution uses the most tokens because each plan gets a fresh 200K context. This is where budget profile helps most.

Example milestone cost

Milestone: 8 phases, ~15 plans total
  • Project init: 4 Opus researchers × 50K = 200K Opus
  • Planning (8 phases): 32 Opus researchers × 100K = 3.2M Opus
  • Planning overhead: 8 Opus planners × 50K = 400K Opus
  • Execution: 15 Opus executors × 200K = 3M Opus
  • Verification: 8 Sonnet verifiers × 30K = 240K Sonnet
Total: ~6.8M Opus, 240K Sonnet

When to Use Each Profile

1

Start with balanced

The default profile is well-tuned. Opus planning + Sonnet execution is the sweet spot for most work.
2

Upgrade to quality if...

  • Working on production-critical systems
  • Domain is complex or unfamiliar
  • Architectural decisions are high-stakes
  • You have Opus quota to spare
3

Downgrade to budget if...

  • Prototyping or experimental work
  • Domain is very familiar
  • High volume of phases to execute
  • Token budget is constrained
  • Working on less critical features

Mixing Profiles

You can switch profiles mid-milestone:

Workflow Toggle Interaction

Model profiles work with workflow toggles:
Combined effect:
  • Budget + all agents on - Cheaper models, full process
  • Balanced + research off - Good models, skip research
  • Budget + research/verify off - Fastest/cheapest, minimal guardrails
Disabling agents speeds up execution but removes quality checks. Use judiciously.

Per-Command Overrides

Some commands support per-invocation overrides:
These don’t change your profile - they just skip agents temporarily.

Model Selection Logic

GSD resolves models at runtime:
  1. Read .planning/config.json for model_profile
  2. Look up agent in profile mapping
  3. Resolve model name from profile
  4. Pass to Task() invocation
You can inspect resolved models:

Best Practices

Do:

  • Start with balanced (it’s the default for good reason)
  • Upgrade to quality for critical phases
  • Switch profiles freely based on phase importance
  • Disable research in familiar domains (bigger win than profile change)

Don’t:

  • Use quality everywhere (token costs explode)
  • Use budget for complex/critical work (quality suffers)
  • Change profiles mid-phase (finish what you started)
  • Obsess over profiles (focus on good plans instead)

Troubleshooting

”Plans seem wrong”

This is usually a planning issue, not a model issue:
  1. Run /gsd:discuss-phase N to clarify preferences
  2. Check if CONTEXT.md captured your vision
  3. Try /gsd:list-phase-assumptions N to spot misalignment
Only after ruling out context issues should you try upgrading to quality profile.

”Execution produces stubs”

This is usually a plan scope issue, not a model issue:
  1. Check if plan has >3 tasks (too ambitious)
  2. Verify tasks are atomic and clear
  3. Consider breaking phase into smaller phases
Sonnet executors handle well-scoped plans reliably. Opus won’t fix bad plans.

”Research feels shallow”

This might be a model issue:
Or disable research if domain is familiar:

Configuration File

Profile is stored in .planning/config.json:
Edit directly or use /gsd:settings to update interactively.