--- 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 --- Switch the model profile used by GSD agents. This controls which Claude model each agent uses, balancing quality vs token spend. | 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 | ## 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. ``` **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 | | ... | ... | ```