gsd-opencode 1.5.2 → 1.6.1

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
@@ -3,7 +3,7 @@ Execute a phase prompt (PLAN.md) and create the outcome summary (SUMMARY.md).
3
3
  </purpose>
4
4
 
5
5
  <required_reading>
6
- Read STATE.md before any operation to load project context.
6
+ read STATE.md before any operation to load project context.
7
7
  </required_reading>
8
8
 
9
9
  <process>
@@ -19,7 +19,6 @@ cat .planning/STATE.md 2>/dev/null
19
19
 
20
20
  - Current position (phase, plan, status)
21
21
  - Accumulated decisions (constraints on this execution)
22
- - Deferred issues (context for deviations)
23
22
  - Blockers/concerns (things to watch for)
24
23
  - Brief alignment status
25
24
 
@@ -206,7 +205,7 @@ No segmentation benefit - execute entirely in main
206
205
  ```
207
206
  1. Run init_agent_tracking step first (see step below)
208
207
 
209
- 2. Use Task tool with subagent_type="general":
208
+ 2. Use Task tool with subagent_type="gsd-executor":
210
209
 
211
210
  Prompt: "Execute plan at .planning/phases/{phase}-{plan}-PLAN.md
212
211
 
@@ -218,7 +217,7 @@ No segmentation benefit - execute entirely in main
218
217
 
219
218
  3. After Task tool returns with agent_id:
220
219
 
221
- a. Write agent_id to current-agent-id.txt:
220
+ a. write agent_id to current-agent-id.txt:
222
221
  echo "[agent_id]" > .planning/current-agent-id.txt
223
222
 
224
223
  b. Append spawn entry to agent-history.json:
@@ -254,7 +253,7 @@ No segmentation benefit - execute entirely in main
254
253
  Execute segment-by-segment:
255
254
 
256
255
  For each autonomous segment:
257
- Spawn subagent with prompt: "Execute tasks [X-Y] from plan at .planning/phases/{phase}-{plan}-PLAN.md. Read the plan for full context and deviation rules. Do NOT create SUMMARY or commit - just execute these tasks and report results."
256
+ Spawn subagent with prompt: "Execute tasks [X-Y] from plan at .planning/phases/{phase}-{plan}-PLAN.md. read the plan for full context and deviation rules. Do NOT create SUMMARY or commit - just execute these tasks and report results."
258
257
 
259
258
  Wait for subagent completion
260
259
 
@@ -339,7 +338,7 @@ For Pattern A (fully autonomous) and Pattern C (decision-dependent), skip this s
339
338
 
340
339
  ````
341
340
  1. Parse plan to identify segments:
342
- - Read plan file
341
+ - read plan file
343
342
  - Find checkpoint locations: grep -n "type=\"checkpoint" PLAN.md
344
343
  - Identify checkpoint types: grep "type=\"checkpoint" PLAN.md | grep -o 'checkpoint:[^"]*'
345
344
  - Build segment map:
@@ -358,12 +357,12 @@ For Pattern A (fully autonomous) and Pattern C (decision-dependent), skip this s
358
357
 
359
358
  B. If routing = Subagent:
360
359
  ```
361
- Spawn Task tool with subagent_type="general":
360
+ Spawn Task tool with subagent_type="gsd-executor":
362
361
 
363
362
  Prompt: "Execute tasks [task numbers/names] from plan at [plan path].
364
363
 
365
364
  **Context:**
366
- - Read the full plan for objective, context files, and deviation rules
365
+ - read the full plan for objective, context files, and deviation rules
367
366
  - You are executing a SEGMENT of this plan (not the full plan)
368
367
  - Other segments will be executed separately
369
368
 
@@ -382,7 +381,7 @@ For Pattern A (fully autonomous) and Pattern C (decision-dependent), skip this s
382
381
 
383
382
  **After Task tool returns with agent_id:**
384
383
 
385
- 1. Write agent_id to current-agent-id.txt:
384
+ 1. write agent_id to current-agent-id.txt:
386
385
  echo "[agent_id]" > .planning/current-agent-id.txt
387
386
 
388
387
  2. Append spawn entry to agent-history.json:
@@ -467,12 +466,21 @@ Execution:
467
466
  [1] Spawning subagent for tasks 1-3...
468
467
  → Subagent completes: 3 files modified, 0 deviations
469
468
  [2] Executing checkpoint 4 (human-verify)...
470
- ════════════════════════════════════════
471
- CHECKPOINT: Verification Required
472
- Task 4 of 8: Verify database schema
473
- I built: User and Session tables with relations
474
- How to verify: Check src/db/schema.ts for correct types
475
- ════════════════════════════════════════
469
+ ╔═══════════════════════════════════════════════════════╗
470
+ CHECKPOINT: Verification Required
471
+ ╚═══════════════════════════════════════════════════════╝
472
+
473
+ Progress: 3/8 tasks complete
474
+ Task: Verify database schema
475
+
476
+ Built: User and Session tables with relations
477
+
478
+ How to verify:
479
+ 1. Check src/db/schema.ts for correct types
480
+
481
+ ────────────────────────────────────────────────────────
482
+ → YOUR ACTION: Type "approved" or describe issues
483
+ ────────────────────────────────────────────────────────
476
484
  User: "approved"
477
485
  [3] Spawning subagent for tasks 5-6...
478
486
  → Subagent completes: 2 files modified, 1 deviation (added error handling)
@@ -508,7 +516,7 @@ Committing...
508
516
  </step>
509
517
 
510
518
  <step name="load_prompt">
511
- Read the plan prompt:
519
+ read the plan prompt:
512
520
  ```bash
513
521
  cat .planning/phases/XX-name/{phase}-{plan}-PLAN.md
514
522
  ````
@@ -542,7 +550,7 @@ Use question:
542
550
  <step name="execute">
543
551
  Execute each task in the prompt. **Deviations are normal** - handle them automatically using embedded rules below.
544
552
 
545
- 1. Read the @context files listed in the prompt
553
+ 1. read the @context files listed in the prompt
546
554
 
547
555
  2. For each task:
548
556
 
@@ -610,23 +618,25 @@ Error: Not authenticated. Please run 'vercel login'
610
618
 
611
619
  [Create checkpoint dynamically]
612
620
 
613
- ════════════════════════════════════════
614
- CHECKPOINT: Authentication Required
615
- ════════════════════════════════════════
621
+ ╔═══════════════════════════════════════════════════════╗
622
+ CHECKPOINT: Action Required
623
+ ╚═══════════════════════════════════════════════════════╝
616
624
 
617
- Task 3 of 8: Authenticate Vercel CLI
625
+ Progress: 2/8 tasks complete
626
+ Task: Authenticate Vercel CLI
618
627
 
619
- I tried to deploy but got authentication error.
628
+ Attempted: vercel --yes
629
+ Error: Not authenticated
620
630
 
621
631
  What you need to do:
622
- Run: vercel login
632
+ 1. Run: vercel login
633
+ 2. Complete browser authentication
623
634
 
624
- This will open your browser - complete the authentication flow.
635
+ I'll verify: vercel whoami returns your account
625
636
 
626
- I'll verify after: vercel whoami returns your account
627
-
628
- Type "done" when authenticated
629
- ════════════════════════════════════════
637
+ ────────────────────────────────────────────────────────
638
+ → YOUR ACTION: Type "done" when authenticated
639
+ ────────────────────────────────────────────────────────
630
640
 
631
641
  [Wait for user response]
632
642
 
@@ -804,60 +814,28 @@ Proceed with proposed change? (yes / different approach / defer)
804
814
  3. WAIT for user response
805
815
  4. If approved: implement, track as `[Rule 4 - Architectural] [description]`
806
816
  5. If different approach: discuss and implement
807
- 6. If deferred: log to ISSUES.md, continue without change
817
+ 6. If deferred: note in Summary and continue without change
808
818
 
809
819
  **User decision required.** These changes affect system design.
810
820
 
811
821
  ---
812
822
 
813
- **RULE 5: Log non-critical enhancements**
814
-
815
- **Trigger:** Improvement that would enhance code but isn't essential now
816
-
817
- **Action:** Add to .planning/ISSUES.md automatically, continue task
818
-
819
- **Examples:**
820
-
821
- - Performance optimization (works correctly, just slower than ideal)
822
- - Code refactoring (works, but could be cleaner/DRY-er)
823
- - Better naming (works, but variables could be clearer)
824
- - Organizational improvements (works, but file structure could be better)
825
- - Nice-to-have UX improvements (works, but could be smoother)
826
- - Additional test coverage beyond basics (basics exist, could be more thorough)
827
- - Documentation improvements (code works, docs could be better)
828
- - Accessibility enhancements beyond minimum
829
-
830
- **Process:**
831
-
832
- 1. Create .planning/ISSUES.md if doesn't exist (use `~/.config/opencode/get-shit-done/templates/issues.md`)
833
- 2. Add entry with ISS-XXX number (auto-increment)
834
- 3. Brief notification: `📋 Logged enhancement: [brief] (ISS-XXX)`
835
- 4. Continue task without implementing
836
-
837
- **No user permission needed.** Logging for future consideration.
838
-
839
- ---
840
-
841
823
  **RULE PRIORITY (when multiple could apply):**
842
824
 
843
825
  1. **If Rule 4 applies** → STOP and ask (architectural decision)
844
826
  2. **If Rules 1-3 apply** → Fix automatically, track for Summary
845
- 3. **If Rule 5 applies** → Log to ISSUES.md, continue
846
- 4. **If genuinely unsure which rule** → Apply Rule 4 (ask user)
827
+ 3. **If genuinely unsure which rule** → Apply Rule 4 (ask user)
847
828
 
848
829
  **Edge case guidance:**
849
830
 
850
831
  - "This validation is missing" → Rule 2 (critical for security)
851
- - "This validation could be better" → Rule 5 (enhancement)
852
832
  - "This crashes on null" → Rule 1 (bug)
853
- - "This could be faster" → Rule 5 (enhancement) UNLESS actually timing out → Rule 2 (critical)
854
833
  - "Need to add table" → Rule 4 (architectural)
855
834
  - "Need to add column" → Rule 1 or 2 (depends: fixing bug or adding critical field)
856
835
 
857
836
  **When in doubt:** Ask yourself "Does this affect correctness, security, or ability to complete task?"
858
837
 
859
838
  - YES → Rules 1-3 (fix automatically)
860
- - NO → Rule 5 (log it)
861
839
  - MAYBE → Rule 4 (ask user)
862
840
 
863
841
  </deviation_rules>
@@ -901,16 +879,9 @@ None - plan executed exactly as written.
901
879
  - **Verification:** Expired token test passes - properly rejects with 401
902
880
  - **Commit:** def456g
903
881
 
904
- ### Deferred Enhancements
905
-
906
- Logged to .planning/ISSUES.md for future consideration:
907
-
908
- - ISS-001: Refactor UserService into smaller modules (discovered in Task 3)
909
- - ISS-002: Add connection pooling for Redis (discovered in Task 6)
910
-
911
882
  ---
912
883
 
913
- **Total deviations:** 4 auto-fixed (1 bug, 1 missing critical, 1 blocking, 1 architectural with approval), 3 deferred
884
+ **Total deviations:** 4 auto-fixed (1 bug, 1 missing critical, 1 blocking, 1 architectural with approval)
914
885
  **Impact on plan:** All auto-fixes necessary for correctness/security/performance. No scope creep.
915
886
  ```
916
887
 
@@ -937,16 +908,16 @@ If no test framework configured:
937
908
  - Verify: run empty test suite
938
909
  - This is part of the RED phase, not a separate task
939
910
 
940
- **2. RED - Write failing test:**
941
- - Read `<behavior>` element for test specification
911
+ **2. RED - write failing test:**
912
+ - read `<behavior>` element for test specification
942
913
  - Create test file if doesn't exist (follow project conventions)
943
- - Write test(s) that describe expected behavior
914
+ - write test(s) that describe expected behavior
944
915
  - Run tests - MUST fail (if passes, test is wrong or feature exists)
945
916
  - Commit: `test({phase}-{plan}): add failing test for [feature]`
946
917
 
947
918
  **3. GREEN - Implement to pass:**
948
- - Read `<implementation>` element for guidance
949
- - Write minimal code to make test pass
919
+ - read `<implementation>` element for guidance
920
+ - write minimal code to make test pass
950
921
  - Run tests - MUST pass
951
922
  - Commit: `feat({phase}-{plan}): implement [feature]`
952
923
 
@@ -1082,29 +1053,33 @@ When encountering `type="checkpoint:*"`:
1082
1053
  **Display checkpoint clearly:**
1083
1054
 
1084
1055
  ```
1085
- ════════════════════════════════════════
1086
- CHECKPOINT: [Type]
1087
- ════════════════════════════════════════
1056
+ ╔═══════════════════════════════════════════════════════╗
1057
+ CHECKPOINT: [Type]
1058
+ ╚═══════════════════════════════════════════════════════╝
1088
1059
 
1089
- Task [X] of [Y]: [Action/What-Built/Decision]
1060
+ Progress: {X}/{Y} tasks complete
1061
+ Task: [task name]
1090
1062
 
1091
1063
  [Display task-specific content based on type]
1092
1064
 
1093
- [Resume signal instruction]
1094
- ════════════════════════════════════════
1065
+ ────────────────────────────────────────────────────────
1066
+ → YOUR ACTION: [Resume signal instruction]
1067
+ ────────────────────────────────────────────────────────
1095
1068
  ```
1096
1069
 
1097
1070
  **For checkpoint:human-verify (90% of checkpoints):**
1098
1071
 
1099
1072
  ```
1100
- I automated: [what was automated - deployed, built, configured]
1073
+ Built: [what was automated - deployed, built, configured]
1101
1074
 
1102
1075
  How to verify:
1103
- 1. [Step 1 - exact command/URL]
1104
- 2. [Step 2 - what to check]
1105
- 3. [Step 3 - expected behavior]
1076
+ 1. [Step 1 - exact command/URL]
1077
+ 2. [Step 2 - what to check]
1078
+ 3. [Step 3 - expected behavior]
1106
1079
 
1107
- [Resume signal - e.g., "Type 'approved' or describe issues"]
1080
+ ────────────────────────────────────────────────────────
1081
+ → YOUR ACTION: Type "approved" or describe issues
1082
+ ────────────────────────────────────────────────────────
1108
1083
  ```
1109
1084
 
1110
1085
  **For checkpoint:decision (9% of checkpoints):**
@@ -1159,9 +1134,6 @@ If you were spawned via Task tool and hit a checkpoint, you cannot directly inte
1159
1134
 
1160
1135
  **Return format for checkpoints:**
1161
1136
 
1162
- Use the structured format from:
1163
- @~/.config/opencode/get-shit-done/templates/checkpoint-return.md
1164
-
1165
1137
  **Required in your return:**
1166
1138
 
1167
1139
  1. **Completed Tasks table** - Tasks done so far with commit hashes and files created
@@ -1224,7 +1196,7 @@ You will NOT be resumed. A new agent continues from where you stopped, using you
1224
1196
 
1225
1197
  **How to know if you were spawned:**
1226
1198
 
1227
- If you're reading this workflow because an orchestrator spawned you (vs running directly from /gsd-execute-plan), the orchestrator's prompt will include checkpoint return instructions. Follow those instructions when you hit a checkpoint.
1199
+ If you're reading this workflow because an orchestrator spawned you (vs running directly), the orchestrator's prompt will include checkpoint return instructions. Follow those instructions when you hit a checkpoint.
1228
1200
 
1229
1201
  **If running in main context (not spawned):**
1230
1202
 
@@ -1275,6 +1247,76 @@ fi
1275
1247
  Pass timing data to SUMMARY.md creation.
1276
1248
  </step>
1277
1249
 
1250
+ <step name="generate_user_setup">
1251
+ **Generate USER-SETUP.md if plan has user_setup in frontmatter.**
1252
+
1253
+ Check PLAN.md frontmatter for `user_setup` field:
1254
+
1255
+ ```bash
1256
+ grep -A 50 "^user_setup:" .planning/phases/XX-name/{phase}-{plan}-PLAN.md | head -50
1257
+ ```
1258
+
1259
+ **If user_setup exists and is not empty:**
1260
+
1261
+ Create `.planning/phases/XX-name/{phase}-USER-SETUP.md` using template from `~/.config/opencode/get-shit-done/templates/user-setup.md`.
1262
+
1263
+ **Content generation:**
1264
+
1265
+ 1. Parse each service in `user_setup` array
1266
+ 2. For each service, generate sections:
1267
+ - Environment Variables table (from `env_vars`)
1268
+ - Account Setup checklist (from `account_setup`, if present)
1269
+ - Dashboard Configuration steps (from `dashboard_config`, if present)
1270
+ - Local Development notes (from `local_dev`, if present)
1271
+ 3. Add verification section with commands to confirm setup works
1272
+ 4. Set status to "Incomplete"
1273
+
1274
+ **Example output:**
1275
+
1276
+ ```markdown
1277
+ # Phase 10: User Setup Required
1278
+
1279
+ **Generated:** 2025-01-14
1280
+ **Phase:** 10-monetization
1281
+ **Status:** Incomplete
1282
+
1283
+ ## Environment Variables
1284
+
1285
+ | Status | Variable | Source | Add to |
1286
+ |--------|----------|--------|--------|
1287
+ | [ ] | `STRIPE_SECRET_KEY` | Stripe Dashboard → Developers → API keys → Secret key | `.env.local` |
1288
+ | [ ] | `STRIPE_WEBHOOK_SECRET` | Stripe Dashboard → Developers → Webhooks → Signing secret | `.env.local` |
1289
+
1290
+ ## Dashboard Configuration
1291
+
1292
+ - [ ] **Create webhook endpoint**
1293
+ - Location: Stripe Dashboard → Developers → Webhooks → Add endpoint
1294
+ - Details: URL: https://[your-domain]/api/webhooks/stripe, Events: checkout.session.completed
1295
+
1296
+ ## Local Development
1297
+
1298
+ For local testing:
1299
+ \`\`\`bash
1300
+ stripe listen --forward-to localhost:3000/api/webhooks/stripe
1301
+ \`\`\`
1302
+
1303
+ ## Verification
1304
+
1305
+ [Verification commands based on service]
1306
+
1307
+ ---
1308
+ **Once all items complete:** Mark status as "Complete"
1309
+ ```
1310
+
1311
+ **If user_setup is empty or missing:**
1312
+
1313
+ Skip this step - no USER-SETUP.md needed.
1314
+
1315
+ **Track for offer_next:**
1316
+
1317
+ Set `USER_SETUP_CREATED=true` if file was generated, for use in completion messaging.
1318
+ </step>
1319
+
1278
1320
  <step name="create_summary">
1279
1321
  Create `{phase}-{plan}-SUMMARY.md` as specified in the prompt's `<output>` section.
1280
1322
  Use ~/.config/opencode/get-shit-done/templates/summary.md for structure.
@@ -1307,10 +1349,7 @@ Before writing summary content, populate frontmatter fields from execution conte
1307
1349
  5. **Decisions:**
1308
1350
  - key-decisions: Extract from "Decisions Made" section
1309
1351
 
1310
- 6. **Issues:**
1311
- - issues-created: Check if ISSUES.md was updated during execution
1312
-
1313
- 7. **Metrics:**
1352
+ 6. **Metrics:**
1314
1353
  - duration: From $DURATION variable
1315
1354
  - completed: From $PLAN_END_TIME (date only, format YYYY-MM-DD)
1316
1355
 
@@ -1400,20 +1439,14 @@ Extract decisions, issues, and concerns from SUMMARY.md into STATE.md accumulate
1400
1439
 
1401
1440
  **Decisions Made:**
1402
1441
 
1403
- - Read SUMMARY.md "## Decisions Made" section
1442
+ - read SUMMARY.md "## Decisions Made" section
1404
1443
  - If content exists (not "None"):
1405
1444
  - Add each decision to STATE.md Decisions table
1406
1445
  - Format: `| [phase number] | [decision summary] | [rationale] |`
1407
1446
 
1408
- **Deferred Issues:**
1409
-
1410
- - Read SUMMARY.md to check if new issues were logged to ISSUES.md
1411
- - If new ISS-XXX entries created:
1412
- - Update STATE.md "Deferred Issues" section
1413
-
1414
1447
  **Blockers/Concerns:**
1415
1448
 
1416
- - Read SUMMARY.md "## Next Phase Readiness" section
1449
+ - read SUMMARY.md "## Next Phase Readiness" section
1417
1450
  - If contains blockers or concerns:
1418
1451
  - Add to STATE.md "Blockers/Concerns Carried Forward"
1419
1452
  </step>
@@ -1470,7 +1503,7 @@ ROADMAP_FILE=".planning/ROADMAP.md"
1470
1503
 
1471
1504
  - Mark phase complete: status → "Complete"
1472
1505
  - Add completion date
1473
- </step>
1506
+ </step>
1474
1507
 
1475
1508
  <step name="git_commit_metadata">
1476
1509
  Commit execution metadata (SUMMARY + STATE + ROADMAP):
@@ -1485,7 +1518,7 @@ git add .planning/phases/XX-name/{phase}-{plan}-SUMMARY.md
1485
1518
  git add .planning/STATE.md
1486
1519
  ```
1487
1520
 
1488
- **2. Stage roadmap file:**
1521
+ **2. Stage roadmap:**
1489
1522
 
1490
1523
  ```bash
1491
1524
  git add .planning/ROADMAP.md
@@ -1585,49 +1618,34 @@ git commit --amend --no-edit # Include in metadata commit
1585
1618
  Skip this step.
1586
1619
  </step>
1587
1620
 
1588
- <step name="check_phase_issues">
1589
- **Check if issues were created during this phase:**
1621
+ <step name="offer_next">
1622
+ **MANDATORY: Verify remaining work before presenting next steps.**
1590
1623
 
1591
- ```bash
1592
- # Check if ISSUES.md exists and has issues from current phase
1593
- if [ -f .planning/ISSUES.md ]; then
1594
- grep -E "Phase ${PHASE}.*Task" .planning/ISSUES.md | grep -v "^#" || echo "NO_ISSUES_THIS_PHASE"
1595
- fi
1596
- ```
1624
+ Do NOT skip this verification. Do NOT assume phase or milestone completion without checking.
1597
1625
 
1598
- **If issues were created during this phase:**
1626
+ **Step 0: Check for USER-SETUP.md**
1599
1627
 
1600
- ```
1601
- 📋 Issues logged during this phase:
1602
- - ISS-XXX: [brief description]
1603
- - ISS-YYY: [brief description]
1628
+ If `USER_SETUP_CREATED=true` (from generate_user_setup step), always include this warning block at the TOP of completion output:
1604
1629
 
1605
- Review these now?
1606
1630
  ```
1631
+ ⚠️ USER SETUP REQUIRED
1607
1632
 
1608
- Use question:
1609
- - header: "Phase Issues"
1610
- - question: "[N] issues were logged during this phase. Review now?"
1611
- - options:
1612
- - "Review issues" - Analyze with /gsd-consider-issues
1613
- - "Continue" - Address later, proceed to next work
1633
+ This phase introduced external services requiring manual configuration:
1614
1634
 
1615
- **If "Review issues" selected:**
1616
- - Invoke: `[removed - use /command syntax]("/gsd-consider-issues")`
1617
- - After consider-issues completes, return to offer_next
1635
+ 📋 .planning/phases/{phase-dir}/{phase}-USER-SETUP.md
1618
1636
 
1619
- **If "Continue" selected or no issues found:**
1620
- - Proceed to offer_next step
1637
+ Quick view:
1638
+ - [ ] {ENV_VAR_1}
1639
+ - [ ] {ENV_VAR_2}
1640
+ - [ ] {Dashboard config task}
1621
1641
 
1622
- **In YOLO mode:**
1623
- - Note issues were logged but don't prompt: `📋 [N] issues logged this phase (review later with /gsd-consider-issues)`
1624
- - Continue to offer_next automatically
1625
- </step>
1642
+ Complete this setup for the integration to function.
1643
+ Run `cat .planning/phases/{phase-dir}/{phase}-USER-SETUP.md` for full details.
1626
1644
 
1627
- <step name="offer_next">
1628
- **MANDATORY: Verify remaining work before presenting next steps.**
1645
+ ---
1646
+ ```
1629
1647
 
1630
- Do NOT skip this verification. Do NOT assume phase or milestone completion without checking.
1648
+ This warning appears BEFORE "Plan complete" messaging. User sees setup requirements prominently.
1631
1649
 
1632
1650
  **Step 1: Count plans and summaries in current phase**
1633
1651
 
@@ -1655,7 +1673,7 @@ Compare the counts from Step 1:
1655
1673
 
1656
1674
  Identify the next unexecuted plan:
1657
1675
  - Find the first PLAN.md file that has no matching SUMMARY.md
1658
- - Read its `<objective>` section
1676
+ - read its `<objective>` section
1659
1677
 
1660
1678
  <if mode="yolo">
1661
1679
  ```
@@ -1683,7 +1701,7 @@ Summary: .planning/phases/{phase-dir}/{phase}-{plan}-SUMMARY.md
1683
1701
 
1684
1702
  **{phase}-{next-plan}: [Plan Name]** — [objective from next PLAN.md]
1685
1703
 
1686
- `/gsd-execute-plan .planning/phases/{phase-dir}/{phase}-{next-plan}-PLAN.md`
1704
+ `/gsd-execute-phase {phase}`
1687
1705
 
1688
1706
  *`/new` first → fresh context window*
1689
1707
 
@@ -1705,7 +1723,7 @@ Wait for user to clear and run next command.
1705
1723
 
1706
1724
  **Step 3: Check milestone status (only when all plans in phase are complete)**
1707
1725
 
1708
- Read ROADMAP.md and extract:
1726
+ read ROADMAP.md and extract:
1709
1727
  1. Current phase number (from the plan just completed)
1710
1728
  2. All phase numbers listed in the current milestone section
1711
1729
 
@@ -1728,7 +1746,7 @@ State: "Current phase is {X}. Milestone has {N} phases (highest: {Y})."
1728
1746
 
1729
1747
  **Route B: Phase complete, more phases remain in milestone**
1730
1748
 
1731
- Read ROADMAP.md to get the next phase's name and goal.
1749
+ read ROADMAP.md to get the next phase's name and goal.
1732
1750
 
1733
1751
  ```
1734
1752
  Plan {phase}-{plan} complete.
@@ -1753,7 +1771,6 @@ All {Y} plans finished.
1753
1771
  **Also available:**
1754
1772
  - `/gsd-verify-work {Z}` — manual acceptance testing before continuing
1755
1773
  - `/gsd-discuss-phase {Z+1}` — gather context first
1756
- - `/gsd-research-phase {Z+1}` — investigate unknowns
1757
1774
  - Review phase accomplishments before continuing
1758
1775
 
1759
1776
  ---
@@ -1773,10 +1790,9 @@ Summary: .planning/phases/{phase-dir}/{phase}-{plan}-SUMMARY.md
1773
1790
 
1774
1791
  All {Y} plans finished.
1775
1792
 
1776
- ════════════════════════════════════════
1777
- All {N} phases complete!
1778
- Milestone is 100% done.
1779
- ════════════════════════════════════════
1793
+ ╔═══════════════════════════════════════════════════════╗
1794
+ All {N} phases complete! Milestone is 100% done. ║
1795
+ ╚═══════════════════════════════════════════════════════╝
1780
1796
 
1781
1797
  ---
1782
1798
 
@@ -1806,8 +1822,10 @@ Milestone is 100% done.
1806
1822
 
1807
1823
  - All tasks from PLAN.md completed
1808
1824
  - All verifications pass
1825
+ - USER-SETUP.md generated if user_setup in frontmatter
1809
1826
  - SUMMARY.md created with substantive content
1810
1827
  - STATE.md updated (position, decisions, issues, session)
1811
1828
  - ROADMAP.md updated
1812
1829
  - If codebase map exists: map updated with execution changes (or skipped if no significant changes)
1830
+ - If USER-SETUP.md created: prominently surfaced in completion output
1813
1831
  </success_criteria>