82 lines
1.9 KiB
Markdown
82 lines
1.9 KiB
Markdown
<purpose>
|
|
Switch the model profile used by GSD agents. Controls which OpenCode 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 "./.opencode/get-shit-done/bin/gsd-tools.cjs" config-ensure-section
|
|
INIT=$(node "./.opencode/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.
|
|
</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>
|