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.
- package/agents/gsd-debugger.md +20 -1
- package/agents/gsd-executor.md +31 -0
- package/agents/gsd-phase-researcher.md +14 -4
- package/agents/gsd-planner.md +19 -0
- package/agents/gsd-project-researcher.md +5 -11
- package/agents/gsd-research-synthesizer.md +9 -0
- package/command/gsd/add-todo.md +11 -0
- package/command/gsd/audit-milestone.md +21 -1
- package/command/gsd/check-todos.md +11 -0
- package/command/gsd/debug.md +21 -0
- package/command/gsd/discuss-phase.md +7 -1
- package/command/gsd/execute-phase.md +41 -5
- package/command/gsd/help.md +105 -0
- package/command/gsd/new-milestone.md +268 -263
- package/command/gsd/new-project.md +118 -9
- package/command/gsd/pause-work.md +11 -0
- package/command/gsd/plan-milestone-gaps.md +11 -0
- package/command/gsd/plan-phase.md +77 -26
- package/command/gsd/progress.md +9 -0
- package/command/gsd/quick.md +309 -0
- package/command/gsd/remove-phase.md +11 -0
- package/command/gsd/research-phase.md +22 -1
- package/command/gsd/resume-work.md +1 -0
- package/command/gsd/set-profile.md +106 -0
- package/command/gsd/settings.md +136 -0
- package/command/gsd/update.md +1 -1
- package/get-shit-done/references/checkpoints.md +318 -28
- package/get-shit-done/references/model-profiles.md +73 -0
- package/get-shit-done/references/planning-config.md +94 -0
- package/get-shit-done/references/verification-patterns.md +17 -0
- package/get-shit-done/templates/phase-prompt.md +18 -27
- package/get-shit-done/workflows/complete-milestone.md +11 -0
- package/get-shit-done/workflows/diagnose-issues.md +11 -0
- package/get-shit-done/workflows/discovery-phase.md +11 -10
- package/get-shit-done/workflows/discuss-phase.md +11 -0
- package/get-shit-done/workflows/execute-phase.md +68 -9
- package/get-shit-done/workflows/execute-plan.md +47 -4
- package/get-shit-done/workflows/map-codebase.md +35 -2
- package/get-shit-done/workflows/resume-project.md +4 -0
- package/get-shit-done/workflows/transition.md +2 -2
- package/get-shit-done/workflows/verify-phase.md +2 -3
- package/get-shit-done/workflows/verify-work.md +33 -0
- 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
|
-
|
|
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
|
|
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.
|
|
235
|
+
## 7. read Context Files
|
|
208
236
|
|
|
209
|
-
|
|
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
|
-
#
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
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
|
-
|
|
274
|
+
{state_content}
|
|
245
275
|
|
|
246
276
|
**Roadmap:**
|
|
247
|
-
|
|
277
|
+
{roadmap_content}
|
|
248
278
|
|
|
249
279
|
**Requirements (if exists):**
|
|
250
|
-
|
|
280
|
+
{requirements_content}
|
|
251
281
|
|
|
252
282
|
**Phase Context (if exists):**
|
|
253
|
-
|
|
283
|
+
{context_content}
|
|
254
284
|
|
|
255
285
|
**Research (if exists):**
|
|
256
|
-
|
|
286
|
+
{research_content}
|
|
257
287
|
|
|
258
288
|
**Gap Closure (if --gaps mode):**
|
|
259
|
-
|
|
260
|
-
|
|
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
|
-
|
|
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
|
-
|
|
374
|
+
{plans_content}
|
|
332
375
|
|
|
333
376
|
**Requirements (if exists):**
|
|
334
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
```
|
package/command/gsd/progress.md
CHANGED
|
@@ -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]
|