Model profiles control which Claude model each GSD agent uses. Balance quality vs token spend based on project needs.
Quick Comparison
| Profile | Planning | Execution | Verification | Best For |
|---|
quality | Opus | Opus | Sonnet | Critical work, quota available |
balanced (default) | Opus | Sonnet | Sonnet | Most projects, best value |
budget | Sonnet | Sonnet | Haiku | High-volume, less critical work |
Setting Your Profile
During Project Init
You’ll be asked to choose a profile during configuration.
Change Anytime
/gsd:set-profile quality
/gsd:set-profile balanced
/gsd:set-profile budget
Or via settings:
Per-Agent Breakdown
Quality Profile
Maximum quality. Opus for all decision-making, Sonnet for read-only verification.
| Agent | Model | Role |
|---|
| gsd-planner | Opus | Creates task plans with XML structure |
| gsd-roadmapper | Opus | Designs phase breakdown and roadmap |
| gsd-executor | Opus | Implements code from plans |
| gsd-phase-researcher | Opus | Investigates domain/stack for phases |
| gsd-project-researcher | Opus | Deep research during project init |
| gsd-research-synthesizer | Sonnet | Combines research findings |
| gsd-debugger | Opus | Root cause analysis and fixes |
| gsd-codebase-mapper | Sonnet | Maps existing codebase structure |
| gsd-verifier | Sonnet | Verifies phase completion |
| gsd-plan-checker | Sonnet | Validates plans achieve goals |
| gsd-integration-checker | Sonnet | Checks cross-phase integration |
Use when:
- Building production systems
- Complex architecture decisions
- Quota is available
- Quality is non-negotiable
Balanced Profile (Default)
Opus where it matters most (planning), Sonnet everywhere else.
| Agent | Model | Role |
|---|
| gsd-planner | Opus | Creates task plans with XML structure |
| gsd-roadmapper | Sonnet | Designs phase breakdown and roadmap |
| gsd-executor | Sonnet | Implements code from plans |
| gsd-phase-researcher | Sonnet | Investigates domain/stack for phases |
| gsd-project-researcher | Sonnet | Deep research during project init |
| gsd-research-synthesizer | Sonnet | Combines research findings |
| gsd-debugger | Sonnet | Root cause analysis and fixes |
| gsd-codebase-mapper | Haiku | Maps existing codebase structure |
| gsd-verifier | Sonnet | Verifies phase completion |
| gsd-plan-checker | Sonnet | Validates plans achieve goals |
| gsd-integration-checker | Sonnet | Checks cross-phase integration |
Use when:
- Most development work
- Good balance of quality and cost
- Default recommendation
Budget Profile
Minimum cost. Sonnet for code, Haiku for research and verification.
| Agent | Model | Role |
|---|
| gsd-planner | Sonnet | Creates task plans with XML structure |
| gsd-roadmapper | Sonnet | Designs phase breakdown and roadmap |
| gsd-executor | Sonnet | Implements code from plans |
| gsd-phase-researcher | Haiku | Investigates domain/stack for phases |
| gsd-project-researcher | Haiku | Deep research during project init |
| gsd-research-synthesizer | Haiku | Combines research findings |
| gsd-debugger | Sonnet | Root cause analysis and fixes |
| gsd-codebase-mapper | Haiku | Maps existing codebase structure |
| gsd-verifier | Haiku | Verifies phase completion |
| gsd-plan-checker | Haiku | Validates plans achieve goals |
| gsd-integration-checker | Haiku | Checks cross-phase integration |
Use when:
- Prototyping or exploration
- High-volume work
- Less critical phases
- Conserving quota
Profile Philosophy
Why Opus for Planning?
Planning is where architectural decisions happen. A good plan structure makes execution straightforward. Bad plans create cascading issues.
Opus excels at:
- Breaking down complex requirements
- Identifying dependencies
- Creating atomic, executable tasks
- Anticipating edge cases
Why Sonnet for Execution?
Sonnet follows structured plans extremely well. Given clear XML instructions, it produces consistent quality code.
Balanced profile philosophy:
- Opus plans the “what” and “why”
- Sonnet executes the “how”
- Quality stays high, cost stays reasonable
Why Haiku for Verification?
Verification is read-only analysis. Haiku is fast and capable for checking deliverables against requirements.
Budget profile trade-off:
- Lower cost across the board
- Acceptable quality for most work
- May need manual review on complex phases
Token Cost Implications
Relative Costs (Approximate)
| Model | Input Cost | Output Cost | Speed |
|---|
| Opus | 4x | 4x | Slowest |
| Sonnet | 1x | 1x | Medium |
| Haiku | 0.1x | 0.1x | Fastest |
Example Phase Execution
A typical phase with 3 plans:
| Profile | Planning Cost | Execution Cost | Verification Cost | Total |
|---|
| Quality | 4x (Opus) | 12x (3× Opus) | 1x (Sonnet) | ~17x |
| Balanced | 4x (Opus) | 3x (3× Sonnet) | 1x (Sonnet) | ~8x |
| Budget | 1x (Sonnet) | 3x (3× Sonnet) | 0.1x (Haiku) | ~4x |
Actual costs vary based on context size, research depth, and plan complexity.
Combining Profiles with Workflow Agents
Further optimize cost by disabling agents:
Maximum Speed (Budget Profile + No Agents)
{
"model_profile": "budget",
"workflow": {
"research": false,
"plan_check": false,
"verifier": false
}
}
Use for: Quick prototypes, familiar domains, iteration cycles.
Maximum Quality (Quality Profile + All Agents)
{
"model_profile": "quality",
"workflow": {
"research": true,
"plan_check": true,
"verifier": true,
"nyquist_validation": true
}
}
Use for: Production systems, complex domains, critical phases.
Recommended Balanced (Default)
{
"model_profile": "balanced",
"workflow": {
"research": true,
"plan_check": true,
"verifier": true,
"nyquist_validation": true
}
}
Use for: Most development work.
Model Selection Strategy
Choose profile based on:
Use Quality When:
- Building production systems
- Making critical architecture decisions
- Complex or unfamiliar domain
- Quota is available
- Quality > cost
Use Balanced When:
- Normal development work
- Good existing context (after map-codebase)
- Want good quality at reasonable cost
- Default for most projects
Use Budget When:
- Prototyping or exploration
- High-volume work (many phases)
- Simple or familiar domains
- Conserving quota
- Speed > quality
Dynamic Profile Switching
Switch profiles per phase:
# Critical foundation phase
/gsd:set-profile quality
/gsd:plan-phase 1
/gsd:execute-phase 1
# Simpler UI phase
/gsd:set-profile balanced
/gsd:plan-phase 2
/gsd:execute-phase 2
# Bulk content phase
/gsd:set-profile budget
/gsd:plan-phase 3
/gsd:execute-phase 3
Viewing Current Profile
Check active profile:
cat .planning/config.json | grep model_profile
Or via progress:
Shows current config including profile.