Files
msd-core/commands/gsd/set-profile.md
Lex Christopherson 4218f8666a feat(profiles): add model profiles for GSD agents
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>
2026-01-20 01:29:04 -06:00

107 lines
2.0 KiB
Markdown

---
name: set-profile
description: Switch model profile for GSD agents (quality/balanced/budget)
arguments:
- name: profile
description: "Profile name: quality, balanced, or budget"
required: true
---
<objective>
Switch the model profile used by GSD agents. This controls which Claude model each agent uses, balancing quality vs token spend.
</objective>
<profiles>
| Profile | Description |
|---------|-------------|
| **quality** | Opus everywhere except read-only verification |
| **balanced** | Opus for planning, Sonnet for execution/verification (default) |
| **budget** | Sonnet for writing, Haiku for research/verification |
</profiles>
<process>
## 1. Validate argument
```
if $ARGUMENTS.profile not in ["quality", "balanced", "budget"]:
Error: Invalid profile "$ARGUMENTS.profile"
Valid profiles: quality, balanced, budget
STOP
```
## 2. Check for project
```bash
ls .planning/config.json 2>/dev/null
```
If no `.planning/` directory:
```
Error: No GSD project found.
Run /gsd:new-project first to initialize a project.
```
## 3. Update config.json
Read current config:
```bash
cat .planning/config.json
```
Update `model_profile` field (or add if missing):
```json
{
"model_profile": "$ARGUMENTS.profile"
}
```
Write updated config back to `.planning/config.json`.
## 4. Confirm
```
✓ Model profile set to: $ARGUMENTS.profile
Agents will now use:
[Show table from model-profiles.md for selected profile]
Next spawned agents will use the new profile.
```
</process>
<examples>
**Switch to budget mode:**
```
/gsd:set-profile budget
✓ Model profile set to: budget
Agents will now use:
| Agent | Model |
|-------|-------|
| gsd-planner | sonnet |
| gsd-executor | sonnet |
| gsd-verifier | haiku |
| ... | ... |
```
**Switch to quality mode:**
```
/gsd:set-profile quality
✓ Model profile set to: quality
Agents will now use:
| Agent | Model |
|-------|-------|
| gsd-planner | opus |
| gsd-executor | opus |
| gsd-verifier | sonnet |
| ... | ... |
```
</examples>