gsd-opencode 1.6.1 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/agents/gsd-debugger.md +20 -1
  2. package/agents/gsd-executor.md +31 -0
  3. package/agents/gsd-phase-researcher.md +14 -4
  4. package/agents/gsd-planner.md +19 -0
  5. package/agents/gsd-project-researcher.md +5 -11
  6. package/agents/gsd-research-synthesizer.md +9 -0
  7. package/command/gsd/add-todo.md +11 -0
  8. package/command/gsd/audit-milestone.md +21 -1
  9. package/command/gsd/check-todos.md +11 -0
  10. package/command/gsd/debug.md +21 -0
  11. package/command/gsd/discuss-phase.md +7 -1
  12. package/command/gsd/execute-phase.md +41 -5
  13. package/command/gsd/help.md +105 -0
  14. package/command/gsd/new-milestone.md +268 -263
  15. package/command/gsd/new-project.md +118 -9
  16. package/command/gsd/pause-work.md +11 -0
  17. package/command/gsd/plan-milestone-gaps.md +11 -0
  18. package/command/gsd/plan-phase.md +77 -26
  19. package/command/gsd/progress.md +9 -0
  20. package/command/gsd/quick.md +309 -0
  21. package/command/gsd/remove-phase.md +11 -0
  22. package/command/gsd/research-phase.md +22 -1
  23. package/command/gsd/resume-work.md +1 -0
  24. package/command/gsd/set-profile.md +106 -0
  25. package/command/gsd/settings.md +136 -0
  26. package/command/gsd/update.md +1 -1
  27. package/get-shit-done/references/checkpoints.md +318 -28
  28. package/get-shit-done/references/model-profiles.md +73 -0
  29. package/get-shit-done/references/planning-config.md +94 -0
  30. package/get-shit-done/references/verification-patterns.md +17 -0
  31. package/get-shit-done/templates/phase-prompt.md +18 -27
  32. package/get-shit-done/workflows/complete-milestone.md +11 -0
  33. package/get-shit-done/workflows/diagnose-issues.md +11 -0
  34. package/get-shit-done/workflows/discovery-phase.md +11 -10
  35. package/get-shit-done/workflows/discuss-phase.md +11 -0
  36. package/get-shit-done/workflows/execute-phase.md +68 -9
  37. package/get-shit-done/workflows/execute-plan.md +47 -4
  38. package/get-shit-done/workflows/map-codebase.md +35 -2
  39. package/get-shit-done/workflows/resume-project.md +4 -0
  40. package/get-shit-done/workflows/transition.md +2 -2
  41. package/get-shit-done/workflows/verify-phase.md +2 -3
  42. package/get-shit-done/workflows/verify-work.md +33 -0
  43. package/package.json +1 -1
@@ -0,0 +1,309 @@
1
+ ---
2
+ name: gsd-quick
3
+ description: Execute a quick task with GSD guarantees (atomic commits, state tracking) but skip optional agents
4
+ argument-hint: ""
5
+ tools:
6
+ - read
7
+ - write
8
+ - edit
9
+ - glob
10
+ - grep
11
+ - bash
12
+
13
+ - question
14
+ ---
15
+
16
+ <objective>
17
+ Execute small, ad-hoc tasks with GSD guarantees (atomic commits, STATE.md tracking) while skipping optional agents (research, plan-checker, verifier).
18
+
19
+ Quick mode is the same system with a shorter path:
20
+ - Spawns gsd-planner (quick mode) + gsd-executor(s)
21
+ - Skips gsd-phase-researcher, gsd-plan-checker, gsd-verifier
22
+ - Quick tasks live in `.planning/quick/` separate from planned phases
23
+ - Updates STATE.md "Quick Tasks Completed" table (NOT ROADMAP.md)
24
+
25
+ Use when: You know exactly what to do and the task is small enough to not need research or verification.
26
+ </objective>
27
+
28
+ <execution_context>
29
+ Orchestration is inline - no separate workflow file. Quick mode is deliberately simpler than full GSD.
30
+ </execution_context>
31
+
32
+ <context>
33
+ @.planning/STATE.md
34
+ </context>
35
+
36
+ <process>
37
+ **Step 0: Resolve Model Profile**
38
+
39
+ read model profile for agent spawning:
40
+
41
+ ```bash
42
+ MODEL_PROFILE=$(cat .planning/config.json 2>/dev/null | grep -o '"model_profile"[[:space:]]*:[[:space:]]*"[^"]*"' | grep -o '"[^"]*"$' | tr -d '"' || echo "balanced")
43
+ ```
44
+
45
+ Default to "balanced" if not set.
46
+
47
+ **Model lookup table:**
48
+
49
+ | Agent | quality | balanced | budget |
50
+ |-------|---------|----------|--------|
51
+ | gsd-planner | opus | opus | sonnet |
52
+ | gsd-executor | opus | sonnet | sonnet |
53
+
54
+ Store resolved models for use in Task calls below.
55
+
56
+ ---
57
+
58
+ **Step 1: Pre-flight validation**
59
+
60
+ Check that an active GSD project exists:
61
+
62
+ ```bash
63
+ if [ ! -f .planning/ROADMAP.md ]; then
64
+ echo "Quick mode requires an active project with ROADMAP.md."
65
+ echo "Run /gsd-new-project first."
66
+ exit 1
67
+ fi
68
+ ```
69
+
70
+ If validation fails, stop immediately with the error message.
71
+
72
+ Quick tasks can run mid-phase - validation only checks ROADMAP.md exists, not phase status.
73
+
74
+ ---
75
+
76
+ **Step 2: Get task description**
77
+
78
+ Prompt user interactively for the task description:
79
+
80
+ ```
81
+ question(
82
+ header: "Quick Task",
83
+ question: "What do you want to do?",
84
+ followUp: null
85
+ )
86
+ ```
87
+
88
+ Store response as `$DESCRIPTION`.
89
+
90
+ If empty, re-prompt: "Please provide a task description."
91
+
92
+ Generate slug from description:
93
+ ```bash
94
+ slug=$(echo "$DESCRIPTION" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]/-/g' | sed 's/--*/-/g' | sed 's/^-//;s/-$//' | cut -c1-40)
95
+ ```
96
+
97
+ ---
98
+
99
+ **Step 3: Calculate next quick task number**
100
+
101
+ Ensure `.planning/quick/` directory exists and find the next sequential number:
102
+
103
+ ```bash
104
+ # Ensure .planning/quick/ exists
105
+ mkdir -p .planning/quick
106
+
107
+ # Find highest existing number and increment
108
+ last=$(ls -1d .planning/quick/[0-9][0-9][0-9]-* 2>/dev/null | sort -r | head -1 | xargs -I{} basename {} | grep -oE '^[0-9]+')
109
+
110
+ if [ -z "$last" ]; then
111
+ next_num="001"
112
+ else
113
+ next_num=$(printf "%03d" $((10#$last + 1)))
114
+ fi
115
+ ```
116
+
117
+ ---
118
+
119
+ **Step 4: Create quick task directory**
120
+
121
+ Create the directory for this quick task:
122
+
123
+ ```bash
124
+ QUICK_DIR=".planning/quick/${next_num}-${slug}"
125
+ mkdir -p "$QUICK_DIR"
126
+ ```
127
+
128
+ Report to user:
129
+ ```
130
+ Creating quick task ${next_num}: ${DESCRIPTION}
131
+ Directory: ${QUICK_DIR}
132
+ ```
133
+
134
+ Store `$QUICK_DIR` for use in orchestration.
135
+
136
+ ---
137
+
138
+ **Step 5: Spawn planner (quick mode)**
139
+
140
+ Spawn gsd-planner with quick mode context:
141
+
142
+ ```
143
+ Task(
144
+ prompt="
145
+ <planning_context>
146
+
147
+ **Mode:** quick
148
+ **Directory:** ${QUICK_DIR}
149
+ **Description:** ${DESCRIPTION}
150
+
151
+ **Project State:**
152
+ @.planning/STATE.md
153
+
154
+ </planning_context>
155
+
156
+ <constraints>
157
+ - Create a SINGLE plan with 1-3 focused tasks
158
+ - Quick tasks should be atomic and self-contained
159
+ - No research phase, no checker phase
160
+ - Target ~30% context usage (simple, focused)
161
+ </constraints>
162
+
163
+ <output>
164
+ write plan to: ${QUICK_DIR}/${next_num}-PLAN.md
165
+ Return: ## PLANNING COMPLETE with plan path
166
+ </output>
167
+ ",
168
+ subagent_type="gsd-planner",
169
+ model="{planner_model}",
170
+ description="Quick plan: ${DESCRIPTION}"
171
+ )
172
+ ```
173
+
174
+ After planner returns:
175
+ 1. Verify plan exists at `${QUICK_DIR}/${next_num}-PLAN.md`
176
+ 2. Extract plan count (typically 1 for quick tasks)
177
+ 3. Report: "Plan created: ${QUICK_DIR}/${next_num}-PLAN.md"
178
+
179
+ If plan not found, error: "Planner failed to create ${next_num}-PLAN.md"
180
+
181
+ ---
182
+
183
+ **Step 6: Spawn executor**
184
+
185
+ Spawn gsd-executor with plan reference:
186
+
187
+ ```
188
+ Task(
189
+ prompt="
190
+ Execute quick task ${next_num}.
191
+
192
+ Plan: @${QUICK_DIR}/${next_num}-PLAN.md
193
+ Project state: @.planning/STATE.md
194
+
195
+ <constraints>
196
+ - Execute all tasks in the plan
197
+ - Commit each task atomically
198
+ - Create summary at: ${QUICK_DIR}/${next_num}-SUMMARY.md
199
+ - Do NOT update ROADMAP.md (quick tasks are separate from planned phases)
200
+ </constraints>
201
+ ",
202
+ subagent_type="gsd-executor",
203
+ model="{executor_model}",
204
+ description="Execute: ${DESCRIPTION}"
205
+ )
206
+ ```
207
+
208
+ After executor returns:
209
+ 1. Verify summary exists at `${QUICK_DIR}/${next_num}-SUMMARY.md`
210
+ 2. Extract commit hash from executor output
211
+ 3. Report completion status
212
+
213
+ If summary not found, error: "Executor failed to create ${next_num}-SUMMARY.md"
214
+
215
+ Note: For quick tasks producing multiple plans (rare), spawn executors in parallel waves per execute-phase patterns.
216
+
217
+ ---
218
+
219
+ **Step 7: Update STATE.md**
220
+
221
+ Update STATE.md with quick task completion record.
222
+
223
+ **7a. Check if "Quick Tasks Completed" section exists:**
224
+
225
+ read STATE.md and check for `### Quick Tasks Completed` section.
226
+
227
+ **7b. If section doesn't exist, create it:**
228
+
229
+ Insert after `### Blockers/Concerns` section:
230
+
231
+ ```markdown
232
+ ### Quick Tasks Completed
233
+
234
+ | # | Description | Date | Commit | Directory |
235
+ |---|-------------|------|--------|-----------|
236
+ ```
237
+
238
+ **7c. Append new row to table:**
239
+
240
+ ```markdown
241
+ | ${next_num} | ${DESCRIPTION} | $(date +%Y-%m-%d) | ${commit_hash} | [${next_num}-${slug}](./quick/${next_num}-${slug}/) |
242
+ ```
243
+
244
+ **7d. Update "Last activity" line:**
245
+
246
+ Find and update the line:
247
+ ```
248
+ Last activity: $(date +%Y-%m-%d) - Completed quick task ${next_num}: ${DESCRIPTION}
249
+ ```
250
+
251
+ Use edit tool to make these changes atomically
252
+
253
+ ---
254
+
255
+ **Step 8: Final commit and completion**
256
+
257
+ Stage and commit quick task artifacts:
258
+
259
+ ```bash
260
+ # Stage quick task artifacts
261
+ git add ${QUICK_DIR}/${next_num}-PLAN.md
262
+ git add ${QUICK_DIR}/${next_num}-SUMMARY.md
263
+ git add .planning/STATE.md
264
+
265
+ # Commit with quick task format
266
+ git commit -m "$(cat <<'EOF'
267
+ docs(quick-${next_num}): ${DESCRIPTION}
268
+
269
+ Quick task completed.
270
+
271
+ Co-Authored-By: OpenCode Opus 4.5 <noreply@anthropic.com>
272
+ EOF
273
+ )"
274
+ ```
275
+
276
+ Get final commit hash:
277
+ ```bash
278
+ commit_hash=$(git rev-parse --short HEAD)
279
+ ```
280
+
281
+ Display completion output:
282
+ ```
283
+ ---
284
+
285
+ GSD > QUICK TASK COMPLETE
286
+
287
+ Quick Task ${next_num}: ${DESCRIPTION}
288
+
289
+ Summary: ${QUICK_DIR}/${next_num}-SUMMARY.md
290
+ Commit: ${commit_hash}
291
+
292
+ ---
293
+
294
+ Ready for next task: /gsd-quick
295
+ ```
296
+
297
+ </process>
298
+
299
+ <success_criteria>
300
+ - [ ] ROADMAP.md validation passes
301
+ - [ ] User provides task description
302
+ - [ ] Slug generated (lowercase, hyphens, max 40 chars)
303
+ - [ ] Next number calculated (001, 002, 003...)
304
+ - [ ] Directory created at `.planning/quick/NNN-slug/`
305
+ - [ ] `${next_num}-PLAN.md` created by planner
306
+ - [ ] `${next_num}-SUMMARY.md` created by executor
307
+ - [ ] STATE.md updated with quick task row
308
+ - [ ] Artifacts committed
309
+ </success_criteria>
@@ -252,6 +252,17 @@ Update any internal references to reflect new numbering.
252
252
  <step name="commit">
253
253
  Stage and commit the removal:
254
254
 
255
+ **Check planning config:**
256
+
257
+ ```bash
258
+ COMMIT_PLANNING_DOCS=$(cat .planning/config.json 2>/dev/null | grep -o '"commit_docs"[[:space:]]*:[[:space:]]*[^,}]*' | grep -o 'true\|false' || echo "true")
259
+ git check-ignore -q .planning 2>/dev/null && COMMIT_PLANNING_DOCS=false
260
+ ```
261
+
262
+ **If `COMMIT_PLANNING_DOCS=false`:** Skip git operations
263
+
264
+ **If `COMMIT_PLANNING_DOCS=true` (default):**
265
+
255
266
  ```bash
256
267
  git add .planning/
257
268
  git commit -m "chore: remove phase {target} ({original-phase-name})"
@@ -5,6 +5,7 @@ argument-hint: "[phase]"
5
5
  tools:
6
6
  - read
7
7
  - bash
8
+
8
9
  ---
9
10
 
10
11
  <objective>
@@ -30,6 +31,24 @@ Normalize phase input in step 1 before any directory lookups.
30
31
 
31
32
  <process>
32
33
 
34
+ ## 0. Resolve Model Profile
35
+
36
+ read model profile for agent spawning:
37
+
38
+ ```bash
39
+ MODEL_PROFILE=$(cat .planning/config.json 2>/dev/null | grep -o '"model_profile"[[:space:]]*:[[:space:]]*"[^"]*"' | grep -o '"[^"]*"$' | tr -d '"' || echo "balanced")
40
+ ```
41
+
42
+ Default to "balanced" if not set.
43
+
44
+ **Model lookup table:**
45
+
46
+ | Agent | quality | balanced | budget |
47
+ |-------|---------|----------|--------|
48
+ | gsd-phase-researcher | opus | sonnet | haiku |
49
+
50
+ Store resolved model for use in Task calls below.
51
+
33
52
  ## 1. Normalize and Validate Phase
34
53
 
35
54
  ```bash
@@ -68,7 +87,7 @@ grep -A30 "### Decisions Made" .planning/STATE.md 2>/dev/null
68
87
 
69
88
  Present summary with phase description, requirements, prior decisions.
70
89
 
71
- ## 4. Spawn gsd-researcher Agent
90
+ ## 4. Spawn gsd-phase-researcher Agent
72
91
 
73
92
  Research modes: ecosystem (default), feasibility, implementation, comparison.
74
93
 
@@ -131,6 +150,7 @@ write to: .planning/phases/${PHASE}-{slug}/${PHASE}-RESEARCH.md
131
150
  Task(
132
151
  prompt=filled_prompt,
133
152
  subagent_type="gsd-phase-researcher",
153
+ model="{researcher_model}",
134
154
  description="Research Phase {phase}"
135
155
  )
136
156
  ```
@@ -164,6 +184,7 @@ Research file: @.planning/phases/${PHASE}-{slug}/${PHASE}-RESEARCH.md
164
184
  Task(
165
185
  prompt=continuation_prompt,
166
186
  subagent_type="gsd-phase-researcher",
187
+ model="{researcher_model}",
167
188
  description="Continue research Phase {phase}"
168
189
  )
169
190
  ```
@@ -6,6 +6,7 @@ tools:
6
6
  - bash
7
7
  - write
8
8
  - question
9
+ - Command
9
10
  ---
10
11
 
11
12
  <objective>
@@ -0,0 +1,106 @@
1
+ ---
2
+ name: set-profile
3
+ description: Switch model profile for GSD agents (quality/balanced/budget)
4
+ arguments:
5
+ - name: profile
6
+ description: "Profile name: quality, balanced, or budget"
7
+ required: true
8
+ ---
9
+
10
+ <objective>
11
+ Switch the model profile used by GSD agents. This controls which OpenCode model each agent uses, balancing quality vs token spend.
12
+ </objective>
13
+
14
+ <profiles>
15
+ | Profile | Description |
16
+ |---------|-------------|
17
+ | **quality** | Opus everywhere except read-only verification |
18
+ | **balanced** | Opus for planning, Sonnet for execution/verification (default) |
19
+ | **budget** | Sonnet for writing, Haiku for research/verification |
20
+ </profiles>
21
+
22
+ <process>
23
+
24
+ ## 1. Validate argument
25
+
26
+ ```
27
+ if $ARGUMENTS.profile not in ["quality", "balanced", "budget"]:
28
+ Error: Invalid profile "$ARGUMENTS.profile"
29
+ Valid profiles: quality, balanced, budget
30
+ STOP
31
+ ```
32
+
33
+ ## 2. Check for project
34
+
35
+ ```bash
36
+ ls .planning/config.json 2>/dev/null
37
+ ```
38
+
39
+ If no `.planning/` directory:
40
+ ```
41
+ Error: No GSD project found.
42
+ Run /gsd-new-project first to initialize a project.
43
+ ```
44
+
45
+ ## 3. Update config.json
46
+
47
+ read current config:
48
+ ```bash
49
+ cat .planning/config.json
50
+ ```
51
+
52
+ Update `model_profile` field (or add if missing):
53
+ ```json
54
+ {
55
+ "model_profile": "$ARGUMENTS.profile"
56
+ }
57
+ ```
58
+
59
+ write updated config back to `.planning/config.json`.
60
+
61
+ ## 4. Confirm
62
+
63
+ ```
64
+ ✓ Model profile set to: $ARGUMENTS.profile
65
+
66
+ Agents will now use:
67
+ [Show table from model-profiles.md for selected profile]
68
+
69
+ Next spawned agents will use the new profile.
70
+ ```
71
+
72
+ </process>
73
+
74
+ <examples>
75
+
76
+ **Switch to budget mode:**
77
+ ```
78
+ /gsd-set-profile budget
79
+
80
+ ✓ Model profile set to: budget
81
+
82
+ Agents will now use:
83
+ | Agent | Model |
84
+ |-------|-------|
85
+ | gsd-planner | sonnet |
86
+ | gsd-executor | sonnet |
87
+ | gsd-verifier | haiku |
88
+ | ... | ... |
89
+ ```
90
+
91
+ **Switch to quality mode:**
92
+ ```
93
+ /gsd-set-profile quality
94
+
95
+ ✓ Model profile set to: quality
96
+
97
+ Agents will now use:
98
+ | Agent | Model |
99
+ |-------|-------|
100
+ | gsd-planner | opus |
101
+ | gsd-executor | opus |
102
+ | gsd-verifier | sonnet |
103
+ | ... | ... |
104
+ ```
105
+
106
+ </examples>
@@ -0,0 +1,136 @@
1
+ ---
2
+ name: gsd-settings
3
+ description: Configure GSD workflow toggles and model profile
4
+ tools:
5
+ - read
6
+ - write
7
+ - question
8
+ ---
9
+
10
+ <objective>
11
+ Allow users to toggle workflow agents on/off and select model profile via interactive settings.
12
+
13
+ Updates `.planning/config.json` with workflow preferences and model profile selection.
14
+ </objective>
15
+
16
+ <process>
17
+
18
+ ## 1. Validate Environment
19
+
20
+ ```bash
21
+ ls .planning/config.json 2>/dev/null
22
+ ```
23
+
24
+ **If not found:** Error - run `/gsd-new-project` first.
25
+
26
+ ## 2. read Current Config
27
+
28
+ ```bash
29
+ cat .planning/config.json
30
+ ```
31
+
32
+ Parse current values (default to `true` if not present):
33
+ - `workflow.research` — spawn researcher during plan-phase
34
+ - `workflow.plan_check` — spawn plan checker during plan-phase
35
+ - `workflow.verifier` — spawn verifier during execute-phase
36
+ - `model_profile` — which model each agent uses (default: `balanced`)
37
+
38
+ ## 3. Present Settings
39
+
40
+ Use question with current values shown:
41
+
42
+ ```
43
+ question([
44
+ {
45
+ question: "Which model profile for agents?",
46
+ header: "Model",
47
+ multiSelect: false,
48
+ options: [
49
+ { label: "Quality", description: "Opus everywhere except verification (highest cost)" },
50
+ { label: "Balanced (Recommended)", description: "Opus for planning, Sonnet for execution/verification" },
51
+ { label: "Budget", description: "Sonnet for writing, Haiku for research/verification (lowest cost)" }
52
+ ]
53
+ },
54
+ {
55
+ question: "Spawn Plan Researcher? (researches domain before planning)",
56
+ header: "Research",
57
+ multiSelect: false,
58
+ options: [
59
+ { label: "Yes", description: "Research phase goals before planning" },
60
+ { label: "No", description: "Skip research, plan directly" }
61
+ ]
62
+ },
63
+ {
64
+ question: "Spawn Plan Checker? (verifies plans before execution)",
65
+ header: "Plan Check",
66
+ multiSelect: false,
67
+ options: [
68
+ { label: "Yes", description: "Verify plans meet phase goals" },
69
+ { label: "No", description: "Skip plan verification" }
70
+ ]
71
+ },
72
+ {
73
+ question: "Spawn Execution Verifier? (verifies phase completion)",
74
+ header: "Verifier",
75
+ multiSelect: false,
76
+ options: [
77
+ { label: "Yes", description: "Verify must-haves after execution" },
78
+ { label: "No", description: "Skip post-execution verification" }
79
+ ]
80
+ }
81
+ ])
82
+ ```
83
+
84
+ **Pre-select based on current config values.**
85
+
86
+ ## 4. Update Config
87
+
88
+ Merge new settings into existing config.json:
89
+
90
+ ```json
91
+ {
92
+ ...existing_config,
93
+ "model_profile": "quality" | "balanced" | "budget",
94
+ "workflow": {
95
+ "research": true/false,
96
+ "plan_check": true/false,
97
+ "verifier": true/false
98
+ }
99
+ }
100
+ ```
101
+
102
+ write updated config to `.planning/config.json`.
103
+
104
+ ## 5. Confirm Changes
105
+
106
+ Display:
107
+
108
+ ```
109
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
110
+ GSD ► SETTINGS UPDATED
111
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
112
+
113
+ | Setting | Value |
114
+ |----------------------|-------|
115
+ | Model Profile | {quality/balanced/budget} |
116
+ | Plan Researcher | {On/Off} |
117
+ | Plan Checker | {On/Off} |
118
+ | Execution Verifier | {On/Off} |
119
+
120
+ These settings apply to future /gsd-plan-phase and /gsd-execute-phase runs.
121
+
122
+ Quick commands:
123
+ - /gsd-set-profile <profile> — switch model profile
124
+ - /gsd-plan-phase --research — force research
125
+ - /gsd-plan-phase --skip-research — skip research
126
+ - /gsd-plan-phase --skip-verify — skip plan check
127
+ ```
128
+
129
+ </process>
130
+
131
+ <success_criteria>
132
+ - [ ] Current config read
133
+ - [ ] User presented with 4 settings (profile + 3 toggles)
134
+ - [ ] Config updated with model_profile and workflow section
135
+ - [ ] Changes confirmed to user
136
+ </success_criteria>
@@ -43,7 +43,7 @@ npm view gsd-opencode version 2>/dev/null
43
43
  ```
44
44
  Couldn't check for updates (offline or npm unavailable).
45
45
 
46
- To update manually: `npx gsd-opencode --global`
46
+ To update manually: `npx gsd-opencode@latest --global`
47
47
  ```
48
48
 
49
49
  STOP here if npm unavailable.