Files
msd-core/get-shit-done/workflows/set-profile.md
Lex Christopherson 517ee0dc8f fix: resolve @file: protocol in all INIT consumers for Windows compatibility (#841)
When gsd-tools init output exceeds 50KB, core.cjs writes to a temp file
and outputs @file:<path>. No workflow handled this prefix, causing agents
to hallucinate /tmp paths that fail on Windows (C:\tmp doesn't exist).

Add @file: resolution line after every INIT=$(node ...) call across all
32 workflow, agent, and reference files.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 12:19:12 -06:00

1.9 KiB

Switch the model profile used by GSD agents. Controls which Claude model each agent uses, balancing quality vs token spend.

<required_reading> Read all files referenced by the invoking prompt's execution_context before starting. </required_reading>

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:
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)
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi

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:

{
  "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.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

<success_criteria>

  • Argument validated
  • Config file ensured
  • Config updated with new model_profile
  • Confirmation displayed with model table </success_criteria>