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:
ProfilePhilosophyBest For
qualityOpus for decisions, Sonnet for verificationCritical work with quota available
balancedOpus for planning, Sonnet for everything elseDefault recommended setting
budgetSonnet for code, Haiku for researchHigh-volume work or less critical phases

Switching Profiles

Quick switch

/gsd:set-profile budget
Changes profile immediately and shows model assignments.

Interactive configuration

/gsd:settings
Walk through all settings including model profile.

Per-Agent Model Breakdown

Quality Profile

AgentModelWhy Opus
gsd-plannerOpusArchitectural decisions, plan structure
gsd-roadmapperOpusHigh-level project decomposition
gsd-executorOpusComplex implementation, multiple files
gsd-phase-researcherOpusDeep domain investigation
gsd-project-researcherOpusEcosystem and stack research
gsd-research-synthesizerSonnetRead-only synthesis of research
gsd-debuggerOpusRoot cause analysis, complex investigation
gsd-codebase-mapperSonnetRead-only codebase analysis
gsd-verifierSonnetRead-only goal verification
gsd-plan-checkerSonnetRead-only plan validation
gsd-integration-checkerSonnetRead-only integration verification
Use when: You need maximum quality and have quota available.

Balanced Profile (Default)

AgentModelRationale
gsd-plannerOpusPlans determine everything downstream
gsd-roadmapperSonnetRoadmap structure is simpler than plan details
gsd-executorSonnetFollows well-structured plans reliably
gsd-phase-researcherSonnetResearch quality good enough for most domains
gsd-project-researcherSonnetInitial research doesn’t need Opus
gsd-research-synthesizerSonnetSynthesizing existing research
gsd-debuggerSonnetScientific method works well at Sonnet level
gsd-codebase-mapperHaikuSimple pattern recognition
gsd-verifierSonnetVerification needs reasoning, not just pattern matching
gsd-plan-checkerSonnetCritical feedback loop
gsd-integration-checkerSonnetChecks are straightforward
Use when: You want high quality with reasonable token usage (recommended).

Budget Profile

AgentModelTradeoff
gsd-plannerSonnetPlans may be less creative but still valid
gsd-roadmapperSonnetRoadmap structure adequate
gsd-executorSonnetFollows plans well
gsd-phase-researcherHaikuResearch may be shallower
gsd-project-researcherHaikuInitial research less comprehensive
gsd-research-synthesizerHaikuBasic synthesis sufficient
gsd-debuggerSonnetKeep Sonnet for debugging (quality matters)
gsd-codebase-mapperHaikuPattern recognition fine
gsd-verifierHaikuSimple pass/fail checks
gsd-plan-checkerHaikuBasic validation adequate
gsd-integration-checkerHaikuIntegration checks straightforward
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

AgentRoleQualityBalancedBudget
gsd-plannerCreates execution plansOpusOpusSonnet
gsd-plan-checkerValidates plansSonnetSonnetHaiku
gsd-roadmapperDecomposes milestone into phasesOpusSonnetSonnet
Why planner gets Opus in balanced: Plans determine everything that follows. An Opus plan + Sonnet execution beats Sonnet plan + Opus execution.

Research agents

AgentRoleQualityBalancedBudget
gsd-phase-researcherDomain research per phaseOpusSonnetHaiku
gsd-project-researcherEcosystem research at initOpusSonnetHaiku
gsd-research-synthesizerCombines research findingsSonnetSonnetHaiku
Toggle: Set workflow.research: false to skip research entirely.

Execution agents

AgentRoleQualityBalancedBudget
gsd-executorImplements plansOpusSonnetSonnet
gsd-verifierConfirms goals metSonnetSonnetHaiku
Why Sonnet is enough: Executors follow explicit XML plans. With good plans, Sonnet executes reliably.

Utility agents

AgentRoleQualityBalancedBudget
gsd-debuggerInvestigates issuesOpusSonnetSonnet
gsd-codebase-mapperAnalyzes existing codeSonnetHaikuHaiku
gsd-integration-checkerValidates integrationsSonnetSonnetHaiku

Cost Considerations

Token usage patterns

StageAgentsContext SizeProfile Impact
Project init4 researchers, roadmapper50-100K per agentModerate
Phase planning4 researchers, planner, checker100-150K totalModerate
Phase executionN executors, verifier200K per executorHigh
Debugging1 debugger100-150KLow
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:
# Use quality for critical foundation
/gsd:set-profile quality
/gsd:plan-phase 1  # Auth system
/gsd:execute-phase 1

# Switch to balanced for standard features  
/gsd:set-profile balanced
/gsd:plan-phase 2  # User profiles
/gsd:execute-phase 2

# Drop to budget for nice-to-haves
/gsd:set-profile budget
/gsd:plan-phase 8  # Easter eggs
/gsd:execute-phase 8

Workflow Toggle Interaction

Model profiles work with workflow toggles:
/gsd:settings

# Model profile: budget
# Research: off       # Skip 4 research agents entirely
# Plan check: off     # Skip plan checker loop
# Verifier: off       # Skip post-execution verification
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:
# Skip research for this phase (use existing knowledge)
/gsd:plan-phase 5 --skip-research

# Skip plan verification (trust the plan)
/gsd:plan-phase 5 --skip-verify
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:
node ~/.claude/get-shit-done/bin/gsd-tools.cjs resolve-model gsd-planner --raw
# Output: claude-opus-4-20250514 (if profile is balanced)

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:
/gsd:set-profile quality
Or disable research if domain is familiar:
/gsd:settings
# Set research: off

Configuration File

Profile is stored in .planning/config.json:
{
  "model_profile": "balanced",
  "workflow": {
    "research": true,
    "plan_check": true,
    "verifier": true
  }
}
Edit directly or use /gsd:settings to update interactively.