Files
msd-core/get-shit-done/workflows/set-profile.md
Lex Christopherson 69b28eeca4 fix: use $HOME instead of ~ for gsd-tools.cjs paths to prevent subagent MODULE_NOT_FOUND (#786)
Claude Code subagents sometimes rewrite ~/. paths to relative paths,
causing MODULE_NOT_FOUND when CWD is the project directory. $HOME is a
shell variable resolved at runtime, immune to model path rewriting.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 13:11:19 -06:00

81 lines
1.8 KiB
Markdown

<purpose>
Switch the model profile used by GSD agents. Controls which Claude model each agent uses, balancing quality vs token spend.
</purpose>
<required_reading>
Read all files referenced by the invoking prompt's execution_context before starting.
</required_reading>
<process>
<step name="validate">
Validate argument:
```
if $ARGUMENTS.profile not in ["quality", "balanced", "budget"]:
Error: Invalid profile "$ARGUMENTS.profile"
Valid profiles: quality, balanced, budget
EXIT
```
</step>
<step name="ensure_and_load_config">
Ensure config exists and load current state:
```bash
node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" config-ensure-section
INIT=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" state load)
```
This creates `.planning/config.json` with defaults if missing and loads current config.
</step>
<step name="update_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`.
</step>
<step name="confirm">
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.cjs 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
</step>
</process>
<success_criteria>
- [ ] Argument validated
- [ ] Config file ensured
- [ ] Config updated with new model_profile
- [ ] Confirmation displayed with model table
</success_criteria>