Claude Code's "opus" alias maps to a specific model version (claude-opus-4-1). Organizations that block older opus versions while allowing newer ones see agents silently fall back to Sonnet. By returning "inherit" instead, agents use whatever opus version the user has configured in their session. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
77 lines
2.9 KiB
Markdown
77 lines
2.9 KiB
Markdown
# Model Profiles
|
|
|
|
Model profiles control which Claude model each GSD agent uses. This allows balancing quality vs token spend.
|
|
|
|
## Profile Definitions
|
|
|
|
| Agent | `quality` | `balanced` | `budget` |
|
|
|-------|-----------|------------|----------|
|
|
| gsd-planner | opus | opus | sonnet |
|
|
| gsd-roadmapper | opus | sonnet | sonnet |
|
|
| gsd-executor | opus | sonnet | sonnet |
|
|
| gsd-phase-researcher | opus | sonnet | haiku |
|
|
| gsd-project-researcher | opus | sonnet | haiku |
|
|
| gsd-research-synthesizer | sonnet | sonnet | haiku |
|
|
| gsd-debugger | opus | sonnet | sonnet |
|
|
| gsd-codebase-mapper | sonnet | haiku | haiku |
|
|
| gsd-verifier | sonnet | sonnet | haiku |
|
|
| gsd-plan-checker | sonnet | sonnet | haiku |
|
|
| gsd-integration-checker | sonnet | sonnet | haiku |
|
|
|
|
## Profile Philosophy
|
|
|
|
**quality** - Maximum reasoning power
|
|
- Opus for all decision-making agents
|
|
- Sonnet for read-only verification
|
|
- Use when: quota available, critical architecture work
|
|
|
|
**balanced** (default) - Smart allocation
|
|
- Opus only for planning (where architecture decisions happen)
|
|
- Sonnet for execution and research (follows explicit instructions)
|
|
- Sonnet for verification (needs reasoning, not just pattern matching)
|
|
- Use when: normal development, good balance of quality and cost
|
|
|
|
**budget** - Minimal Opus usage
|
|
- Sonnet for anything that writes code
|
|
- Haiku for research and verification
|
|
- Use when: conserving quota, high-volume work, less critical phases
|
|
|
|
## Resolution Logic
|
|
|
|
Orchestrators resolve model before spawning:
|
|
|
|
```
|
|
1. Read .planning/config.json
|
|
2. Get model_profile (default: "balanced")
|
|
3. Look up agent in table above
|
|
4. Pass model parameter to Task call
|
|
```
|
|
|
|
## Switching Profiles
|
|
|
|
Runtime: `/gsd:set-profile <profile>`
|
|
|
|
Per-project default: Set in `.planning/config.json`:
|
|
```json
|
|
{
|
|
"model_profile": "balanced"
|
|
}
|
|
```
|
|
|
|
## Design Rationale
|
|
|
|
**Why Opus for gsd-planner?**
|
|
Planning involves architecture decisions, goal decomposition, and task design. This is where model quality has the highest impact.
|
|
|
|
**Why Sonnet for gsd-executor?**
|
|
Executors follow explicit PLAN.md instructions. The plan already contains the reasoning; execution is implementation.
|
|
|
|
**Why Sonnet (not Haiku) for verifiers in balanced?**
|
|
Verification requires goal-backward reasoning - checking if code *delivers* what the phase promised, not just pattern matching. Sonnet handles this well; Haiku may miss subtle gaps.
|
|
|
|
**Why Haiku for gsd-codebase-mapper?**
|
|
Read-only exploration and pattern extraction. No reasoning required, just structured output from file contents.
|
|
|
|
**Why `inherit` instead of passing `opus` directly?**
|
|
Claude Code's `"opus"` alias maps to a specific model version. Organizations may block older opus versions while allowing newer ones. GSD returns `"inherit"` for opus-tier agents, causing them to use whatever opus version the user has configured in their session. This avoids version conflicts and silent fallbacks to Sonnet.
|