Switch the model profile used by GSD agents. Controls which Claude model each agent uses, balancing quality vs token spend. Read all files referenced by the invoking prompt's execution_context before starting. Validate argument: ``` if $ARGUMENTS.profile not in ["quality", "balanced", "budget"]: Error: Invalid profile "$ARGUMENTS.profile" Valid profiles: quality, balanced, budget EXIT ``` Ensure config exists and load current state: ```bash node ~/.claude/get-shit-done/bin/gsd-tools.js config-ensure-section INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.js state load) ``` This creates `.planning/config.json` with defaults if missing and loads current config. Read current config from state load or directly: Update `model_profile` field: ```json { "model_profile": "$ARGUMENTS.profile" } ``` Write updated config back to `.planning/config.json`. Display confirmation with model table for selected profile: ``` ✓ Model profile set to: $ARGUMENTS.profile Agents will now use: [Show table from MODEL_PROFILES in gsd-tools.js for selected profile] Example: | Agent | Model | |-------|-------| | gsd-planner | opus | | gsd-executor | sonnet | | gsd-verifier | haiku | | ... | ... | Next spawned agents will use the new profile. ``` Map profile names: - quality: use "quality" column from MODEL_PROFILES - balanced: use "balanced" column from MODEL_PROFILES - budget: use "budget" column from MODEL_PROFILES - [ ] Argument validated - [ ] Config file ensured - [ ] Config updated with new model_profile - [ ] Confirmation displayed with model table