gsd-opencode 1.5.2 → 1.6.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 (108) hide show
  1. package/agents/gsd-codebase-mapper.md +743 -0
  2. package/agents/gsd-debugger.md +1191 -0
  3. package/agents/gsd-executor.md +759 -0
  4. package/agents/gsd-integration-checker.md +427 -0
  5. package/agents/gsd-phase-researcher.md +637 -0
  6. package/agents/gsd-plan-checker.md +749 -0
  7. package/agents/gsd-planner.md +1373 -0
  8. package/agents/gsd-project-researcher.md +877 -0
  9. package/agents/gsd-research-synthesizer.md +250 -0
  10. package/agents/gsd-roadmapper.md +610 -0
  11. package/agents/gsd-verifier.md +782 -0
  12. package/bin/install.js +11 -1
  13. package/command/gsd/add-phase.md +5 -7
  14. package/command/gsd/add-todo.md +4 -6
  15. package/command/gsd/audit-milestone.md +257 -0
  16. package/command/gsd/check-todos.md +2 -4
  17. package/command/gsd/complete-milestone.md +53 -23
  18. package/command/gsd/debug.md +120 -30
  19. package/command/gsd/discuss-phase.md +51 -30
  20. package/command/gsd/execute-phase.md +192 -26
  21. package/command/gsd/help.md +66 -75
  22. package/command/gsd/insert-phase.md +6 -6
  23. package/command/gsd/list-phase-assumptions.md +1 -1
  24. package/command/gsd/map-codebase.md +15 -28
  25. package/command/gsd/new-milestone.md +693 -36
  26. package/command/gsd/new-project.md +668 -108
  27. package/command/gsd/pause-work.md +2 -2
  28. package/command/gsd/plan-milestone-gaps.md +284 -0
  29. package/command/gsd/plan-phase.md +449 -42
  30. package/command/gsd/progress.md +66 -36
  31. package/command/gsd/remove-phase.md +17 -19
  32. package/command/gsd/research-phase.md +155 -67
  33. package/command/gsd/resume-work.md +3 -3
  34. package/command/gsd/update.md +172 -0
  35. package/command/gsd/verify-work.md +186 -38
  36. package/command/gsd/whats-new.md +124 -0
  37. package/get-shit-done/references/checkpoints.md +599 -98
  38. package/get-shit-done/references/continuation-format.md +5 -11
  39. package/get-shit-done/references/questioning.md +87 -108
  40. package/get-shit-done/references/tdd.md +3 -3
  41. package/get-shit-done/references/ui-brand.md +160 -0
  42. package/get-shit-done/references/verification-patterns.md +595 -0
  43. package/get-shit-done/templates/DEBUG.md +3 -3
  44. package/get-shit-done/templates/UAT.md +247 -0
  45. package/get-shit-done/templates/codebase/architecture.md +5 -5
  46. package/get-shit-done/templates/codebase/concerns.md +1 -1
  47. package/get-shit-done/templates/codebase/conventions.md +1 -1
  48. package/get-shit-done/templates/codebase/structure.md +8 -8
  49. package/get-shit-done/templates/codebase/testing.md +2 -2
  50. package/get-shit-done/templates/context.md +221 -70
  51. package/get-shit-done/templates/debug-subagent-prompt.md +91 -0
  52. package/get-shit-done/templates/discovery.md +5 -5
  53. package/get-shit-done/templates/phase-prompt.md +115 -2
  54. package/get-shit-done/templates/planner-subagent-prompt.md +117 -0
  55. package/get-shit-done/templates/requirements.md +231 -0
  56. package/get-shit-done/templates/research-project/ARCHITECTURE.md +204 -0
  57. package/get-shit-done/templates/research-project/FEATURES.md +147 -0
  58. package/get-shit-done/templates/research-project/PITFALLS.md +200 -0
  59. package/get-shit-done/templates/research-project/STACK.md +120 -0
  60. package/get-shit-done/templates/research-project/SUMMARY.md +170 -0
  61. package/get-shit-done/templates/research.md +2 -2
  62. package/get-shit-done/templates/roadmap.md +26 -20
  63. package/get-shit-done/templates/state.md +2 -17
  64. package/get-shit-done/templates/summary.md +13 -17
  65. package/get-shit-done/templates/user-setup.md +323 -0
  66. package/get-shit-done/templates/verification-report.md +322 -0
  67. package/get-shit-done/workflows/complete-milestone.md +152 -45
  68. package/get-shit-done/workflows/diagnose-issues.md +233 -0
  69. package/get-shit-done/workflows/discovery-phase.md +12 -17
  70. package/get-shit-done/workflows/discuss-phase.md +309 -124
  71. package/get-shit-done/workflows/execute-phase.md +177 -18
  72. package/get-shit-done/workflows/execute-plan.md +163 -145
  73. package/get-shit-done/workflows/map-codebase.md +86 -231
  74. package/get-shit-done/workflows/resume-project.md +18 -20
  75. package/get-shit-done/workflows/transition.md +7 -23
  76. package/get-shit-done/workflows/verify-phase.md +629 -0
  77. package/get-shit-done/workflows/verify-work.md +495 -134
  78. package/package.json +2 -1
  79. package/command/gsd/consider-issues.md +0 -201
  80. package/command/gsd/create-roadmap.md +0 -115
  81. package/command/gsd/discuss-milestone.md +0 -47
  82. package/command/gsd/execute-plan.md +0 -103
  83. package/command/gsd/plan-fix.md +0 -205
  84. package/command/gsd/status.md +0 -127
  85. package/get-shit-done/references/debugging/debugging-mindset.md +0 -253
  86. package/get-shit-done/references/debugging/hypothesis-testing.md +0 -373
  87. package/get-shit-done/references/debugging/investigation-techniques.md +0 -337
  88. package/get-shit-done/references/debugging/verification-patterns.md +0 -425
  89. package/get-shit-done/references/debugging/when-to-research.md +0 -361
  90. package/get-shit-done/references/plan-format.md +0 -475
  91. package/get-shit-done/references/principles.md +0 -157
  92. package/get-shit-done/references/research-pitfalls.md +0 -215
  93. package/get-shit-done/references/scope-estimation.md +0 -256
  94. package/get-shit-done/templates/agent-history.md +0 -263
  95. package/get-shit-done/templates/checkpoint-return.md +0 -204
  96. package/get-shit-done/templates/config.json +0 -26
  97. package/get-shit-done/templates/continuation-prompt.md +0 -235
  98. package/get-shit-done/templates/issues.md +0 -32
  99. package/get-shit-done/templates/milestone-context.md +0 -93
  100. package/get-shit-done/templates/subagent-task-prompt.md +0 -95
  101. package/get-shit-done/templates/uat-issues.md +0 -143
  102. package/get-shit-done/workflows/_archive/execute-phase.md +0 -899
  103. package/get-shit-done/workflows/create-milestone.md +0 -416
  104. package/get-shit-done/workflows/create-roadmap.md +0 -481
  105. package/get-shit-done/workflows/debug.md +0 -426
  106. package/get-shit-done/workflows/discuss-milestone.md +0 -236
  107. package/get-shit-done/workflows/plan-phase.md +0 -701
  108. package/get-shit-done/workflows/research-phase.md +0 -436
@@ -8,12 +8,13 @@ This is the ritual that separates "development" from "shipped."
8
8
 
9
9
  <required_reading>
10
10
 
11
- **Read these files NOW:**
11
+ **read these files NOW:**
12
12
 
13
13
  1. templates/milestone.md
14
14
  2. templates/milestone-archive.md
15
15
  3. `.planning/ROADMAP.md`
16
- 4. `.planning/PROJECT.md`
16
+ 4. `.planning/REQUIREMENTS.md`
17
+ 5. `.planning/PROJECT.md`
17
18
 
18
19
  </required_reading>
19
20
 
@@ -22,24 +23,31 @@ This is the ritual that separates "development" from "shipped."
22
23
  When a milestone completes, this workflow:
23
24
 
24
25
  1. Extracts full milestone details to `.planning/milestones/v[X.Y]-ROADMAP.md`
25
- 2. Updates ROADMAP.md to replace milestone details with one-line summary
26
- 3. Links to archive file for historical reference
27
- 4. Performs full PROJECT.md evolution review
28
- 5. Offers to create next milestone inline
26
+ 2. Archives requirements to `.planning/milestones/v[X.Y]-REQUIREMENTS.md`
27
+ 3. Updates ROADMAP.md to replace milestone details with one-line summary
28
+ 4. Deletes REQUIREMENTS.md (fresh one created for next milestone)
29
+ 5. Performs full PROJECT.md evolution review
30
+ 6. Offers to create next milestone inline
29
31
 
30
32
  **Context Efficiency:**
31
33
 
32
34
  - Completed milestones: One line each (~50 tokens)
33
35
  - Full details: In archive files (loaded only when needed)
34
- - Result: ROADMAP.md stays constant size (~1-2k lines) forever
36
+ - Result: ROADMAP.md stays constant size forever
37
+ - Result: REQUIREMENTS.md is always milestone-scoped (not cumulative)
35
38
 
36
39
  **Archive Format:**
37
- Uses `templates/milestone-archive.md` template with:
38
40
 
41
+ **ROADMAP archive** uses `templates/milestone-archive.md` template with:
39
42
  - Milestone header (status, phases, date)
40
43
  - Full phase details from roadmap
41
44
  - Milestone summary (decisions, issues, technical debt)
42
45
 
46
+ **REQUIREMENTS archive** contains:
47
+ - All v1 requirements marked complete with outcomes
48
+ - Traceability table with final status
49
+ - Notes on any requirements that changed during milestone
50
+
43
51
  </archival_behavior>
44
52
 
45
53
  <process>
@@ -151,7 +159,7 @@ Milestone Stats:
151
159
 
152
160
  <step name="extract_accomplishments">
153
161
 
154
- Read all phase SUMMARY.md files in milestone range:
162
+ read all phase SUMMARY.md files in milestone range:
155
163
 
156
164
  ```bash
157
165
  cat .planning/phases/01-*/01-*-SUMMARY.md
@@ -221,7 +229,7 @@ Use template from `templates/milestone.md`:
221
229
 
222
230
  Perform full PROJECT.md evolution review at milestone completion.
223
231
 
224
- **Read all phase summaries in this milestone:**
232
+ **read all phase summaries in this milestone:**
225
233
 
226
234
  ```bash
227
235
  cat .planning/phases/*-*/*-SUMMARY.md
@@ -230,7 +238,7 @@ cat .planning/phases/*-*/*-SUMMARY.md
230
238
  **Full review checklist:**
231
239
 
232
240
  1. **"What This Is" accuracy:**
233
- - Read current description
241
+ - read current description
234
242
  - Compare to what was actually built
235
243
  - Update if the product has meaningfully changed
236
244
 
@@ -415,7 +423,7 @@ Extract completed milestone details and create archive file.
415
423
 
416
424
  1. Create archive file path: `.planning/milestones/v[X.Y]-ROADMAP.md`
417
425
 
418
- 2. Read `~/.config/opencode/get-shit-done/templates/milestone-archive.md` template
426
+ 2. read `~/.config/opencode/get-shit-done/templates/milestone-archive.md` template
419
427
 
420
428
  3. Extract data from current ROADMAP.md:
421
429
  - All phases belonging to this milestone (by phase number range)
@@ -437,26 +445,109 @@ Extract completed milestone details and create archive file.
437
445
  - {{PHASES_SECTION}} — Full phase details extracted
438
446
  - {{DECISIONS_FROM_PROJECT}} — Key decisions from PROJECT.md
439
447
  - {{ISSUES_RESOLVED_DURING_MILESTONE}} — From summaries
440
- - {{ISSUES_DEFERRED_TO_LATER}} — From ISSUES.md
441
448
 
442
- 6. Write filled template to `.planning/milestones/v[X.Y]-ROADMAP.md`
449
+ 6. write filled template to `.planning/milestones/v[X.Y]-ROADMAP.md`
443
450
 
444
- 7. Update ROADMAP.md:
445
- - Create/update "## Completed Milestones" section if not exists
446
- - Add one-line entry: `- ✅ [v[X.Y] [Name]](milestones/v[X.Y]-ROADMAP.md) (Phases [N]-[M]) — SHIPPED [DATE]`
447
- - Remove full milestone details from "Current Milestone" section
448
- - Move next planned milestone to "Current Milestone" position
451
+ 7. Delete ROADMAP.md (fresh one created for next milestone):
452
+ ```bash
453
+ rm .planning/ROADMAP.md
454
+ ```
449
455
 
450
- 8. Verify files:
451
- - Check archive file exists: `ls .planning/milestones/v[X.Y]-ROADMAP.md`
452
- - Validate ROADMAP.md still parseable
456
+ 8. Verify archive exists:
457
+ ```bash
458
+ ls .planning/milestones/v[X.Y]-ROADMAP.md
459
+ ```
453
460
 
454
- 9. Confirm archive complete:
461
+ 9. Confirm roadmap archive complete:
455
462
 
456
463
  ```
457
- ✅ v[X.Y] archived to milestones/v[X.Y]-ROADMAP.md
464
+ ✅ v[X.Y] roadmap archived to milestones/v[X.Y]-ROADMAP.md
465
+ ✅ ROADMAP.md deleted (fresh one for next milestone)
458
466
  ```
459
467
 
468
+ **Note:** Phase directories (`.planning/phases/`) are NOT deleted. They accumulate across milestones as the raw execution history. Phase numbering continues (v1.0 phases 1-4, v1.1 phases 5-8, etc.).
469
+
470
+ </step>
471
+
472
+ <step name="archive_requirements">
473
+
474
+ Archive requirements and prepare for fresh requirements in next milestone.
475
+
476
+ **Process:**
477
+
478
+ 1. read current REQUIREMENTS.md:
479
+ ```bash
480
+ cat .planning/REQUIREMENTS.md
481
+ ```
482
+
483
+ 2. Create archive file: `.planning/milestones/v[X.Y]-REQUIREMENTS.md`
484
+
485
+ 3. Transform requirements for archive:
486
+ - Mark all v1 requirements as `[x]` complete
487
+ - Add outcome notes where relevant (validated, adjusted, dropped)
488
+ - Update traceability table status to "Complete" for all shipped requirements
489
+ - Add "Milestone Summary" section with:
490
+ - Total requirements shipped
491
+ - Any requirements that changed scope during milestone
492
+ - Any requirements dropped and why
493
+
494
+ 4. write archive file with header:
495
+ ```markdown
496
+ # Requirements Archive: v[X.Y] [Milestone Name]
497
+
498
+ **Archived:** [DATE]
499
+ **Status:** ✅ SHIPPED
500
+
501
+ This is the archived requirements specification for v[X.Y].
502
+ For current requirements, see `.planning/REQUIREMENTS.md` (created for next milestone).
503
+
504
+ ---
505
+
506
+ [Full REQUIREMENTS.md content with checkboxes marked complete]
507
+
508
+ ---
509
+
510
+ ## Milestone Summary
511
+
512
+ **Shipped:** [X] of [Y] v1 requirements
513
+ **Adjusted:** [list any requirements that changed during implementation]
514
+ **Dropped:** [list any requirements removed and why]
515
+
516
+ ---
517
+ *Archived: [DATE] as part of v[X.Y] milestone completion*
518
+ ```
519
+
520
+ 5. Delete original REQUIREMENTS.md:
521
+ ```bash
522
+ rm .planning/REQUIREMENTS.md
523
+ ```
524
+
525
+ 6. Confirm:
526
+ ```
527
+ ✅ Requirements archived to milestones/v[X.Y]-REQUIREMENTS.md
528
+ ✅ REQUIREMENTS.md deleted (fresh one needed for next milestone)
529
+ ```
530
+
531
+ **Important:** The next milestone workflow starts with `/gsd-new-milestone` which includes requirements definition. PROJECT.md's Validated section carries the cumulative record across milestones.
532
+
533
+ </step>
534
+
535
+ <step name="archive_audit">
536
+
537
+ Move the milestone audit file to the archive (if it exists):
538
+
539
+ ```bash
540
+ # Move audit to milestones folder (if exists)
541
+ [ -f .planning/v[X.Y]-MILESTONE-AUDIT.md ] && mv .planning/v[X.Y]-MILESTONE-AUDIT.md .planning/milestones/
542
+ ```
543
+
544
+ Confirm:
545
+ ```
546
+ ✅ Audit archived to milestones/v[X.Y]-MILESTONE-AUDIT.md
547
+ ```
548
+
549
+ (Skip silently if no audit file exists — audit is optional)
550
+
460
551
  </step>
461
552
 
462
553
  <step name="update_state">
@@ -527,26 +618,41 @@ git push origin v[X.Y]
527
618
 
528
619
  <step name="git_commit_milestone">
529
620
 
530
- Commit milestone completion including archive file.
621
+ Commit milestone completion including archive files and deletions.
531
622
 
532
623
  ```bash
533
- # Stage all milestone-related files
624
+ # Stage archive files (new)
625
+ git add .planning/milestones/v[X.Y]-ROADMAP.md
626
+ git add .planning/milestones/v[X.Y]-REQUIREMENTS.md
627
+ git add .planning/milestones/v[X.Y]-MILESTONE-AUDIT.md 2>/dev/null || true
628
+
629
+ # Stage updated files
534
630
  git add .planning/MILESTONES.md
535
631
  git add .planning/PROJECT.md
536
- git add .planning/ROADMAP.md
537
632
  git add .planning/STATE.md
538
- git add .planning/milestones/v[X.Y]-ROADMAP.md
633
+
634
+ # Stage deletions
635
+ git add -u .planning/
539
636
 
540
637
  # Commit with descriptive message
541
638
  git commit -m "$(cat <<'EOF'
542
639
  chore: complete v[X.Y] milestone
543
640
 
544
- - Added MILESTONES.md entry
545
- - Evolved PROJECT.md with validated requirements
546
- - Reorganized ROADMAP.md with milestone grouping
547
- - Created milestone archive: milestones/v[X.Y]-ROADMAP.md
548
- - Updated STATE.md
549
- - Tagged v[X.Y]
641
+ Archived:
642
+ - milestones/v[X.Y]-ROADMAP.md
643
+ - milestones/v[X.Y]-REQUIREMENTS.md
644
+ - milestones/v[X.Y]-MILESTONE-AUDIT.md (if audit was run)
645
+
646
+ Deleted (fresh for next milestone):
647
+ - ROADMAP.md
648
+ - REQUIREMENTS.md
649
+
650
+ Updated:
651
+ - MILESTONES.md (new entry)
652
+ - PROJECT.md (requirements → Validated)
653
+ - STATE.md (reset for next milestone)
654
+
655
+ Tagged: v[X.Y]
550
656
  EOF
551
657
  )"
552
658
  ```
@@ -564,6 +670,10 @@ Shipped:
564
670
  - [N] phases ([M] plans, [P] tasks)
565
671
  - [One sentence of what shipped]
566
672
 
673
+ Archived:
674
+ - milestones/v[X.Y]-ROADMAP.md
675
+ - milestones/v[X.Y]-REQUIREMENTS.md
676
+
567
677
  Summary: .planning/MILESTONES.md
568
678
  Tag: v[X.Y]
569
679
 
@@ -571,17 +681,12 @@ Tag: v[X.Y]
571
681
 
572
682
  ## ▶ Next Up
573
683
 
574
- **Plan Next Milestone** — define v[X.Y+1] features and scope
684
+ **Start Next Milestone** — questioning research requirements → roadmap
575
685
 
576
- `/gsd-discuss-milestone`
686
+ `/gsd-new-milestone`
577
687
 
578
688
  *`/new` first → fresh context window*
579
689
 
580
- ---
581
-
582
- **Also available:**
583
- - `/gsd-new-milestone` — create directly if scope is clear
584
-
585
690
  ---
586
691
  ```
587
692
 
@@ -631,13 +736,15 @@ Milestone completion is successful when:
631
736
 
632
737
  - [ ] MILESTONES.md entry created with stats and accomplishments
633
738
  - [ ] PROJECT.md full evolution review completed
634
- - [ ] All shipped requirements moved to Validated
739
+ - [ ] All shipped requirements moved to Validated in PROJECT.md
635
740
  - [ ] Key Decisions updated with outcomes
636
741
  - [ ] ROADMAP.md reorganized with milestone grouping
637
- - [ ] Milestone archive created
742
+ - [ ] Roadmap archive created (milestones/v[X.Y]-ROADMAP.md)
743
+ - [ ] Requirements archive created (milestones/v[X.Y]-REQUIREMENTS.md)
744
+ - [ ] REQUIREMENTS.md deleted (fresh for next milestone)
638
745
  - [ ] STATE.md updated with fresh project reference
639
746
  - [ ] Git tag created (v[X.Y])
640
- - [ ] Milestone commit made
641
- - [ ] User knows next steps
747
+ - [ ] Milestone commit made (includes archive files and deletion)
748
+ - [ ] User knows next step (/gsd-new-milestone)
642
749
 
643
750
  </success_criteria>
@@ -0,0 +1,233 @@
1
+ <purpose>
2
+ Orchestrate parallel debug agents to investigate UAT gaps and find root causes.
3
+
4
+ After UAT finds gaps, spawn one debug agent per gap. Each agent investigates autonomously with symptoms pre-filled from UAT. Collect root causes, update UAT.md gaps with diagnosis, then hand off to plan-phase --gaps with actual diagnoses.
5
+
6
+ Orchestrator stays lean: parse gaps, spawn agents, collect results, update UAT.
7
+ </purpose>
8
+
9
+ <paths>
10
+ DEBUG_DIR=.planning/debug
11
+
12
+ Debug files use the `.planning/debug/` path (hidden directory with leading dot).
13
+ </paths>
14
+
15
+ <core_principle>
16
+ **Diagnose before planning fixes.**
17
+
18
+ UAT tells us WHAT is broken (symptoms). Debug agents find WHY (root cause). plan-phase --gaps then creates targeted fixes based on actual causes, not guesses.
19
+
20
+ Without diagnosis: "Comment doesn't refresh" → guess at fix → maybe wrong
21
+ With diagnosis: "Comment doesn't refresh" → "useEffect missing dependency" → precise fix
22
+ </core_principle>
23
+
24
+ <process>
25
+
26
+ <step name="parse_gaps">
27
+ **Extract gaps from UAT.md:**
28
+
29
+ read the "Gaps" section (YAML format):
30
+ ```yaml
31
+ - truth: "Comment appears immediately after submission"
32
+ status: failed
33
+ reason: "User reported: works but doesn't show until I refresh the page"
34
+ severity: major
35
+ test: 2
36
+ artifacts: []
37
+ missing: []
38
+ ```
39
+
40
+ For each gap, also read the corresponding test from "Tests" section to get full context.
41
+
42
+ Build gap list:
43
+ ```
44
+ gaps = [
45
+ {truth: "Comment appears immediately...", severity: "major", test_num: 2, reason: "..."},
46
+ {truth: "Reply button positioned correctly...", severity: "minor", test_num: 5, reason: "..."},
47
+ ...
48
+ ]
49
+ ```
50
+ </step>
51
+
52
+ <step name="report_plan">
53
+ **Report diagnosis plan to user:**
54
+
55
+ ```
56
+ ## Diagnosing {N} Gaps
57
+
58
+ Spawning parallel debug agents to investigate root causes:
59
+
60
+ | Gap (Truth) | Severity |
61
+ |-------------|----------|
62
+ | Comment appears immediately after submission | major |
63
+ | Reply button positioned correctly | minor |
64
+ | Delete removes comment | blocker |
65
+
66
+ Each agent will:
67
+ 1. Create DEBUG-{slug}.md with symptoms pre-filled
68
+ 2. Investigate autonomously (read code, form hypotheses, test)
69
+ 3. Return root cause
70
+
71
+ This runs in parallel - all gaps investigated simultaneously.
72
+ ```
73
+ </step>
74
+
75
+ <step name="spawn_agents">
76
+ **Spawn debug agents in parallel:**
77
+
78
+ For each gap, fill the debug-subagent-prompt template and spawn:
79
+
80
+ ```
81
+ Task(
82
+ prompt=filled_debug_subagent_prompt,
83
+ subagent_type="general",
84
+ description="Debug: {truth_short}"
85
+ )
86
+ ```
87
+
88
+ **All agents spawn in single message** (parallel execution).
89
+
90
+ Template placeholders:
91
+ - `{truth}`: The expected behavior that failed
92
+ - `{expected}`: From UAT test
93
+ - `{actual}`: Verbatim user description from reason field
94
+ - `{errors}`: Any error messages from UAT (or "None reported")
95
+ - `{reproduction}`: "Test {test_num} in UAT"
96
+ - `{timeline}`: "Discovered during UAT"
97
+ - `{goal}`: `find_root_cause_only` (UAT flow - plan-phase --gaps handles fixes)
98
+ - `{slug}`: Generated from truth
99
+ </step>
100
+
101
+ <step name="collect_results">
102
+ **Collect root causes from agents:**
103
+
104
+ Each agent returns with:
105
+ ```
106
+ ## ROOT CAUSE FOUND
107
+
108
+ **Debug Session:** ${DEBUG_DIR}/{slug}.md
109
+
110
+ **Root Cause:** {specific cause with evidence}
111
+
112
+ **Evidence Summary:**
113
+ - {key finding 1}
114
+ - {key finding 2}
115
+ - {key finding 3}
116
+
117
+ **Files Involved:**
118
+ - {file1}: {what's wrong}
119
+ - {file2}: {related issue}
120
+
121
+ **Suggested Fix Direction:** {brief hint for plan-phase --gaps}
122
+ ```
123
+
124
+ Parse each return to extract:
125
+ - root_cause: The diagnosed cause
126
+ - files: Files involved
127
+ - debug_path: Path to debug session file
128
+ - suggested_fix: Hint for gap closure plan
129
+
130
+ If agent returns `## INVESTIGATION INCONCLUSIVE`:
131
+ - root_cause: "Investigation inconclusive - manual review needed"
132
+ - Note which issue needs manual attention
133
+ - Include remaining possibilities from agent return
134
+ </step>
135
+
136
+ <step name="update_uat">
137
+ **Update UAT.md gaps with diagnosis:**
138
+
139
+ For each gap in the Gaps section, add artifacts and missing fields:
140
+
141
+ ```yaml
142
+ - truth: "Comment appears immediately after submission"
143
+ status: failed
144
+ reason: "User reported: works but doesn't show until I refresh the page"
145
+ severity: major
146
+ test: 2
147
+ root_cause: "useEffect in CommentList.tsx missing commentCount dependency"
148
+ artifacts:
149
+ - path: "src/components/CommentList.tsx"
150
+ issue: "useEffect missing dependency"
151
+ missing:
152
+ - "Add commentCount to useEffect dependency array"
153
+ - "Trigger re-render when new comment added"
154
+ debug_session: .planning/debug/comment-not-refreshing.md
155
+ ```
156
+
157
+ Update status in frontmatter to "diagnosed".
158
+
159
+ Commit the updated UAT.md:
160
+ ```bash
161
+ git add ".planning/phases/XX-name/{phase}-UAT.md"
162
+ git commit -m "docs({phase}): add root causes from diagnosis"
163
+ ```
164
+ </step>
165
+
166
+ <step name="report_results">
167
+ **Report diagnosis results and hand off:**
168
+
169
+ Display:
170
+ ```
171
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
172
+ GSD ► DIAGNOSIS COMPLETE
173
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
174
+
175
+ | Gap (Truth) | Root Cause | Files |
176
+ |-------------|------------|-------|
177
+ | Comment appears immediately | useEffect missing dependency | CommentList.tsx |
178
+ | Reply button positioned correctly | CSS flex order incorrect | ReplyButton.tsx |
179
+ | Delete removes comment | API missing auth header | api/comments.ts |
180
+
181
+ Debug sessions: ${DEBUG_DIR}/
182
+
183
+ Proceeding to plan fixes...
184
+ ```
185
+
186
+ Return to verify-work orchestrator for automatic planning.
187
+ Do NOT offer manual next steps - verify-work handles the rest.
188
+ </step>
189
+
190
+ </process>
191
+
192
+ <context_efficiency>
193
+ **Orchestrator context:** ~15%
194
+ - Parse UAT.md gaps
195
+ - Fill template strings
196
+ - Spawn parallel Task calls
197
+ - Collect results
198
+ - Update UAT.md
199
+
200
+ **Each debug agent:** Fresh 200k context
201
+ - Loads full debug workflow
202
+ - Loads debugging references
203
+ - Investigates with full capacity
204
+ - Returns root cause
205
+
206
+ **No symptom gathering.** Agents start with symptoms pre-filled from UAT.
207
+ **No fix application.** Agents only diagnose - plan-phase --gaps handles fixes.
208
+ </context_efficiency>
209
+
210
+ <failure_handling>
211
+ **Agent fails to find root cause:**
212
+ - Mark gap as "needs manual review"
213
+ - Continue with other gaps
214
+ - Report incomplete diagnosis
215
+
216
+ **Agent times out:**
217
+ - Check DEBUG-{slug}.md for partial progress
218
+ - Can resume with /gsd-debug
219
+
220
+ **All agents fail:**
221
+ - Something systemic (permissions, git, etc.)
222
+ - Report for manual investigation
223
+ - Fall back to plan-phase --gaps without root causes (less precise)
224
+ </failure_handling>
225
+
226
+ <success_criteria>
227
+ - [ ] Gaps parsed from UAT.md
228
+ - [ ] Debug agents spawned in parallel
229
+ - [ ] Root causes collected from all agents
230
+ - [ ] UAT.md gaps updated with artifacts and missing
231
+ - [ ] Debug sessions saved to ${DEBUG_DIR}/
232
+ - [ ] Hand off to verify-work for automatic planning
233
+ </success_criteria>
@@ -20,13 +20,13 @@ NOTE: For comprehensive ecosystem research ("how do experts build this"), use /g
20
20
  </depth_levels>
21
21
 
22
22
  <source_hierarchy>
23
- **MANDATORY: Context7 BEFORE WebSearch**
23
+ **MANDATORY: Context7 BEFORE webfetch**
24
24
 
25
25
  OpenCode's training data is 6-18 months stale. Always verify.
26
26
 
27
27
  1. **Context7 MCP FIRST** - Current docs, no hallucination
28
28
  2. **Official docs** - When Context7 lacks coverage
29
- 3. **WebSearch LAST** - For comparisons and trends only
29
+ 3. **webfetch LAST** - For comparisons and trends only
30
30
 
31
31
  See ~/.config/opencode/get-shit-done/templates/discovery.md `<discovery_protocol>` for full protocol.
32
32
  </source_hierarchy>
@@ -99,15 +99,15 @@ For: Choosing between options, new external integration.
99
99
 
100
100
  3. **Official docs** for anything Context7 lacks.
101
101
 
102
- 4. **WebSearch** for comparisons:
102
+ 4. **webfetch** for comparisons:
103
103
 
104
104
  - "[option A] vs [option B] {current_year}"
105
105
  - "[option] known issues"
106
106
  - "[option] with [our stack]"
107
107
 
108
- 5. **Cross-verify:** Any WebSearch finding → confirm with Context7/official docs.
108
+ 5. **Cross-verify:** Any webfetch finding → confirm with Context7/official docs.
109
109
 
110
- 6. **Quality check:** Before finalizing findings, consult ~/.config/opencode/get-shit-done/references/research-pitfalls.md to avoid common research gaps.
110
+ 6. **Quality check:** Before finalizing findings, consult the gsd-researcher agent's verification protocols to avoid common research gaps.
111
111
 
112
112
  7. **Create DISCOVERY.md** using ~/.config/opencode/get-shit-done/templates/discovery.md structure:
113
113
 
@@ -147,7 +147,7 @@ For: Architectural decisions, novel problems, high-risk choices.
147
147
  - Migration/upgrade guides
148
148
  - Known limitations
149
149
 
150
- 4. **WebSearch for ecosystem context:**
150
+ 4. **webfetch for ecosystem context:**
151
151
 
152
152
  - How others solved similar problems
153
153
  - Production experiences
@@ -156,11 +156,11 @@ For: Architectural decisions, novel problems, high-risk choices.
156
156
 
157
157
  5. **Cross-verify ALL findings:**
158
158
 
159
- - Every WebSearch claim → verify with authoritative source
159
+ - Every webfetch claim → verify with authoritative source
160
160
  - Mark what's verified vs assumed
161
161
  - Flag contradictions
162
162
 
163
- 6. **Quality check:** Before finalizing findings, consult ~/.config/opencode/get-shit-done/references/research-pitfalls.md to ensure comprehensive coverage and avoid common research gaps.
163
+ 6. **Quality check:** Before finalizing findings, consult the gsd-researcher agent's verification protocols to ensure comprehensive coverage and avoid common research gaps.
164
164
 
165
165
  7. **Create comprehensive DISCOVERY.md:**
166
166
 
@@ -207,7 +207,7 @@ Run the discovery:
207
207
  </step>
208
208
 
209
209
  <step name="create_discovery_output">
210
- Write `.planning/phases/XX-name/DISCOVERY.md`:
210
+ write `.planning/phases/XX-name/DISCOVERY.md`:
211
211
  - Summary with recommendation
212
212
  - Key findings with sources
213
213
  - Code examples if applicable
@@ -276,15 +276,10 @@ NOTE: DISCOVERY.md is NOT committed separately. It will be committed with phase
276
276
 
277
277
  **Level 2 (Standard):**
278
278
  - Context7 consulted for all options
279
- - WebSearch findings cross-verified
280
- - DISCOVERY.md created with recommendation
281
- - Confidence level MEDIUM or higher
282
- - Ready to inform PLAN.md creation
279
+ - webfetch findings cross-verified
283
280
 
284
- **Level 3 (Deep Dive):**
285
- - Discovery scope defined
286
- - Context7 exhaustively consulted
287
- - All WebSearch findings verified against authoritative sources
281
+ 7. Quality gate
282
+ - All webfetch findings verified against authoritative sources
288
283
  - DISCOVERY.md created with comprehensive analysis
289
284
  - Quality report with source attribution
290
285
  - If LOW confidence findings → validation checkpoints defined