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>
107 lines
2.0 KiB
Markdown
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>
|