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
@@ -5,6 +5,7 @@ tools:
5
5
  - read
6
6
  - bash
7
7
  - write
8
+
8
9
  - question
9
10
  ---
10
11
 
@@ -236,7 +237,7 @@ EOF
236
237
 
237
238
  ## Phase 5: Workflow Preferences
238
239
 
239
- Ask all workflow preferences in a single question call (3 questions):
240
+ **Round 1 Core workflow settings (4 questions):**
240
241
 
241
242
  ```
242
243
  questions: [
@@ -267,11 +268,96 @@ questions: [
267
268
  { label: "Parallel (Recommended)", description: "Independent plans run simultaneously" },
268
269
  { label: "Sequential", description: "One plan at a time" }
269
270
  ]
271
+ },
272
+ {
273
+ header: "Git Tracking",
274
+ question: "Commit planning docs to git?",
275
+ multiSelect: false,
276
+ options: [
277
+ { label: "Yes (Recommended)", description: "Planning docs tracked in version control" },
278
+ { label: "No", description: "Keep .planning/ local-only (add to .gitignore)" }
279
+ ]
280
+ }
281
+ ]
282
+ ```
283
+
284
+ **Round 2 — Workflow agents:**
285
+
286
+ These spawn additional agents during planning/execution. They add tokens and time but improve quality.
287
+
288
+ | Agent | When it runs | What it does |
289
+ |-------|--------------|--------------|
290
+ | **Researcher** | Before planning each phase | Investigates domain, finds patterns, surfaces gotchas |
291
+ | **Plan Checker** | After plan is created | Verifies plan actually achieves the phase goal |
292
+ | **Verifier** | After phase execution | Confirms must-haves were delivered |
293
+
294
+ All recommended for important projects. Skip for quick experiments.
295
+
296
+ ```
297
+ questions: [
298
+ {
299
+ header: "Research",
300
+ question: "Research before planning each phase? (adds tokens/time)",
301
+ multiSelect: false,
302
+ options: [
303
+ { label: "Yes (Recommended)", description: "Investigate domain, find patterns, surface gotchas" },
304
+ { label: "No", description: "Plan directly from requirements" }
305
+ ]
306
+ },
307
+ {
308
+ header: "Plan Check",
309
+ question: "Verify plans will achieve their goals? (adds tokens/time)",
310
+ multiSelect: false,
311
+ options: [
312
+ { label: "Yes (Recommended)", description: "Catch gaps before execution starts" },
313
+ { label: "No", description: "Execute plans without verification" }
314
+ ]
315
+ },
316
+ {
317
+ header: "Verifier",
318
+ question: "Verify work satisfies requirements after each phase? (adds tokens/time)",
319
+ multiSelect: false,
320
+ options: [
321
+ { label: "Yes (Recommended)", description: "Confirm deliverables match phase goals" },
322
+ { label: "No", description: "Trust execution, skip verification" }
323
+ ]
324
+ },
325
+ {
326
+ header: "Model Profile",
327
+ question: "Which AI models for planning agents?",
328
+ multiSelect: false,
329
+ options: [
330
+ { label: "Balanced (Recommended)", description: "Sonnet for most agents — good quality/cost ratio" },
331
+ { label: "Quality", description: "Opus for research/roadmap — higher cost, deeper analysis" },
332
+ { label: "Budget", description: "Haiku where possible — fastest, lowest cost" }
333
+ ]
270
334
  }
271
335
  ]
272
336
  ```
273
337
 
274
- Create `.planning/config.json` with chosen mode, depth, and parallelization.
338
+ Create `.planning/config.json` with all settings:
339
+
340
+ ```json
341
+ {
342
+ "mode": "yolo|interactive",
343
+ "depth": "quick|standard|comprehensive",
344
+ "parallelization": true|false,
345
+ "commit_docs": true|false,
346
+ "model_profile": "quality|balanced|budget",
347
+ "workflow": {
348
+ "research": true|false,
349
+ "plan_check": true|false,
350
+ "verifier": true|false
351
+ }
352
+ }
353
+ ```
354
+
355
+ **If commit_docs = No:**
356
+ - Set `commit_docs: false` in config.json
357
+ - Add `.planning/` to `.gitignore` (create if needed)
358
+
359
+ **If commit_docs = Yes:**
360
+ - No additional gitignore entries needed
275
361
 
276
362
  **Commit config.json:**
277
363
 
@@ -283,10 +369,33 @@ chore: add project config
283
369
  Mode: [chosen mode]
284
370
  Depth: [chosen depth]
285
371
  Parallelization: [enabled/disabled]
372
+ Workflow agents: research=[on/off], plan_check=[on/off], verifier=[on/off]
286
373
  EOF
287
374
  )"
288
375
  ```
289
376
 
377
+ **Note:** Run `/gsd-settings` anytime to update these preferences.
378
+
379
+ ## Phase 5.5: Resolve Model Profile
380
+
381
+ read model profile for agent spawning:
382
+
383
+ ```bash
384
+ MODEL_PROFILE=$(cat .planning/config.json 2>/dev/null | grep -o '"model_profile"[[:space:]]*:[[:space:]]*"[^"]*"' | grep -o '"[^"]*"$' | tr -d '"' || echo "balanced")
385
+ ```
386
+
387
+ Default to "balanced" if not set.
388
+
389
+ **Model lookup table:**
390
+
391
+ | Agent | quality | balanced | budget |
392
+ |-------|---------|----------|--------|
393
+ | gsd-project-researcher | opus | sonnet | haiku |
394
+ | gsd-research-synthesizer | sonnet | sonnet | haiku |
395
+ | gsd-roadmapper | opus | sonnet | sonnet |
396
+
397
+ Store resolved models for use in Task calls below.
398
+
290
399
  ## Phase 6: Research Decision
291
400
 
292
401
  Use question:
@@ -367,7 +476,7 @@ Your STACK.md feeds into roadmap creation. Be prescriptive:
367
476
  write to: .planning/research/STACK.md
368
477
  Use template: ~/.config/opencode/get-shit-done/templates/research-project/STACK.md
369
478
  </output>
370
- ", subagent_type="gsd-project-researcher", description="Stack research")
479
+ ", subagent_type="gsd-project-researcher", model="{researcher_model}", description="Stack research")
371
480
 
372
481
  Task(prompt="
373
482
  <research_type>
@@ -406,7 +515,7 @@ Your FEATURES.md feeds into requirements definition. Categorize clearly:
406
515
  write to: .planning/research/FEATURES.md
407
516
  Use template: ~/.config/opencode/get-shit-done/templates/research-project/FEATURES.md
408
517
  </output>
409
- ", subagent_type="gsd-project-researcher", description="Features research")
518
+ ", subagent_type="gsd-project-researcher", model="{researcher_model}", description="Features research")
410
519
 
411
520
  Task(prompt="
412
521
  <research_type>
@@ -445,7 +554,7 @@ Your ARCHITECTURE.md informs phase structure in roadmap. Include:
445
554
  write to: .planning/research/ARCHITECTURE.md
446
555
  Use template: ~/.config/opencode/get-shit-done/templates/research-project/ARCHITECTURE.md
447
556
  </output>
448
- ", subagent_type="gsd-project-researcher", description="Architecture research")
557
+ ", subagent_type="gsd-project-researcher", model="{researcher_model}", description="Architecture research")
449
558
 
450
559
  Task(prompt="
451
560
  <research_type>
@@ -484,7 +593,7 @@ Your PITFALLS.md prevents mistakes in roadmap/planning. For each pitfall:
484
593
  write to: .planning/research/PITFALLS.md
485
594
  Use template: ~/.config/opencode/get-shit-done/templates/research-project/PITFALLS.md
486
595
  </output>
487
- ", subagent_type="gsd-project-researcher", description="Pitfalls research")
596
+ ", subagent_type="gsd-project-researcher", model="{researcher_model}", description="Pitfalls research")
488
597
  ```
489
598
 
490
599
  After all 4 agents complete, spawn synthesizer to create SUMMARY.md:
@@ -508,7 +617,7 @@ write to: .planning/research/SUMMARY.md
508
617
  Use template: ~/.config/opencode/get-shit-done/templates/research-project/SUMMARY.md
509
618
  Commit after writing.
510
619
  </output>
511
- ", subagent_type="gsd-research-synthesizer", description="Synthesize research")
620
+ ", subagent_type="gsd-research-synthesizer", model="{synthesizer_model}", description="Synthesize research")
512
621
  ```
513
622
 
514
623
  Display research complete banner and key findings:
@@ -713,7 +822,7 @@ Create roadmap:
713
822
 
714
823
  write files first, then return. This ensures artifacts persist even if context is lost.
715
824
  </instructions>
716
- ", subagent_type="gsd-roadmapper", description="Create roadmap")
825
+ ", subagent_type="gsd-roadmapper", model="{roadmapper_model}", description="Create roadmap")
717
826
  ```
718
827
 
719
828
  **Handle roadmapper return:**
@@ -789,7 +898,7 @@ Use question:
789
898
  Update the roadmap based on feedback. edit files in place.
790
899
  Return ROADMAP REVISED with changes made.
791
900
  </revision>
792
- ", subagent_type="gsd-roadmapper", description="Revise roadmap")
901
+ ", subagent_type="gsd-roadmapper", model="{roadmapper_model}", description="Revise roadmap")
793
902
  ```
794
903
  - Present revised roadmap
795
904
  - Loop until user approves
@@ -90,6 +90,17 @@ Be specific enough for a fresh OpenCode to understand immediately.
90
90
  </step>
91
91
 
92
92
  <step name="commit">
93
+ **Check planning config:**
94
+
95
+ ```bash
96
+ COMMIT_PLANNING_DOCS=$(cat .planning/config.json 2>/dev/null | grep -o '"commit_docs"[[:space:]]*:[[:space:]]*[^,}]*' | grep -o 'true\|false' || echo "true")
97
+ git check-ignore -q .planning 2>/dev/null && COMMIT_PLANNING_DOCS=false
98
+ ```
99
+
100
+ **If `COMMIT_PLANNING_DOCS=false`:** Skip git operations
101
+
102
+ **If `COMMIT_PLANNING_DOCS=true` (default):**
103
+
93
104
  ```bash
94
105
  git add .planning/phases/*/.continue-here.md
95
106
  git commit -m "wip: [phase-name] paused at task [X]/[Y]"
@@ -158,6 +158,17 @@ mkdir -p ".planning/phases/{NN}-{name}"
158
158
 
159
159
  ## 8. Commit Roadmap Update
160
160
 
161
+ **Check planning config:**
162
+
163
+ ```bash
164
+ COMMIT_PLANNING_DOCS=$(cat .planning/config.json 2>/dev/null | grep -o '"commit_docs"[[:space:]]*:[[:space:]]*[^,}]*' | grep -o 'true\|false' || echo "true")
165
+ git check-ignore -q .planning 2>/dev/null && COMMIT_PLANNING_DOCS=false
166
+ ```
167
+
168
+ **If `COMMIT_PLANNING_DOCS=false`:** Skip git operations
169
+
170
+ **If `COMMIT_PLANNING_DOCS=true` (default):**
171
+
161
172
  ```bash
162
173
  git add .planning/ROADMAP.md
163
174
  git commit -m "docs(roadmap): add gap closure phases {N}-{M}"
@@ -9,6 +9,7 @@ tools:
9
9
  - bash
10
10
  - glob
11
11
  - grep
12
+
12
13
  - webfetch
13
14
  - (optional MCP tool)
14
15
  ---
@@ -41,7 +42,7 @@ Normalize phase input in step 2 before any directory lookups.
41
42
 
42
43
  <process>
43
44
 
44
- ## 1. Validate Environment
45
+ ## 1. Validate Environment and Resolve Model Profile
45
46
 
46
47
  ```bash
47
48
  ls .planning/ 2>/dev/null
@@ -49,6 +50,24 @@ ls .planning/ 2>/dev/null
49
50
 
50
51
  **If not found:** Error - user should run `/gsd-new-project` first.
51
52
 
53
+ **Resolve model profile for agent spawning:**
54
+
55
+ ```bash
56
+ MODEL_PROFILE=$(cat .planning/config.json 2>/dev/null | grep -o '"model_profile"[[:space:]]*:[[:space:]]*"[^"]*"' | grep -o '"[^"]*"$' | tr -d '"' || echo "balanced")
57
+ ```
58
+
59
+ Default to "balanced" if not set.
60
+
61
+ **Model lookup table:**
62
+
63
+ | Agent | quality | balanced | budget |
64
+ |-------|---------|----------|--------|
65
+ | gsd-phase-researcher | opus | sonnet | haiku |
66
+ | gsd-planner | opus | opus | sonnet |
67
+ | gsd-plan-checker | sonnet | sonnet | haiku |
68
+
69
+ Store resolved models for use in Task calls below.
70
+
52
71
  ## 2. Parse and Normalize Arguments
53
72
 
54
73
  Extract from $ARGUMENTS:
@@ -106,6 +125,14 @@ fi
106
125
 
107
126
  **If `--skip-research` flag:** Skip to step 6.
108
127
 
128
+ **Check config for research setting:**
129
+
130
+ ```bash
131
+ WORKFLOW_RESEARCH=$(cat .planning/config.json 2>/dev/null | grep -o '"research"[[:space:]]*:[[:space:]]*[^,}]*' | grep -o 'true\|false' || echo "true")
132
+ ```
133
+
134
+ **If `workflow.research` is `false` AND `--research` flag NOT set:** Skip to step 6.
135
+
109
136
  **Otherwise:**
110
137
 
111
138
  Check for existing research:
@@ -181,6 +208,7 @@ write research findings to: {phase_dir}/{phase}-RESEARCH.md
181
208
  Task(
182
209
  prompt=research_prompt,
183
210
  subagent_type="gsd-phase-researcher",
211
+ model="{researcher_model}",
184
212
  description="Research Phase {phase}"
185
213
  )
186
214
  ```
@@ -204,21 +232,23 @@ ls "${PHASE_DIR}"/*-PLAN.md 2>/dev/null
204
232
 
205
233
  **If exists:** Offer: 1) Continue planning (add more plans), 2) View existing, 3) Replan from scratch. Wait for response.
206
234
 
207
- ## 7. Gather Context Paths
235
+ ## 7. read Context Files
208
236
 
209
- Identify context files for the planner agent:
237
+ read and store context file contents for the planner agent. The `@` syntax does not work across Task() boundaries - content must be inlined.
210
238
 
211
239
  ```bash
212
- # Required
213
- STATE=.planning/STATE.md
214
- ROADMAP=.planning/ROADMAP.md
215
- REQUIREMENTS=.planning/REQUIREMENTS.md
216
-
217
- # Optional (created by earlier steps or commands)
218
- CONTEXT="${PHASE_DIR}/${PHASE}-CONTEXT.md"
219
- RESEARCH="${PHASE_DIR}/${PHASE}-RESEARCH.md"
220
- VERIFICATION="${PHASE_DIR}/${PHASE}-VERIFICATION.md"
221
- UAT="${PHASE_DIR}/${PHASE}-UAT.md"
240
+ # read required files
241
+ STATE_CONTENT=$(cat .planning/STATE.md)
242
+ ROADMAP_CONTENT=$(cat .planning/ROADMAP.md)
243
+
244
+ # read optional files (empty string if missing)
245
+ REQUIREMENTS_CONTENT=$(cat .planning/REQUIREMENTS.md 2>/dev/null)
246
+ CONTEXT_CONTENT=$(cat "${PHASE_DIR}"/*-CONTEXT.md 2>/dev/null)
247
+ RESEARCH_CONTENT=$(cat "${PHASE_DIR}"/*-RESEARCH.md 2>/dev/null)
248
+
249
+ # Gap closure files (only if --gaps mode)
250
+ VERIFICATION_CONTENT=$(cat "${PHASE_DIR}"/*-VERIFICATION.md 2>/dev/null)
251
+ UAT_CONTENT=$(cat "${PHASE_DIR}"/*-UAT.md 2>/dev/null)
222
252
  ```
223
253
 
224
254
  ## 8. Spawn gsd-planner Agent
@@ -232,7 +262,7 @@ Display stage banner:
232
262
  ◆ Spawning planner...
233
263
  ```
234
264
 
235
- Fill prompt and spawn:
265
+ Fill prompt with inlined content and spawn:
236
266
 
237
267
  ```markdown
238
268
  <planning_context>
@@ -241,23 +271,23 @@ Fill prompt and spawn:
241
271
  **Mode:** {standard | gap_closure}
242
272
 
243
273
  **Project State:**
244
- @.planning/STATE.md
274
+ {state_content}
245
275
 
246
276
  **Roadmap:**
247
- @.planning/ROADMAP.md
277
+ {roadmap_content}
248
278
 
249
279
  **Requirements (if exists):**
250
- @.planning/REQUIREMENTS.md
280
+ {requirements_content}
251
281
 
252
282
  **Phase Context (if exists):**
253
- @.planning/phases/{phase_dir}/{phase}-CONTEXT.md
283
+ {context_content}
254
284
 
255
285
  **Research (if exists):**
256
- @.planning/phases/{phase_dir}/{phase}-RESEARCH.md
286
+ {research_content}
257
287
 
258
288
  **Gap Closure (if --gaps mode):**
259
- @.planning/phases/{phase_dir}/{phase}-VERIFICATION.md
260
- @.planning/phases/{phase_dir}/{phase}-UAT.md
289
+ {verification_content}
290
+ {uat_content}
261
291
 
262
292
  </planning_context>
263
293
 
@@ -287,6 +317,7 @@ Before returning PLANNING COMPLETE:
287
317
  Task(
288
318
  prompt=filled_prompt,
289
319
  subagent_type="gsd-planner",
320
+ model="{planner_model}",
290
321
  description="Plan Phase {phase}"
291
322
  )
292
323
  ```
@@ -298,6 +329,8 @@ Parse planner output:
298
329
  **`## PLANNING COMPLETE`:**
299
330
  - Display: `Planner created {N} plan(s). Files on disk.`
300
331
  - If `--skip-verify`: Skip to step 13
332
+ - Check config: `WORKFLOW_PLAN_CHECK=$(cat .planning/config.json 2>/dev/null | grep -o '"plan_check"[[:space:]]*:[[:space:]]*[^,}]*' | grep -o 'true\|false' || echo "true")`
333
+ - If `workflow.plan_check` is `false`: Skip to step 13
301
334
  - Otherwise: Proceed to step 10
302
335
 
303
336
  **`## CHECKPOINT REACHED`:**
@@ -319,7 +352,17 @@ Display:
319
352
  ◆ Spawning plan checker...
320
353
  ```
321
354
 
322
- Fill checker prompt and spawn:
355
+ read plans and requirements for the checker:
356
+
357
+ ```bash
358
+ # read all plans in phase directory
359
+ PLANS_CONTENT=$(cat "${PHASE_DIR}"/*-PLAN.md 2>/dev/null)
360
+
361
+ # read requirements (reuse from step 7 if available)
362
+ REQUIREMENTS_CONTENT=$(cat .planning/REQUIREMENTS.md 2>/dev/null)
363
+ ```
364
+
365
+ Fill checker prompt with inlined content and spawn:
323
366
 
324
367
  ```markdown
325
368
  <verification_context>
@@ -328,10 +371,10 @@ Fill checker prompt and spawn:
328
371
  **Phase Goal:** {goal from ROADMAP}
329
372
 
330
373
  **Plans to verify:**
331
- @.planning/phases/{phase_dir}/*-PLAN.md
374
+ {plans_content}
332
375
 
333
376
  **Requirements (if exists):**
334
- @.planning/REQUIREMENTS.md
377
+ {requirements_content}
335
378
 
336
379
  </verification_context>
337
380
 
@@ -346,6 +389,7 @@ Return one of:
346
389
  Task(
347
390
  prompt=checker_prompt,
348
391
  subagent_type="gsd-plan-checker",
392
+ model="{checker_model}",
349
393
  description="Verify Phase {phase} plans"
350
394
  )
351
395
  ```
@@ -370,6 +414,12 @@ Track: `iteration_count` (starts at 1 after initial plan + check)
370
414
 
371
415
  Display: `Sending back to planner for revision... (iteration {N}/3)`
372
416
 
417
+ read current plans for revision context:
418
+
419
+ ```bash
420
+ PLANS_CONTENT=$(cat "${PHASE_DIR}"/*-PLAN.md 2>/dev/null)
421
+ ```
422
+
373
423
  Spawn gsd-planner with revision prompt:
374
424
 
375
425
  ```markdown
@@ -379,7 +429,7 @@ Spawn gsd-planner with revision prompt:
379
429
  **Mode:** revision
380
430
 
381
431
  **Existing plans:**
382
- @.planning/phases/{phase_dir}/*-PLAN.md
432
+ {plans_content}
383
433
 
384
434
  **Checker issues:**
385
435
  {structured_issues_from_checker}
@@ -387,7 +437,7 @@ Spawn gsd-planner with revision prompt:
387
437
  </revision_context>
388
438
 
389
439
  <instructions>
390
- read existing PLAN.md files. Make targeted updates to address checker issues.
440
+ Make targeted updates to address checker issues.
391
441
  Do NOT replan from scratch unless issues are fundamental.
392
442
  Return what changed.
393
443
  </instructions>
@@ -397,6 +447,7 @@ Return what changed.
397
447
  Task(
398
448
  prompt=revision_prompt,
399
449
  subagent_type="gsd-planner",
450
+ model="{planner_model}",
400
451
  description="Revise Phase {phase} plans"
401
452
  )
402
453
  ```
@@ -6,6 +6,7 @@ tools:
6
6
  - bash
7
7
  - grep
8
8
  - glob
9
+ - Command
9
10
  ---
10
11
 
11
12
  <objective>
@@ -20,6 +21,12 @@ Provides situational awareness before continuing work.
20
21
  <step name="verify">
21
22
  **Verify planning structure exists:**
22
23
 
24
+ Use bash (not glob) to check—glob respects .gitignore but .planning/ is often gitignored:
25
+
26
+ ```bash
27
+ test -d .planning && echo "exists" || echo "missing"
28
+ ```
29
+
23
30
  If no `.planning/` directory:
24
31
 
25
32
  ```
@@ -45,6 +52,7 @@ If missing both ROADMAP.md and PROJECT.md: suggest `/gsd-new-project`.
45
52
  - read `.planning/STATE.md` for living memory (position, decisions, issues)
46
53
  - read `.planning/ROADMAP.md` for phase structure and objectives
47
54
  - read `.planning/PROJECT.md` for current state (What This Is, Core Value, Requirements)
55
+ - read `.planning/config.json` for settings (model_profile, workflow toggles)
48
56
  </step>
49
57
 
50
58
  <step name="recent">
@@ -73,6 +81,7 @@ If missing both ROADMAP.md and PROJECT.md: suggest `/gsd-new-project`.
73
81
  # [Project Name]
74
82
 
75
83
  **Progress:** [████████░░] 8/10 plans complete
84
+ **Profile:** [quality/balanced/budget]
76
85
 
77
86
  ## Recent Work
78
87
  - [Phase X, Plan Y]: [what was accomplished - 1 line]