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.
- package/agents/gsd-codebase-mapper.md +743 -0
- package/agents/gsd-debugger.md +1191 -0
- package/agents/gsd-executor.md +759 -0
- package/agents/gsd-integration-checker.md +427 -0
- package/agents/gsd-phase-researcher.md +637 -0
- package/agents/gsd-plan-checker.md +749 -0
- package/agents/gsd-planner.md +1373 -0
- package/agents/gsd-project-researcher.md +877 -0
- package/agents/gsd-research-synthesizer.md +250 -0
- package/agents/gsd-roadmapper.md +610 -0
- package/agents/gsd-verifier.md +782 -0
- package/bin/install.js +11 -1
- package/command/gsd/add-phase.md +5 -7
- package/command/gsd/add-todo.md +4 -6
- package/command/gsd/audit-milestone.md +257 -0
- package/command/gsd/check-todos.md +2 -4
- package/command/gsd/complete-milestone.md +53 -23
- package/command/gsd/debug.md +120 -30
- package/command/gsd/discuss-phase.md +51 -30
- package/command/gsd/execute-phase.md +192 -26
- package/command/gsd/help.md +66 -75
- package/command/gsd/insert-phase.md +6 -6
- package/command/gsd/list-phase-assumptions.md +1 -1
- package/command/gsd/map-codebase.md +15 -28
- package/command/gsd/new-milestone.md +693 -36
- package/command/gsd/new-project.md +668 -108
- package/command/gsd/pause-work.md +2 -2
- package/command/gsd/plan-milestone-gaps.md +284 -0
- package/command/gsd/plan-phase.md +449 -42
- package/command/gsd/progress.md +66 -36
- package/command/gsd/remove-phase.md +17 -19
- package/command/gsd/research-phase.md +155 -67
- package/command/gsd/resume-work.md +3 -3
- package/command/gsd/update.md +172 -0
- package/command/gsd/verify-work.md +186 -38
- package/command/gsd/whats-new.md +124 -0
- package/get-shit-done/references/checkpoints.md +599 -98
- package/get-shit-done/references/continuation-format.md +5 -11
- package/get-shit-done/references/questioning.md +87 -108
- package/get-shit-done/references/tdd.md +3 -3
- package/get-shit-done/references/ui-brand.md +160 -0
- package/get-shit-done/references/verification-patterns.md +595 -0
- package/get-shit-done/templates/DEBUG.md +3 -3
- package/get-shit-done/templates/UAT.md +247 -0
- package/get-shit-done/templates/codebase/architecture.md +5 -5
- package/get-shit-done/templates/codebase/concerns.md +1 -1
- package/get-shit-done/templates/codebase/conventions.md +1 -1
- package/get-shit-done/templates/codebase/structure.md +8 -8
- package/get-shit-done/templates/codebase/testing.md +2 -2
- package/get-shit-done/templates/context.md +221 -70
- package/get-shit-done/templates/debug-subagent-prompt.md +91 -0
- package/get-shit-done/templates/discovery.md +5 -5
- package/get-shit-done/templates/phase-prompt.md +115 -2
- package/get-shit-done/templates/planner-subagent-prompt.md +117 -0
- package/get-shit-done/templates/requirements.md +231 -0
- package/get-shit-done/templates/research-project/ARCHITECTURE.md +204 -0
- package/get-shit-done/templates/research-project/FEATURES.md +147 -0
- package/get-shit-done/templates/research-project/PITFALLS.md +200 -0
- package/get-shit-done/templates/research-project/STACK.md +120 -0
- package/get-shit-done/templates/research-project/SUMMARY.md +170 -0
- package/get-shit-done/templates/research.md +2 -2
- package/get-shit-done/templates/roadmap.md +26 -20
- package/get-shit-done/templates/state.md +2 -17
- package/get-shit-done/templates/summary.md +13 -17
- package/get-shit-done/templates/user-setup.md +323 -0
- package/get-shit-done/templates/verification-report.md +322 -0
- package/get-shit-done/workflows/complete-milestone.md +152 -45
- package/get-shit-done/workflows/diagnose-issues.md +233 -0
- package/get-shit-done/workflows/discovery-phase.md +12 -17
- package/get-shit-done/workflows/discuss-phase.md +309 -124
- package/get-shit-done/workflows/execute-phase.md +177 -18
- package/get-shit-done/workflows/execute-plan.md +163 -145
- package/get-shit-done/workflows/map-codebase.md +86 -231
- package/get-shit-done/workflows/resume-project.md +18 -20
- package/get-shit-done/workflows/transition.md +7 -23
- package/get-shit-done/workflows/verify-phase.md +629 -0
- package/get-shit-done/workflows/verify-work.md +495 -134
- package/package.json +2 -1
- package/command/gsd/consider-issues.md +0 -201
- package/command/gsd/create-roadmap.md +0 -115
- package/command/gsd/discuss-milestone.md +0 -47
- package/command/gsd/execute-plan.md +0 -103
- package/command/gsd/plan-fix.md +0 -205
- package/command/gsd/status.md +0 -127
- package/get-shit-done/references/debugging/debugging-mindset.md +0 -253
- package/get-shit-done/references/debugging/hypothesis-testing.md +0 -373
- package/get-shit-done/references/debugging/investigation-techniques.md +0 -337
- package/get-shit-done/references/debugging/verification-patterns.md +0 -425
- package/get-shit-done/references/debugging/when-to-research.md +0 -361
- package/get-shit-done/references/plan-format.md +0 -475
- package/get-shit-done/references/principles.md +0 -157
- package/get-shit-done/references/research-pitfalls.md +0 -215
- package/get-shit-done/references/scope-estimation.md +0 -256
- package/get-shit-done/templates/agent-history.md +0 -263
- package/get-shit-done/templates/checkpoint-return.md +0 -204
- package/get-shit-done/templates/config.json +0 -26
- package/get-shit-done/templates/continuation-prompt.md +0 -235
- package/get-shit-done/templates/issues.md +0 -32
- package/get-shit-done/templates/milestone-context.md +0 -93
- package/get-shit-done/templates/subagent-task-prompt.md +0 -95
- package/get-shit-done/templates/uat-issues.md +0 -143
- package/get-shit-done/workflows/_archive/execute-phase.md +0 -899
- package/get-shit-done/workflows/create-milestone.md +0 -416
- package/get-shit-done/workflows/create-roadmap.md +0 -481
- package/get-shit-done/workflows/debug.md +0 -426
- package/get-shit-done/workflows/discuss-milestone.md +0 -236
- package/get-shit-done/workflows/plan-phase.md +0 -701
- 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
|
-
**
|
|
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/
|
|
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.
|
|
26
|
-
3.
|
|
27
|
-
4.
|
|
28
|
-
5.
|
|
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
|
|
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
|
-
|
|
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
|
-
**
|
|
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
|
-
-
|
|
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.
|
|
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.
|
|
449
|
+
6. write filled template to `.planning/milestones/v[X.Y]-ROADMAP.md`
|
|
443
450
|
|
|
444
|
-
7.
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
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
|
|
451
|
-
|
|
452
|
-
-
|
|
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
|
|
621
|
+
Commit milestone completion including archive files and deletions.
|
|
531
622
|
|
|
532
623
|
```bash
|
|
533
|
-
# Stage
|
|
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
|
-
|
|
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
|
-
|
|
545
|
-
-
|
|
546
|
-
-
|
|
547
|
-
-
|
|
548
|
-
|
|
549
|
-
|
|
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
|
-
**
|
|
684
|
+
**Start Next Milestone** — questioning → research → requirements → roadmap
|
|
575
685
|
|
|
576
|
-
`/gsd-
|
|
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
|
-
- [ ]
|
|
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
|
|
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
|
|
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. **
|
|
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. **
|
|
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
|
|
108
|
+
5. **Cross-verify:** Any webfetch finding → confirm with Context7/official docs.
|
|
109
109
|
|
|
110
|
-
6. **Quality check:** Before finalizing findings, consult
|
|
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. **
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
-
|
|
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
|
-
|
|
285
|
-
-
|
|
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
|