Adds switchable model profiles (quality/balanced/budget) to control which Claude model each agent uses, balancing quality vs token spend. New files: - get-shit-done/references/model-profiles.md - profile lookup table - commands/gsd/set-profile.md - runtime profile switching Updated orchestrators to resolve model before spawning agents: - new-project, new-milestone (7 calls each) - plan-phase (4 calls) - execute-phase (3 calls) - audit-milestone, debug, research-phase, quick (1-2 calls each) - workflows: execute-phase, execute-plan, verify-work, map-codebase Profile stored in .planning/config.json as model_profile. Default: "balanced" (Opus for planning, Sonnet for execution). Closes #160 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
74 lines
2.5 KiB
Markdown
74 lines
2.5 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.
|