gsd-opencode 1.22.1 → 1.33.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 (188) hide show
  1. package/agents/gsd-advisor-researcher.md +112 -0
  2. package/agents/gsd-assumptions-analyzer.md +110 -0
  3. package/agents/gsd-codebase-mapper.md +0 -2
  4. package/agents/gsd-debugger.md +117 -2
  5. package/agents/gsd-doc-verifier.md +207 -0
  6. package/agents/gsd-doc-writer.md +608 -0
  7. package/agents/gsd-executor.md +45 -4
  8. package/agents/gsd-integration-checker.md +0 -2
  9. package/agents/gsd-nyquist-auditor.md +0 -2
  10. package/agents/gsd-phase-researcher.md +191 -5
  11. package/agents/gsd-plan-checker.md +152 -5
  12. package/agents/gsd-planner.md +131 -157
  13. package/agents/gsd-project-researcher.md +28 -3
  14. package/agents/gsd-research-synthesizer.md +0 -2
  15. package/agents/gsd-roadmapper.md +29 -2
  16. package/agents/gsd-security-auditor.md +129 -0
  17. package/agents/gsd-ui-auditor.md +485 -0
  18. package/agents/gsd-ui-checker.md +305 -0
  19. package/agents/gsd-ui-researcher.md +368 -0
  20. package/agents/gsd-user-profiler.md +173 -0
  21. package/agents/gsd-verifier.md +207 -22
  22. package/commands/gsd/gsd-add-backlog.md +76 -0
  23. package/commands/gsd/gsd-analyze-dependencies.md +34 -0
  24. package/commands/gsd/gsd-audit-uat.md +24 -0
  25. package/commands/gsd/gsd-autonomous.md +45 -0
  26. package/commands/gsd/gsd-cleanup.md +5 -0
  27. package/commands/gsd/gsd-debug.md +29 -21
  28. package/commands/gsd/gsd-discuss-phase.md +15 -36
  29. package/commands/gsd/gsd-do.md +30 -0
  30. package/commands/gsd/gsd-docs-update.md +48 -0
  31. package/commands/gsd/gsd-execute-phase.md +24 -2
  32. package/commands/gsd/gsd-fast.md +30 -0
  33. package/commands/gsd/gsd-forensics.md +56 -0
  34. package/commands/gsd/gsd-help.md +2 -0
  35. package/commands/gsd/gsd-join-discord.md +2 -1
  36. package/commands/gsd/gsd-list-workspaces.md +19 -0
  37. package/commands/gsd/gsd-manager.md +40 -0
  38. package/commands/gsd/gsd-milestone-summary.md +51 -0
  39. package/commands/gsd/gsd-new-project.md +4 -0
  40. package/commands/gsd/gsd-new-workspace.md +44 -0
  41. package/commands/gsd/gsd-next.md +24 -0
  42. package/commands/gsd/gsd-note.md +34 -0
  43. package/commands/gsd/gsd-plan-phase.md +8 -1
  44. package/commands/gsd/gsd-plant-seed.md +28 -0
  45. package/commands/gsd/gsd-pr-branch.md +25 -0
  46. package/commands/gsd/gsd-profile-user.md +46 -0
  47. package/commands/gsd/gsd-quick.md +7 -3
  48. package/commands/gsd/gsd-reapply-patches.md +178 -45
  49. package/commands/gsd/gsd-remove-workspace.md +26 -0
  50. package/commands/gsd/gsd-research-phase.md +7 -12
  51. package/commands/gsd/gsd-review-backlog.md +62 -0
  52. package/commands/gsd/gsd-review.md +38 -0
  53. package/commands/gsd/gsd-secure-phase.md +35 -0
  54. package/commands/gsd/gsd-session-report.md +19 -0
  55. package/commands/gsd/gsd-set-profile.md +24 -23
  56. package/commands/gsd/gsd-ship.md +23 -0
  57. package/commands/gsd/gsd-stats.md +18 -0
  58. package/commands/gsd/gsd-thread.md +127 -0
  59. package/commands/gsd/gsd-ui-phase.md +34 -0
  60. package/commands/gsd/gsd-ui-review.md +32 -0
  61. package/commands/gsd/gsd-workstreams.md +71 -0
  62. package/get-shit-done/bin/gsd-tools.cjs +450 -90
  63. package/get-shit-done/bin/lib/commands.cjs +489 -24
  64. package/get-shit-done/bin/lib/config.cjs +329 -48
  65. package/get-shit-done/bin/lib/core.cjs +1143 -102
  66. package/get-shit-done/bin/lib/docs.cjs +267 -0
  67. package/get-shit-done/bin/lib/frontmatter.cjs +125 -43
  68. package/get-shit-done/bin/lib/init.cjs +918 -106
  69. package/get-shit-done/bin/lib/milestone.cjs +65 -33
  70. package/get-shit-done/bin/lib/model-profiles.cjs +70 -0
  71. package/get-shit-done/bin/lib/phase.cjs +434 -404
  72. package/get-shit-done/bin/lib/profile-output.cjs +1048 -0
  73. package/get-shit-done/bin/lib/profile-pipeline.cjs +539 -0
  74. package/get-shit-done/bin/lib/roadmap.cjs +156 -101
  75. package/get-shit-done/bin/lib/schema-detect.cjs +238 -0
  76. package/get-shit-done/bin/lib/security.cjs +384 -0
  77. package/get-shit-done/bin/lib/state.cjs +711 -79
  78. package/get-shit-done/bin/lib/template.cjs +2 -2
  79. package/get-shit-done/bin/lib/uat.cjs +282 -0
  80. package/get-shit-done/bin/lib/verify.cjs +254 -42
  81. package/get-shit-done/bin/lib/workstream.cjs +495 -0
  82. package/get-shit-done/references/agent-contracts.md +79 -0
  83. package/get-shit-done/references/artifact-types.md +113 -0
  84. package/get-shit-done/references/checkpoints.md +12 -10
  85. package/get-shit-done/references/context-budget.md +49 -0
  86. package/get-shit-done/references/continuation-format.md +15 -15
  87. package/get-shit-done/references/decimal-phase-calculation.md +2 -3
  88. package/get-shit-done/references/domain-probes.md +125 -0
  89. package/get-shit-done/references/gate-prompts.md +100 -0
  90. package/get-shit-done/references/git-integration.md +47 -0
  91. package/get-shit-done/references/model-profile-resolution.md +2 -0
  92. package/get-shit-done/references/model-profiles.md +62 -16
  93. package/get-shit-done/references/phase-argument-parsing.md +2 -2
  94. package/get-shit-done/references/planner-gap-closure.md +62 -0
  95. package/get-shit-done/references/planner-reviews.md +39 -0
  96. package/get-shit-done/references/planner-revision.md +87 -0
  97. package/get-shit-done/references/planning-config.md +18 -1
  98. package/get-shit-done/references/revision-loop.md +97 -0
  99. package/get-shit-done/references/ui-brand.md +2 -2
  100. package/get-shit-done/references/universal-anti-patterns.md +58 -0
  101. package/get-shit-done/references/user-profiling.md +681 -0
  102. package/get-shit-done/references/workstream-flag.md +111 -0
  103. package/get-shit-done/templates/SECURITY.md +61 -0
  104. package/get-shit-done/templates/UAT.md +21 -3
  105. package/get-shit-done/templates/UI-SPEC.md +100 -0
  106. package/get-shit-done/templates/VALIDATION.md +3 -3
  107. package/get-shit-done/templates/claude-md.md +145 -0
  108. package/get-shit-done/templates/config.json +14 -3
  109. package/get-shit-done/templates/context.md +61 -6
  110. package/get-shit-done/templates/debug-subagent-prompt.md +2 -6
  111. package/get-shit-done/templates/dev-preferences.md +21 -0
  112. package/get-shit-done/templates/discussion-log.md +63 -0
  113. package/get-shit-done/templates/phase-prompt.md +46 -5
  114. package/get-shit-done/templates/planner-subagent-prompt.md +2 -10
  115. package/get-shit-done/templates/project.md +2 -0
  116. package/get-shit-done/templates/state.md +2 -2
  117. package/get-shit-done/templates/user-profile.md +146 -0
  118. package/get-shit-done/workflows/add-phase.md +4 -4
  119. package/get-shit-done/workflows/add-tests.md +4 -4
  120. package/get-shit-done/workflows/add-todo.md +4 -4
  121. package/get-shit-done/workflows/analyze-dependencies.md +96 -0
  122. package/get-shit-done/workflows/audit-milestone.md +20 -16
  123. package/get-shit-done/workflows/audit-uat.md +109 -0
  124. package/get-shit-done/workflows/autonomous.md +1036 -0
  125. package/get-shit-done/workflows/check-todos.md +4 -4
  126. package/get-shit-done/workflows/cleanup.md +4 -4
  127. package/get-shit-done/workflows/complete-milestone.md +22 -10
  128. package/get-shit-done/workflows/diagnose-issues.md +21 -7
  129. package/get-shit-done/workflows/discovery-phase.md +2 -2
  130. package/get-shit-done/workflows/discuss-phase-assumptions.md +671 -0
  131. package/get-shit-done/workflows/discuss-phase-power.md +291 -0
  132. package/get-shit-done/workflows/discuss-phase.md +558 -47
  133. package/get-shit-done/workflows/do.md +104 -0
  134. package/get-shit-done/workflows/docs-update.md +1093 -0
  135. package/get-shit-done/workflows/execute-phase.md +741 -58
  136. package/get-shit-done/workflows/execute-plan.md +77 -12
  137. package/get-shit-done/workflows/fast.md +105 -0
  138. package/get-shit-done/workflows/forensics.md +265 -0
  139. package/get-shit-done/workflows/health.md +28 -6
  140. package/get-shit-done/workflows/help.md +127 -7
  141. package/get-shit-done/workflows/insert-phase.md +4 -4
  142. package/get-shit-done/workflows/list-phase-assumptions.md +2 -2
  143. package/get-shit-done/workflows/list-workspaces.md +56 -0
  144. package/get-shit-done/workflows/manager.md +363 -0
  145. package/get-shit-done/workflows/map-codebase.md +83 -44
  146. package/get-shit-done/workflows/milestone-summary.md +223 -0
  147. package/get-shit-done/workflows/new-milestone.md +133 -25
  148. package/get-shit-done/workflows/new-project.md +216 -54
  149. package/get-shit-done/workflows/new-workspace.md +237 -0
  150. package/get-shit-done/workflows/next.md +97 -0
  151. package/get-shit-done/workflows/node-repair.md +92 -0
  152. package/get-shit-done/workflows/note.md +156 -0
  153. package/get-shit-done/workflows/pause-work.md +132 -15
  154. package/get-shit-done/workflows/plan-milestone-gaps.md +6 -7
  155. package/get-shit-done/workflows/plan-phase.md +513 -62
  156. package/get-shit-done/workflows/plant-seed.md +169 -0
  157. package/get-shit-done/workflows/pr-branch.md +129 -0
  158. package/get-shit-done/workflows/profile-user.md +450 -0
  159. package/get-shit-done/workflows/progress.md +154 -29
  160. package/get-shit-done/workflows/quick.md +285 -111
  161. package/get-shit-done/workflows/remove-phase.md +2 -2
  162. package/get-shit-done/workflows/remove-workspace.md +90 -0
  163. package/get-shit-done/workflows/research-phase.md +13 -9
  164. package/get-shit-done/workflows/resume-project.md +37 -18
  165. package/get-shit-done/workflows/review.md +281 -0
  166. package/get-shit-done/workflows/secure-phase.md +154 -0
  167. package/get-shit-done/workflows/session-report.md +146 -0
  168. package/get-shit-done/workflows/set-profile.md +2 -2
  169. package/get-shit-done/workflows/settings.md +91 -11
  170. package/get-shit-done/workflows/ship.md +237 -0
  171. package/get-shit-done/workflows/stats.md +60 -0
  172. package/get-shit-done/workflows/transition.md +150 -23
  173. package/get-shit-done/workflows/ui-phase.md +292 -0
  174. package/get-shit-done/workflows/ui-review.md +183 -0
  175. package/get-shit-done/workflows/update.md +262 -30
  176. package/get-shit-done/workflows/validate-phase.md +14 -17
  177. package/get-shit-done/workflows/verify-phase.md +143 -11
  178. package/get-shit-done/workflows/verify-work.md +141 -39
  179. package/package.json +1 -1
  180. package/skills/gsd-audit-milestone/SKILL.md +29 -0
  181. package/skills/gsd-cleanup/SKILL.md +19 -0
  182. package/skills/gsd-complete-milestone/SKILL.md +131 -0
  183. package/skills/gsd-discuss-phase/SKILL.md +54 -0
  184. package/skills/gsd-execute-phase/SKILL.md +49 -0
  185. package/skills/gsd-plan-phase/SKILL.md +37 -0
  186. package/skills/gsd-ui-phase/SKILL.md +24 -0
  187. package/skills/gsd-ui-review/SKILL.md +24 -0
  188. package/skills/gsd-verify-work/SKILL.md +30 -0
@@ -0,0 +1,63 @@
1
+ # Discussion Log Template
2
+
3
+ Template for `.planning/phases/XX-name/{phase_num}-DISCUSSION-LOG.md` — audit trail of discuss-phase Q&A sessions.
4
+
5
+ **Purpose:** Software audit trail for decision-making. Captures all options considered, not just the selected one. Separate from CONTEXT.md which is the implementation artifact consumed by downstream agents.
6
+
7
+ **NOT for LLM consumption.** This file should never be referenced in `<files_to_read>` blocks or agent prompts.
8
+
9
+ ## Format
10
+
11
+ ```markdown
12
+ # Phase [X]: [Name] - Discussion Log
13
+
14
+ > **Audit trail only.** Do not use as input to planning, research, or execution agents.
15
+ > Decisions are captured in CONTEXT.md — this log preserves the alternatives considered.
16
+
17
+ **Date:** [ISO date]
18
+ **Phase:** [phase number]-[phase name]
19
+ **Areas discussed:** [comma-separated list]
20
+
21
+ ---
22
+
23
+ ## [Area 1 Name]
24
+
25
+ | Option | Description | Selected |
26
+ |--------|-------------|----------|
27
+ | [Option 1] | [Brief description] | |
28
+ | [Option 2] | [Brief description] | ✓ |
29
+ | [Option 3] | [Brief description] | |
30
+
31
+ **User's choice:** [Selected option or verbatim free-text response]
32
+ **Notes:** [Any clarifications or rationale provided during discussion]
33
+
34
+ ---
35
+
36
+ ## [Area 2 Name]
37
+
38
+ ...
39
+
40
+ ---
41
+
42
+ ## OpenCode's Discretion
43
+
44
+ [Areas delegated to OpenCode's judgment — list what was deferred and why]
45
+
46
+ ## Deferred Ideas
47
+
48
+ [Ideas mentioned but not in scope for this phase]
49
+
50
+ ---
51
+
52
+ *Phase: XX-name*
53
+ *Discussion log generated: [date]*
54
+ ```
55
+
56
+ ## Rules
57
+
58
+ - Generated automatically at end of every discuss-phase session
59
+ - Includes ALL options considered, not just the selected one
60
+ - Includes user's freeform notes and clarifications
61
+ - Clearly marked as audit-only, not an implementation artifact
62
+ - Does NOT interfere with CONTEXT.md generation or downstream agent behavior
63
+ - Committed alongside CONTEXT.md in the same git commit
@@ -63,21 +63,29 @@ Output: [What artifacts will be created]
63
63
  <task type="auto">
64
64
  <name>task 1: [Action-oriented name]</name>
65
65
  <files>path/to/file.ext, another/file.ext</files>
66
- <action>[Specific implementation - what to do, how to do it, what to avoid and WHY]</action>
66
+ <read_first>path/to/reference.ext, path/to/source-of-truth.ext</read_first>
67
+ <action>[Specific implementation - what to do, how to do it, what to avoid and WHY. Include CONCRETE values: exact identifiers, parameters, expected outputs, file paths, command arguments. Never say "align X with Y" without specifying the exact target state.]</action>
67
68
  <verify>[Command or check to prove it worked]</verify>
69
+ <acceptance_criteria>
70
+ - [grep-verifiable condition: "file.ext contains 'exact string'"]
71
+ - [Measurable condition: "output.ext uses 'expected-value', NOT 'wrong-value'"]
72
+ </acceptance_criteria>
68
73
  <done>[Measurable acceptance criteria]</done>
69
74
  </task>
70
75
 
71
76
  <task type="auto">
72
77
  <name>task 2: [Action-oriented name]</name>
73
78
  <files>path/to/file.ext</files>
74
- <action>[Specific implementation]</action>
79
+ <read_first>path/to/reference.ext</read_first>
80
+ <action>[Specific implementation with concrete values]</action>
75
81
  <verify>[Command or check]</verify>
82
+ <acceptance_criteria>
83
+ - [grep-verifiable condition]
84
+ </acceptance_criteria>
76
85
  <done>[Acceptance criteria]</done>
77
86
  </task>
78
87
 
79
88
  <!-- For checkpoint task examples and patterns, see @$HOME/.config/opencode/get-shit-done/references/checkpoints.md -->
80
- <!-- Key rule: OpenCode starts dev server BEFORE human-verify checkpoints. User only visits URLs. -->
81
89
 
82
90
  <task type="checkpoint:decision" gate="blocking">
83
91
  <decision>[What needs deciding]</decision>
@@ -333,7 +341,7 @@ Output: User model, API endpoints, and UI components.
333
341
  <name>task 2: Create User API endpoints</name>
334
342
  <files>src/features/user/api.ts</files>
335
343
  <action>GET /users (list), GET /users/:id (single), POST /users (create). Use User type from model.</action>
336
- <verify>curl tests pass for all endpoints</verify>
344
+ <verify>fetch tests pass for all endpoints</verify>
337
345
  <done>All CRUD operations work</done>
338
346
  </task>
339
347
  </tasks>
@@ -399,7 +407,7 @@ Output: Working dashboard component.
399
407
  <task type="auto">
400
408
  <name>Start dev server</name>
401
409
  <action>Run `npm run dev` in background, wait for ready</action>
402
- <verify>curl localhost:3000 returns 200</verify>
410
+ <verify>fetch http://localhost:3000 returns 200</verify>
403
411
  </task>
404
412
 
405
413
  <task type="checkpoint:human-verify" gate="blocking">
@@ -456,6 +464,39 @@ files_modified: [...]
456
464
  </task>
457
465
  ```
458
466
 
467
+ **Bad: Missing read_first (executor modifies files it hasn't read)**
468
+ ```xml
469
+ <task type="auto">
470
+ <name>Update database config</name>
471
+ <files>src/config/database.ts</files>
472
+ <!-- No read_first! Executor doesn't know current state or conventions -->
473
+ <action>Update the database config to match production settings</action>
474
+ </task>
475
+ ```
476
+
477
+ **Bad: Vague acceptance criteria (not verifiable)**
478
+ ```xml
479
+ <acceptance_criteria>
480
+ - Config is properly set up
481
+ - Database connection works correctly
482
+ </acceptance_criteria>
483
+ ```
484
+
485
+ **Good: Concrete with read_first + verifiable criteria**
486
+ ```xml
487
+ <task type="auto">
488
+ <name>Update database config for connection pooling</name>
489
+ <files>src/config/database.ts</files>
490
+ <read_first>src/config/database.ts, .env.example, docker-compose.yml</read_first>
491
+ <action>Add pool configuration: min=2, max=20, idleTimeoutMs=30000. Add SSL config: rejectUnauthorized=true when NODE_ENV=production. Add .env.example entry: DATABASE_POOL_MAX=20.</action>
492
+ <acceptance_criteria>
493
+ - database.ts contains "max: 20" and "idleTimeoutMillis: 30000"
494
+ - database.ts contains SSL conditional on NODE_ENV
495
+ - .env.example contains DATABASE_POOL_MAX
496
+ </acceptance_criteria>
497
+ </task>
498
+ ```
499
+
459
500
  ---
460
501
 
461
502
  ## Guidelines
@@ -70,20 +70,12 @@ Before returning PLANNING COMPLETE:
70
70
 
71
71
  **From /gsd-plan-phase (standard mode):**
72
72
  ```python
73
- task(
74
- prompt=filled_template,
75
- subagent_type="gsd-planner",
76
- description="Plan Phase {phase}"
77
- )
73
+ @gsd-planner filled_template
78
74
  ```
79
75
 
80
76
  **From /gsd-plan-phase --gaps (gap closure mode):**
81
77
  ```python
82
- task(
83
- prompt=filled_template, # with mode: gap_closure
84
- subagent_type="gsd-planner",
85
- description="Plan gaps for Phase {phase}"
86
- )
78
+ @gsd-planner filled_template
87
79
  ```
88
80
 
89
81
  ---
@@ -127,6 +127,8 @@ Common types: Tech stack, Timeline, Budget, Dependencies, Compatibility, Perform
127
127
  <evolution>
128
128
 
129
129
  PROJECT.md evolves throughout the project lifecycle.
130
+ These rules are embedded in the generated PROJECT.md (## Evolution section)
131
+ and implemented by workflows/transition.md and workflows/complete-milestone.md.
130
132
 
131
133
  **After each phase transition:**
132
134
  1. Requirements invalidated? → Move to Out of Scope with reason
@@ -73,7 +73,7 @@ Stopped at: [Description of last completed action]
73
73
  Resume file: [Path to .continue-here*.md if exists, otherwise "None"]
74
74
  ```
75
75
 
76
- <purpose>
76
+ <objective>
77
77
 
78
78
  STATE.md is the project's short-term memory spanning all phases and sessions.
79
79
 
@@ -85,7 +85,7 @@ STATE.md is the project's short-term memory spanning all phases and sessions.
85
85
  - Contains digest of accumulated context
86
86
  - Enables instant session restoration
87
87
 
88
- </purpose>
88
+ </objective>
89
89
 
90
90
  <lifecycle>
91
91
 
@@ -0,0 +1,146 @@
1
+ # Developer Profile
2
+
3
+ > This profile was generated from session analysis. It contains behavioral directives
4
+ > for OpenCode to follow when working with this developer. HIGH confidence dimensions
5
+ > should be acted on directly. LOW confidence dimensions should be approached with
6
+ > hedging ("Based on your profile, I'll try X -- let me know if that's off").
7
+
8
+ **Generated:** {{generated_at}}
9
+ **Source:** {{data_source}}
10
+ **Projects Analyzed:** {{projects_list}}
11
+ **Messages Analyzed:** {{message_count}}
12
+
13
+ ---
14
+
15
+ ## Quick Reference
16
+
17
+ {{summary_instructions}}
18
+
19
+ ---
20
+
21
+ ## Communication Style
22
+
23
+ **Rating:** {{communication_style.rating}} | **Confidence:** {{communication_style.confidence}}
24
+
25
+ **Directive:** {{communication_style.claude_instruction}}
26
+
27
+ {{communication_style.summary}}
28
+
29
+ **Evidence:**
30
+
31
+ {{communication_style.evidence}}
32
+
33
+ ---
34
+
35
+ ## Decision Speed
36
+
37
+ **Rating:** {{decision_speed.rating}} | **Confidence:** {{decision_speed.confidence}}
38
+
39
+ **Directive:** {{decision_speed.claude_instruction}}
40
+
41
+ {{decision_speed.summary}}
42
+
43
+ **Evidence:**
44
+
45
+ {{decision_speed.evidence}}
46
+
47
+ ---
48
+
49
+ ## Explanation Depth
50
+
51
+ **Rating:** {{explanation_depth.rating}} | **Confidence:** {{explanation_depth.confidence}}
52
+
53
+ **Directive:** {{explanation_depth.claude_instruction}}
54
+
55
+ {{explanation_depth.summary}}
56
+
57
+ **Evidence:**
58
+
59
+ {{explanation_depth.evidence}}
60
+
61
+ ---
62
+
63
+ ## Debugging Approach
64
+
65
+ **Rating:** {{debugging_approach.rating}} | **Confidence:** {{debugging_approach.confidence}}
66
+
67
+ **Directive:** {{debugging_approach.claude_instruction}}
68
+
69
+ {{debugging_approach.summary}}
70
+
71
+ **Evidence:**
72
+
73
+ {{debugging_approach.evidence}}
74
+
75
+ ---
76
+
77
+ ## UX Philosophy
78
+
79
+ **Rating:** {{ux_philosophy.rating}} | **Confidence:** {{ux_philosophy.confidence}}
80
+
81
+ **Directive:** {{ux_philosophy.claude_instruction}}
82
+
83
+ {{ux_philosophy.summary}}
84
+
85
+ **Evidence:**
86
+
87
+ {{ux_philosophy.evidence}}
88
+
89
+ ---
90
+
91
+ ## Vendor Philosophy
92
+
93
+ **Rating:** {{vendor_philosophy.rating}} | **Confidence:** {{vendor_philosophy.confidence}}
94
+
95
+ **Directive:** {{vendor_philosophy.claude_instruction}}
96
+
97
+ {{vendor_philosophy.summary}}
98
+
99
+ **Evidence:**
100
+
101
+ {{vendor_philosophy.evidence}}
102
+
103
+ ---
104
+
105
+ ## Frustration Triggers
106
+
107
+ **Rating:** {{frustration_triggers.rating}} | **Confidence:** {{frustration_triggers.confidence}}
108
+
109
+ **Directive:** {{frustration_triggers.claude_instruction}}
110
+
111
+ {{frustration_triggers.summary}}
112
+
113
+ **Evidence:**
114
+
115
+ {{frustration_triggers.evidence}}
116
+
117
+ ---
118
+
119
+ ## Learning Style
120
+
121
+ **Rating:** {{learning_style.rating}} | **Confidence:** {{learning_style.confidence}}
122
+
123
+ **Directive:** {{learning_style.claude_instruction}}
124
+
125
+ {{learning_style.summary}}
126
+
127
+ **Evidence:**
128
+
129
+ {{learning_style.evidence}}
130
+
131
+ ---
132
+
133
+ ## Profile Metadata
134
+
135
+ | Field | Value |
136
+ |-------|-------|
137
+ | Profile Version | {{profile_version}} |
138
+ | Generated | {{generated_at}} |
139
+ | Source | {{data_source}} |
140
+ | Projects | {{projects_count}} |
141
+ | Messages | {{message_count}} |
142
+ | Dimensions Scored | {{dimensions_scored}}/8 |
143
+ | High Confidence | {{high_confidence_count}} |
144
+ | Medium Confidence | {{medium_confidence_count}} |
145
+ | Low Confidence | {{low_confidence_count}} |
146
+ | Sensitive Content Excluded | {{sensitive_excluded_summary}} |
@@ -1,6 +1,6 @@
1
- <purpose>
1
+ <objective>
2
2
  Add a new integer phase to the end of the current milestone in the roadmap. Automatically calculates next phase number, creates phase directory, and updates roadmap structure.
3
- </purpose>
3
+ </objective>
4
4
 
5
5
  <required_reading>
6
6
  read all files referenced by the invoking prompt's execution_context before starting.
@@ -87,9 +87,9 @@ Roadmap updated: .planning/ROADMAP.md
87
87
 
88
88
  **Phase {N}: {description}**
89
89
 
90
- `/gsd-plan-phase {N}`
90
+ `/new` then:
91
91
 
92
- *`/new` first → fresh context window*
92
+ `/gsd-plan-phase {N}`
93
93
 
94
94
  ---
95
95
 
@@ -1,8 +1,8 @@
1
- <purpose>
1
+ <objective>
2
2
  Generate unit and E2E tests for a completed phase based on its SUMMARY.md, CONTEXT.md, and implementation. Classifies each changed file into TDD (unit), E2E (browser), or Skip categories, presents a test plan for user approval, then generates tests following RED-GREEN conventions.
3
3
 
4
4
  Users currently hand-craft `/gsd-quick` prompts for test generation after each phase. This workflow standardizes the process with proper classification, quality gates, and gap reporting.
5
- </purpose>
5
+ </objective>
6
6
 
7
7
  <required_reading>
8
8
  read all files referenced by the invoking prompt's execution_context before starting.
@@ -146,7 +146,7 @@ find . -type d -name "*test*" -o -name "*spec*" -o -name "*__tests__*" 2>/dev/nu
146
146
  # Find existing test files for convention matching
147
147
  find . -type f \( -name "*.test.*" -o -name "*.spec.*" -o -name "*Tests.fs" -o -name "*Test.fs" \) 2>/dev/null | head -20
148
148
  # Check for test runners
149
- ls package.json *.sln 2>/dev/null
149
+ ls package.json *.sln 2>/dev/null || true
150
150
  ```
151
151
 
152
152
  Identify:
@@ -243,7 +243,7 @@ For each approved E2E test:
243
243
 
244
244
  1. **Check for existing tests** covering the same scenario:
245
245
  ```bash
246
- grep -r "{scenario keyword}" {e2e test directory} 2>/dev/null
246
+ grep -r "{scenario keyword}" {e2e test directory} 2>/dev/null || true
247
247
  ```
248
248
  If found, extend rather than duplicate.
249
249
 
@@ -1,6 +1,6 @@
1
- <purpose>
1
+ <objective>
2
2
  Capture an idea, task, or issue that surfaces during a GSD session as a structured todo for later work. Enables "thought → capture → continue" flow without losing context.
3
- </purpose>
3
+ </objective>
4
4
 
5
5
  <required_reading>
6
6
  read all files referenced by the invoking prompt's execution_context before starting.
@@ -20,7 +20,7 @@ Extract from init JSON: `commit_docs`, `date`, `timestamp`, `todo_count`, `todos
20
20
 
21
21
  Ensure directories exist:
22
22
  ```bash
23
- mkdir -p .planning/todos/pending .planning/todos/done
23
+ mkdir -p .planning/todos/pending .planning/todos/completed
24
24
  ```
25
25
 
26
26
  Note existing areas from the todos array for consistency in infer_area step.
@@ -63,7 +63,7 @@ Use existing area from step 2 if similar match exists.
63
63
  <step name="check_duplicates">
64
64
  ```bash
65
65
  # Search for key words from title in existing todos
66
- grep -l -i "[key words from title]" .planning/todos/pending/*.md 2>/dev/null
66
+ grep -l -i "[key words from title]" .planning/todos/pending/*.md 2>/dev/null || true
67
67
  ```
68
68
 
69
69
  If potential duplicate found:
@@ -0,0 +1,96 @@
1
+ <objective>
2
+ Analyze ROADMAP.md phases for dependency relationships before execution. Detect file overlap between phases, semantic API/data-flow dependencies, and suggest `Depends on` entries to prevent merge conflicts during parallel execution by `/gsd-manager`.
3
+ </objective>
4
+
5
+ <process>
6
+
7
+ ## 1. Load ROADMAP.md
8
+
9
+ read `.planning/ROADMAP.md`. If it does not exist, error: "No ROADMAP.md found — run `/gsd-new-project` first."
10
+
11
+ Extract all phases. For each phase capture:
12
+ - Phase number and name
13
+ - Scope/Goal description
14
+ - Files listed in `Files` or `files_modified` fields (if present)
15
+ - Existing `Depends on` field value
16
+
17
+ ## 2. Infer Likely File Modifications
18
+
19
+ For each phase without explicit `files_modified`, analyze the scope/goal description to infer which files will likely be modified. Use these heuristics:
20
+
21
+ - **Database/schema phases** → migration files, schema definitions, model files
22
+ - **API/backend phases** → route files, controller files, service files, handler files
23
+ - **Frontend/UI phases** → component files, page files, style files
24
+ - **Auth phases** → middleware files, auth route files, session/token files
25
+ - **Config/infra phases** → config files, environment files, CI/CD files
26
+ - **Test phases** → test files, spec files, fixture files
27
+ - **Shared utility phases** → lib/utils files, shared type definitions
28
+
29
+ Group phases by their inferred file domain (database, API, frontend, auth, config, shared).
30
+
31
+ ## 3. Detect Dependency Relationships
32
+
33
+ For each pair of phases (A, B), check for dependency signals:
34
+
35
+ ### File Overlap Detection
36
+ If phases A and B will both modify files in the same domain or the same specific files, one must run before the other. The phase that *provides* the foundation runs first.
37
+
38
+ ### Semantic Dependency Detection
39
+ read each phase's scope/goal for these patterns:
40
+ - Phase B mentions consuming, using, or calling something that Phase A creates/implements
41
+ - Phase B references an "API", "schema", "model", "endpoint", or "interface" that Phase A builds
42
+ - Phase B says "after X is complete", "once X is built", "using the X from Phase N"
43
+ - Phase B extends or modifies code that Phase A establishes
44
+
45
+ ### Data Flow Detection
46
+ - Phase A creates data structures, schemas, or types → Phase B consumes or transforms them
47
+ - Phase A seeds/migrates the database → Phase B reads from that database
48
+ - Phase A exposes an API contract → Phase B implements the client for that contract
49
+
50
+ ## 4. Build Dependency Table
51
+
52
+ Output a dependency suggestion table:
53
+
54
+ ```
55
+ Phase Dependency Analysis
56
+ =========================
57
+
58
+ Phase N: <name>
59
+ Scope: <brief scope>
60
+ Likely touches: <inferred file domains>
61
+
62
+ Suggested dependencies:
63
+ → Depends on: <Phase M> — reason: <overlap/semantic/data-flow explanation>
64
+
65
+ Current "Depends on": <existing value or "(none)">
66
+ ```
67
+
68
+ For phase pairs with no detected dependency, state: "No dependency detected between Phase X and Phase Y."
69
+
70
+ ## 5. Summarize Suggested Changes
71
+
72
+ Show a consolidated diff of proposed ROADMAP.md `Depends on` changes:
73
+
74
+ ```
75
+ Suggested ROADMAP.md updates:
76
+ Phase 3: add "Depends on: 1, 2" (file overlap: database schema)
77
+ Phase 5: add "Depends on: 3" (semantic: uses auth API from Phase 3)
78
+ Phase 4: no change needed (independent scope)
79
+ ```
80
+
81
+ ## 6. Confirm and Apply
82
+
83
+ Ask the user: "Apply these `Depends on` suggestions to ROADMAP.md? (yes / no / edit)"
84
+
85
+ - **yes** — write all suggested `Depends on` entries to ROADMAP.md. Confirm each write.
86
+ - **no** — Print the suggestions as text only. User updates manually.
87
+ - **edit** — Present each suggestion individually with yes/no/skip per suggestion.
88
+
89
+ When writing to ROADMAP.md:
90
+ - Locate the phase entry and add or update the `Depends on:` field
91
+ - Preserve all other phase content unchanged
92
+ - Do not reorder phases
93
+
94
+ After applying: "ROADMAP.md updated. Run `/gsd-manager` to execute phases in the correct order."
95
+
96
+ </process>
@@ -1,11 +1,16 @@
1
- <purpose>
1
+ <objective>
2
2
  Verify milestone achieved its definition of done by aggregating phase verifications, checking cross-phase integration, and assessing requirements coverage. Reads existing VERIFICATION.md files (phases already verified during execute-phase), aggregates tech debt and deferred gaps, then spawns integration checker for cross-phase wiring.
3
- </purpose>
3
+ </objective>
4
4
 
5
5
  <required_reading>
6
6
  read all files referenced by the invoking prompt's execution_context before starting.
7
7
  </required_reading>
8
8
 
9
+ <available_agent_types>
10
+ Valid GSD subagent types (use exact names — do not fall back to 'general'):
11
+ - gsd-integration-checker — Checks cross-phase integration
12
+ </available_agent_types>
13
+
9
14
  <process>
10
15
 
11
16
  ## 0. Initialize Milestone Context
@@ -13,6 +18,7 @@ read all files referenced by the invoking prompt's execution_context before star
13
18
  ```bash
14
19
  INIT=$(node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" init milestone-op)
15
20
  if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
21
+ AGENT_SKILLS_CHECKER=$(node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" agent-skills gsd-integration-checker 2>/dev/null)
16
22
  ```
17
23
 
18
24
  Extract from init JSON: `milestone_version`, `milestone_name`, `phase_count`, `completed_phases`, `commit_docs`.
@@ -61,8 +67,7 @@ With phase context collected:
61
67
  Extract `MILESTONE_REQ_IDS` from REQUIREMENTS.md traceability table — all REQ-IDs assigned to phases in this milestone.
62
68
 
63
69
  ```
64
- task(
65
- prompt="Check cross-phase integration and E2E flows.
70
+ @gsd-integration-checker "Check cross-phase integration and E2E flows.
66
71
 
67
72
  Phases: {phase_dirs}
68
73
  Phase exports: {from SUMMARYs}
@@ -73,10 +78,8 @@ Milestone Requirements:
73
78
 
74
79
  MUST map each integration finding to affected requirement IDs where applicable.
75
80
 
76
- Verify cross-phase wiring and E2E user flows.",
77
- subagent_type="gsd-integration-checker",
78
- model="{integration_checker_model}"
79
- )
81
+ Verify cross-phase wiring and E2E user flows.
82
+ ${AGENT_SKILLS_CHECKER}"
80
83
  ```
81
84
 
82
85
  ## 4. Collect Results
@@ -105,7 +108,8 @@ For each phase's VERIFICATION.md, extract the expanded requirements table:
105
108
  For each phase's SUMMARY.md, extract `requirements-completed` from YAML frontmatter:
106
109
  ```bash
107
110
  for summary in .planning/phases/*-*/*-SUMMARY.md; do
108
- node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" summary-extract "$summary" --fields requirements_completed | jq -r '.requirements_completed'
111
+ [ -e "$summary" ] || continue
112
+ node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" summary-extract "$summary" --fields requirements_completed --pick requirements_completed
109
113
  done
110
114
  ```
111
115
 
@@ -133,7 +137,7 @@ For each REQ-ID, determine status using all three sources:
133
137
  Skip if `workflow.nyquist_validation` is explicitly `false` (absent = enabled).
134
138
 
135
139
  ```bash
136
- NYQUIST_CONFIG=$(node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" config get workflow.nyquist_validation --raw 2>/dev/null)
140
+ NYQUIST_CONFIG=$(node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" config-get workflow.nyquist_validation --raw 2>/dev/null)
137
141
  ```
138
142
 
139
143
  If `false`: skip entirely.
@@ -221,9 +225,9 @@ All requirements covered. Cross-phase integration verified. E2E flows complete.
221
225
 
222
226
  **Complete milestone** — archive and tag
223
227
 
224
- /gsd-complete-milestone {version}
228
+ /new then:
225
229
 
226
- */new first → fresh context window*
230
+ /gsd-complete-milestone {version}
227
231
 
228
232
  ───────────────────────────────────────────────────────────────
229
233
 
@@ -266,9 +270,9 @@ Phases needing validation: run `/gsd-validate-phase {N}` for each flagged phase.
266
270
 
267
271
  **Plan gap closure** — create phases to complete milestone
268
272
 
269
- /gsd-plan-milestone-gaps
273
+ /new then:
270
274
 
271
- */new first → fresh context window*
275
+ /gsd-plan-milestone-gaps
272
276
 
273
277
  ───────────────────────────────────────────────────────────────
274
278
 
@@ -308,9 +312,9 @@ All requirements met. No critical blockers. Accumulated tech debt needs review.
308
312
 
309
313
  **B. Plan cleanup phase** — address debt before completing
310
314
 
311
- /gsd-plan-milestone-gaps
315
+ /new then:
312
316
 
313
- */new first → fresh context window*
317
+ /gsd-plan-milestone-gaps
314
318
 
315
319
  ───────────────────────────────────────────────────────────────
316
320
  </offer_next>