gsd-opencode 1.5.2 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/agents/gsd-codebase-mapper.md +743 -0
  2. package/agents/gsd-debugger.md +1191 -0
  3. package/agents/gsd-executor.md +759 -0
  4. package/agents/gsd-integration-checker.md +427 -0
  5. package/agents/gsd-phase-researcher.md +637 -0
  6. package/agents/gsd-plan-checker.md +749 -0
  7. package/agents/gsd-planner.md +1373 -0
  8. package/agents/gsd-project-researcher.md +877 -0
  9. package/agents/gsd-research-synthesizer.md +250 -0
  10. package/agents/gsd-roadmapper.md +610 -0
  11. package/agents/gsd-verifier.md +782 -0
  12. package/bin/install.js +11 -1
  13. package/command/gsd/add-phase.md +5 -7
  14. package/command/gsd/add-todo.md +4 -6
  15. package/command/gsd/audit-milestone.md +257 -0
  16. package/command/gsd/check-todos.md +2 -4
  17. package/command/gsd/complete-milestone.md +53 -23
  18. package/command/gsd/debug.md +120 -30
  19. package/command/gsd/discuss-phase.md +51 -30
  20. package/command/gsd/execute-phase.md +192 -26
  21. package/command/gsd/help.md +66 -75
  22. package/command/gsd/insert-phase.md +6 -6
  23. package/command/gsd/list-phase-assumptions.md +1 -1
  24. package/command/gsd/map-codebase.md +15 -28
  25. package/command/gsd/new-milestone.md +693 -36
  26. package/command/gsd/new-project.md +668 -108
  27. package/command/gsd/pause-work.md +2 -2
  28. package/command/gsd/plan-milestone-gaps.md +284 -0
  29. package/command/gsd/plan-phase.md +449 -42
  30. package/command/gsd/progress.md +66 -36
  31. package/command/gsd/remove-phase.md +17 -19
  32. package/command/gsd/research-phase.md +155 -67
  33. package/command/gsd/resume-work.md +3 -3
  34. package/command/gsd/update.md +172 -0
  35. package/command/gsd/verify-work.md +186 -38
  36. package/command/gsd/whats-new.md +124 -0
  37. package/get-shit-done/references/checkpoints.md +599 -98
  38. package/get-shit-done/references/continuation-format.md +5 -11
  39. package/get-shit-done/references/questioning.md +87 -108
  40. package/get-shit-done/references/tdd.md +3 -3
  41. package/get-shit-done/references/ui-brand.md +160 -0
  42. package/get-shit-done/references/verification-patterns.md +595 -0
  43. package/get-shit-done/templates/DEBUG.md +3 -3
  44. package/get-shit-done/templates/UAT.md +247 -0
  45. package/get-shit-done/templates/codebase/architecture.md +5 -5
  46. package/get-shit-done/templates/codebase/concerns.md +1 -1
  47. package/get-shit-done/templates/codebase/conventions.md +1 -1
  48. package/get-shit-done/templates/codebase/structure.md +8 -8
  49. package/get-shit-done/templates/codebase/testing.md +2 -2
  50. package/get-shit-done/templates/context.md +221 -70
  51. package/get-shit-done/templates/debug-subagent-prompt.md +91 -0
  52. package/get-shit-done/templates/discovery.md +5 -5
  53. package/get-shit-done/templates/phase-prompt.md +115 -2
  54. package/get-shit-done/templates/planner-subagent-prompt.md +117 -0
  55. package/get-shit-done/templates/requirements.md +231 -0
  56. package/get-shit-done/templates/research-project/ARCHITECTURE.md +204 -0
  57. package/get-shit-done/templates/research-project/FEATURES.md +147 -0
  58. package/get-shit-done/templates/research-project/PITFALLS.md +200 -0
  59. package/get-shit-done/templates/research-project/STACK.md +120 -0
  60. package/get-shit-done/templates/research-project/SUMMARY.md +170 -0
  61. package/get-shit-done/templates/research.md +2 -2
  62. package/get-shit-done/templates/roadmap.md +26 -20
  63. package/get-shit-done/templates/state.md +2 -17
  64. package/get-shit-done/templates/summary.md +13 -17
  65. package/get-shit-done/templates/user-setup.md +323 -0
  66. package/get-shit-done/templates/verification-report.md +322 -0
  67. package/get-shit-done/workflows/complete-milestone.md +152 -45
  68. package/get-shit-done/workflows/diagnose-issues.md +233 -0
  69. package/get-shit-done/workflows/discovery-phase.md +12 -17
  70. package/get-shit-done/workflows/discuss-phase.md +309 -124
  71. package/get-shit-done/workflows/execute-phase.md +177 -18
  72. package/get-shit-done/workflows/execute-plan.md +163 -145
  73. package/get-shit-done/workflows/map-codebase.md +86 -231
  74. package/get-shit-done/workflows/resume-project.md +18 -20
  75. package/get-shit-done/workflows/transition.md +7 -23
  76. package/get-shit-done/workflows/verify-phase.md +629 -0
  77. package/get-shit-done/workflows/verify-work.md +495 -134
  78. package/package.json +2 -1
  79. package/command/gsd/consider-issues.md +0 -201
  80. package/command/gsd/create-roadmap.md +0 -115
  81. package/command/gsd/discuss-milestone.md +0 -47
  82. package/command/gsd/execute-plan.md +0 -103
  83. package/command/gsd/plan-fix.md +0 -205
  84. package/command/gsd/status.md +0 -127
  85. package/get-shit-done/references/debugging/debugging-mindset.md +0 -253
  86. package/get-shit-done/references/debugging/hypothesis-testing.md +0 -373
  87. package/get-shit-done/references/debugging/investigation-techniques.md +0 -337
  88. package/get-shit-done/references/debugging/verification-patterns.md +0 -425
  89. package/get-shit-done/references/debugging/when-to-research.md +0 -361
  90. package/get-shit-done/references/plan-format.md +0 -475
  91. package/get-shit-done/references/principles.md +0 -157
  92. package/get-shit-done/references/research-pitfalls.md +0 -215
  93. package/get-shit-done/references/scope-estimation.md +0 -256
  94. package/get-shit-done/templates/agent-history.md +0 -263
  95. package/get-shit-done/templates/checkpoint-return.md +0 -204
  96. package/get-shit-done/templates/config.json +0 -26
  97. package/get-shit-done/templates/continuation-prompt.md +0 -235
  98. package/get-shit-done/templates/issues.md +0 -32
  99. package/get-shit-done/templates/milestone-context.md +0 -93
  100. package/get-shit-done/templates/subagent-task-prompt.md +0 -95
  101. package/get-shit-done/templates/uat-issues.md +0 -143
  102. package/get-shit-done/workflows/_archive/execute-phase.md +0 -899
  103. package/get-shit-done/workflows/create-milestone.md +0 -416
  104. package/get-shit-done/workflows/create-roadmap.md +0 -481
  105. package/get-shit-done/workflows/debug.md +0 -426
  106. package/get-shit-done/workflows/discuss-milestone.md +0 -236
  107. package/get-shit-done/workflows/plan-phase.md +0 -701
  108. package/get-shit-done/workflows/research-phase.md +0 -436
@@ -0,0 +1,172 @@
1
+ ---
2
+ name: gsd-update
3
+ description: Update GSD to latest version with changelog display
4
+ ---
5
+
6
+ <objective>
7
+ Check for GSD updates, install if available, and display what changed.
8
+
9
+ Provides a better update experience than raw `npx gsd-opencode` by showing version diff and changelog entries.
10
+ </objective>
11
+
12
+ <process>
13
+
14
+ <step name="get_installed_version">
15
+ read installed version:
16
+
17
+ ```bash
18
+ cat ~/.config/opencode/get-shit-done/VERSION 2>/dev/null
19
+ ```
20
+
21
+ **If VERSION file missing:**
22
+ ```
23
+ ## GSD Update
24
+
25
+ **Installed version:** Unknown
26
+
27
+ Your installation doesn't include version tracking.
28
+
29
+ Running fresh install...
30
+ ```
31
+
32
+ Proceed to install step (treat as version 0.0.0 for comparison).
33
+ </step>
34
+
35
+ <step name="check_latest_version">
36
+ Check npm for latest version:
37
+
38
+ ```bash
39
+ npm view gsd-opencode version 2>/dev/null
40
+ ```
41
+
42
+ **If npm check fails:**
43
+ ```
44
+ Couldn't check for updates (offline or npm unavailable).
45
+
46
+ To update manually: `npx gsd-opencode --global`
47
+ ```
48
+
49
+ STOP here if npm unavailable.
50
+ </step>
51
+
52
+ <step name="compare_versions">
53
+ Compare installed vs latest:
54
+
55
+ **If installed == latest:**
56
+ ```
57
+ ## GSD Update
58
+
59
+ **Installed:** X.Y.Z
60
+ **Latest:** X.Y.Z
61
+
62
+ You're already on the latest version.
63
+ ```
64
+
65
+ STOP here if already up to date.
66
+
67
+ **If installed > latest:**
68
+ ```
69
+ ## GSD Update
70
+
71
+ **Installed:** X.Y.Z
72
+ **Latest:** A.B.C
73
+
74
+ You're ahead of the latest release (development version?).
75
+ ```
76
+
77
+ STOP here if ahead.
78
+ </step>
79
+
80
+ <step name="show_changes_and_confirm">
81
+ **If update available**, fetch and show what's new BEFORE updating:
82
+
83
+ 1. Fetch changelog (same as fetch_changelog step)
84
+ 2. Extract entries between installed and latest versions
85
+ 3. Display preview and ask for confirmation:
86
+
87
+ ```
88
+ ## GSD Update Available
89
+
90
+ **Installed:** 1.5.10
91
+ **Latest:** 1.5.15
92
+
93
+ ### What's New
94
+ ────────────────────────────────────────────────────────────
95
+
96
+ ## [1.5.15] - 2026-01-20
97
+
98
+ ### Added
99
+ - Feature X
100
+
101
+ ## [1.5.14] - 2026-01-18
102
+
103
+ ### Fixed
104
+ - Bug fix Y
105
+
106
+ ────────────────────────────────────────────────────────────
107
+
108
+ ⚠️ **Note:** The installer performs a clean install of GSD folders:
109
+ - `~/.config/opencode/commands/gsd/` will be wiped and replaced
110
+ - `~/.config/opencode/get-shit-done/` will be wiped and replaced
111
+ - `~/.config/opencode/agents/gsd-*` files will be replaced
112
+
113
+ Your custom files in other locations are preserved:
114
+ - Custom commands in `~/.config/opencode/commands/your-stuff/` ✓
115
+ - Custom agents not prefixed with `gsd-` ✓
116
+ - Custom hooks ✓
117
+ - Your CLAUDE.md files ✓
118
+
119
+ If you've modified any GSD files directly, back them up first.
120
+ ```
121
+
122
+ Use question:
123
+ - Question: "Proceed with update?"
124
+ - Options:
125
+ - "Yes, update now"
126
+ - "No, cancel"
127
+
128
+ **If user cancels:** STOP here.
129
+ </step>
130
+
131
+ <step name="run_update">
132
+ Run the update:
133
+
134
+ ```bash
135
+ npx gsd-opencode@latest --global
136
+ ```
137
+
138
+ Capture output. If install fails, show error and STOP.
139
+
140
+ Clear the update cache so statusline indicator disappears:
141
+
142
+ ```bash
143
+ rm -f ~/.config/opencode/cache/gsd-update-check.json
144
+ ```
145
+ </step>
146
+
147
+ <step name="display_result">
148
+ Format completion message (changelog was already shown in confirmation step):
149
+
150
+ ```
151
+ ╔═══════════════════════════════════════════════════════════╗
152
+ ║ GSD Updated: v1.5.10 → v1.5.15 ║
153
+ ╚═══════════════════════════════════════════════════════════╝
154
+
155
+ ⚠️ Restart OpenCode to pick up the new commands.
156
+
157
+ [View full changelog](https://github.com/rokicool/get-shit-done/blob/main/CHANGELOG.md)
158
+ ```
159
+ </step>
160
+
161
+ </process>
162
+
163
+ <success_criteria>
164
+ - [ ] Installed version read correctly
165
+ - [ ] Latest version checked via npm
166
+ - [ ] Update skipped if already current
167
+ - [ ] Changelog fetched and displayed BEFORE update
168
+ - [ ] Clean install warning shown
169
+ - [ ] User confirmation obtained
170
+ - [ ] Update executed successfully
171
+ - [ ] Restart reminder shown
172
+ </success_criteria>
@@ -1,71 +1,219 @@
1
1
  ---
2
2
  name: gsd-verify-work
3
- description: Guide manual user acceptance testing of recently built features
4
- argument-hint: "[optional: phase or plan number, e.g., '4' or '04-02']"
5
- allowed-tools:
3
+ description: Validate built features through conversational UAT
4
+ argument-hint: "[phase number, e.g., '4']"
5
+ tools:
6
6
  - read
7
7
  - bash
8
8
  - glob
9
9
  - grep
10
10
  - edit
11
11
  - write
12
- - question
12
+
13
13
  ---
14
14
 
15
15
  <objective>
16
- Guide user through manual acceptance testing of recently built features.
16
+ Validate built features through conversational testing with persistent state.
17
17
 
18
- Purpose: Validate that what OpenCode thinks was built actually works from user's perspective. The USER performs all testing OpenCode generates a test checklist, guides process, and captures issues.
18
+ Purpose: Confirm what OpenCode built actually works from user's perspective. One test at a time, plain text responses, no interrogation. When issues are found, automatically diagnose, plan fixes, and prepare for execution.
19
19
 
20
- Output: Validation of features, any issues logged to phase-scoped ISSUES.md
20
+ Output: {phase}-UAT.md tracking all test results. If issues found: diagnosed gaps, verified fix plans ready for /gsd-execute-phase
21
21
  </objective>
22
22
 
23
23
  <execution_context>
24
24
  @~/.config/opencode/get-shit-done/workflows/verify-work.md
25
- @~/.config/opencode/get-shit-done/templates/uat-issues.md
25
+ @~/.config/opencode/get-shit-done/templates/UAT.md
26
26
  </execution_context>
27
27
 
28
28
  <context>
29
- Scope: $ARGUMENTS (optional)
30
- - If provided: Test specific phase or plan (e.g., "4" or "04-02")
31
- - If not provided: Test most recently completed plan
29
+ Phase: $ARGUMENTS (optional)
30
+ - If provided: Test specific phase (e.g., "4")
31
+ - If not provided: Check for active sessions or prompt for phase
32
32
 
33
- **Load project state:**
34
33
  @.planning/STATE.md
35
-
36
- **Load roadmap:**
37
34
  @.planning/ROADMAP.md
38
35
  </context>
39
36
 
40
37
  <process>
41
- 1. Validate arguments (if provided, parse as phase or plan number)
42
- 2. Find relevant SUMMARY.md (specified or most recent)
43
- 3. Follow verify-work.md workflow:
44
- - Extract testable deliverables
45
- - Generate test checklist
46
- - Guide through each test via question
47
- - Collect and categorize issues
48
- - Log issues to `.planning/phases/XX-name/{phase}-{plan}-ISSUES.md`
49
- - Present summary with verdict
50
- 4. Offer next steps based on results:
51
- - If all passed: Continue to next phase
52
- - If issues found: `/gsd-plan-fix {phase} {plan}` to create fix plan
38
+ 1. Check for active UAT sessions (resume or start new)
39
+ 2. Find SUMMARY.md files for the phase
40
+ 3. Extract testable deliverables (user-observable outcomes)
41
+ 4. Create {phase}-UAT.md with test list
42
+ 5. Present tests one at a time:
43
+ - Show expected behavior
44
+ - Wait for plain text response
45
+ - "yes/y/next" = pass, anything else = issue (severity inferred)
46
+ 6. Update UAT.md after each response
47
+ 7. On completion: commit, present summary
48
+ 8. If issues found:
49
+ - Spawn parallel debug agents to diagnose root causes
50
+ - Spawn gsd-planner in --gaps mode to create fix plans
51
+ - Spawn gsd-plan-checker to verify fix plans
52
+ - Iterate planner ↔ checker until plans pass (max 3)
53
+ - Present ready status with `/new` then `/gsd-execute-phase`
53
54
  </process>
54
55
 
55
56
  <anti_patterns>
56
- - Don't run automated tests (that's for CI/test suites)
57
- - Don't make assumptions about test results USER reports outcomes
58
- - Don't skip guidancewalk through each test
59
- - Don't dismiss minor issueslog everything user reports
60
- - Don't fix issues during testing — capture for later
57
+ - Don't use question for test responses — plain text conversation
58
+ - Don't ask severityinfer from description
59
+ - Don't present full checklist upfront one test at a time
60
+ - Don't run automated teststhis is manual user validation
61
+ - Don't fix issues during testing — log as gaps, diagnose after all tests complete
61
62
  </anti_patterns>
62
63
 
64
+ <offer_next>
65
+ Output this markdown directly (not as a code block). Route based on UAT results:
66
+
67
+ | Status | Route |
68
+ |--------|-------|
69
+ | All tests pass + more phases | Route A (next phase) |
70
+ | All tests pass + last phase | Route B (milestone complete) |
71
+ | Issues found + fix plans ready | Route C (execute fixes) |
72
+ | Issues found + planning blocked | Route D (manual intervention) |
73
+
74
+ ---
75
+
76
+ **Route A: All tests pass, more phases remain**
77
+
78
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
79
+ GSD ► PHASE {Z} VERIFIED ✓
80
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
81
+
82
+ **Phase {Z}: {Name}**
83
+
84
+ {N}/{N} tests passed
85
+ UAT complete ✓
86
+
87
+ ───────────────────────────────────────────────────────────────
88
+
89
+ ## ▶ Next Up
90
+
91
+ **Phase {Z+1}: {Name}** — {Goal from ROADMAP.md}
92
+
93
+ /gsd-discuss-phase {Z+1} — gather context and clarify approach
94
+
95
+ */new first → fresh context window*
96
+
97
+ ───────────────────────────────────────────────────────────────
98
+
99
+ **Also available:**
100
+ - /gsd-plan-phase {Z+1} — skip discussion, plan directly
101
+ - /gsd-execute-phase {Z+1} — skip to execution (if already planned)
102
+
103
+ ───────────────────────────────────────────────────────────────
104
+
105
+ ---
106
+
107
+ **Route B: All tests pass, milestone complete**
108
+
109
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
110
+ GSD ► PHASE {Z} VERIFIED ✓
111
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
112
+
113
+ **Phase {Z}: {Name}**
114
+
115
+ {N}/{N} tests passed
116
+ Final phase verified ✓
117
+
118
+ ───────────────────────────────────────────────────────────────
119
+
120
+ ## ▶ Next Up
121
+
122
+ **Audit milestone** — verify requirements, cross-phase integration, E2E flows
123
+
124
+ /gsd-audit-milestone
125
+
126
+ */new first → fresh context window*
127
+
128
+ ───────────────────────────────────────────────────────────────
129
+
130
+ **Also available:**
131
+ - /gsd-complete-milestone — skip audit, archive directly
132
+
133
+ ───────────────────────────────────────────────────────────────
134
+
135
+ ---
136
+
137
+ **Route C: Issues found, fix plans ready**
138
+
139
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
140
+ GSD ► PHASE {Z} ISSUES FOUND ⚠
141
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
142
+
143
+ **Phase {Z}: {Name}**
144
+
145
+ {N}/{M} tests passed
146
+ {X} issues diagnosed
147
+ Fix plans verified ✓
148
+
149
+ ### Issues Found
150
+
151
+ {List issues with severity from UAT.md}
152
+
153
+ ───────────────────────────────────────────────────────────────
154
+
155
+ ## ▶ Next Up
156
+
157
+ **Execute fix plans** — run diagnosed fixes
158
+
159
+ /gsd-execute-phase {Z} --gaps-only
160
+
161
+ */new first → fresh context window*
162
+
163
+ ───────────────────────────────────────────────────────────────
164
+
165
+ **Also available:**
166
+ - cat .planning/phases/{phase_dir}/*-PLAN.md — review fix plans
167
+ - /gsd-plan-phase {Z} --gaps — regenerate fix plans
168
+
169
+ ───────────────────────────────────────────────────────────────
170
+
171
+ ---
172
+
173
+ **Route D: Issues found, planning blocked**
174
+
175
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
176
+ GSD ► PHASE {Z} BLOCKED ✗
177
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
178
+
179
+ **Phase {Z}: {Name}**
180
+
181
+ {N}/{M} tests passed
182
+ Fix planning blocked after {X} iterations
183
+
184
+ ### Unresolved Issues
185
+
186
+ {List blocking issues from planner/checker output}
187
+
188
+ ───────────────────────────────────────────────────────────────
189
+
190
+ ## ▶ Next Up
191
+
192
+ **Manual intervention required**
193
+
194
+ Review the issues above and either:
195
+ 1. Provide guidance for fix planning
196
+ 2. Manually address blockers
197
+ 3. Accept current state and continue
198
+
199
+ ───────────────────────────────────────────────────────────────
200
+
201
+ **Options:**
202
+ - /gsd-plan-phase {Z} --gaps — retry fix planning with guidance
203
+ - /gsd-discuss-phase {Z} — gather more context before replanning
204
+
205
+ ───────────────────────────────────────────────────────────────
206
+ </offer_next>
207
+
63
208
  <success_criteria>
64
- - [ ] Test scope identified from SUMMARY.md
65
- - [ ] Checklist generated based on deliverables
66
- - [ ] User guided through each test
67
- - [ ] All test results captured (pass/fail/partial/skip)
68
- - [ ] Any issues logged to phase-scoped ISSUES.md (not global)
69
- - [ ] Summary presented with verdict
70
- - [ ] User knows next steps based on results
209
+ - [ ] UAT.md created with tests from SUMMARY.md
210
+ - [ ] Tests presented one at a time with expected behavior
211
+ - [ ] Plain text responses (no structured forms)
212
+ - [ ] Severity inferred, never asked
213
+ - [ ] Batched writes: on issue, every 5 passes, or completion
214
+ - [ ] Committed on completion
215
+ - [ ] If issues: parallel debug agents diagnose root causes
216
+ - [ ] If issues: gsd-planner creates fix plans from diagnosed gaps
217
+ - [ ] If issues: gsd-plan-checker verifies fix plans (max 3 iterations)
218
+ - [ ] Ready for `/gsd-execute-phase` when complete
71
219
  </success_criteria>
@@ -0,0 +1,124 @@
1
+ ---
2
+ name: gsd-whats-new
3
+ description: See what's new in GSD since your installed version
4
+ ---
5
+
6
+ <objective>
7
+ Display changes between installed version and latest available version.
8
+
9
+ Shows version comparison, changelog entries for missed versions, and update instructions.
10
+ </objective>
11
+
12
+ <process>
13
+
14
+ <step name="get_installed_version">
15
+ read installed version from VERSION file:
16
+
17
+ ```bash
18
+ cat ~/.config/opencode/get-shit-done/VERSION 2>/dev/null
19
+ ```
20
+
21
+ **If VERSION file missing:**
22
+ ```
23
+ ## GSD What's New
24
+
25
+ **Installed version:** Unknown
26
+
27
+ Your installation doesn't include version tracking.
28
+
29
+ **To fix:** `npx gsd-opencode --global`
30
+
31
+ This will reinstall with version tracking enabled.
32
+ ```
33
+
34
+ STOP here if no VERSION file.
35
+ </step>
36
+
37
+ <step name="fetch_remote_changelog">
38
+ Fetch latest CHANGELOG.md from GitHub:
39
+
40
+ Use webfetch tool with:
41
+ - URL: `https://raw.githubusercontent.com/rokicool/get-shit-done/main/CHANGELOG.md`
42
+ - Prompt: "Extract all version entries with their dates and changes. Return in Keep-a-Changelog format."
43
+
44
+ **If fetch fails:**
45
+ Fall back to local changelog:
46
+ ```bash
47
+ cat ~/.config/opencode/get-shit-done/CHANGELOG.md 2>/dev/null
48
+ ```
49
+
50
+ Note to user: "Couldn't check for updates (offline or GitHub unavailable). Showing local changelog."
51
+ </step>
52
+
53
+ <step name="parse_versions">
54
+ From the remote (or local) changelog:
55
+
56
+ 1. **Extract latest version** - First `## [X.Y.Z]` line after `## [Unreleased]`
57
+ 2. **Compare with installed** - From VERSION file
58
+ 3. **Extract entries between** - All version sections from latest down to (but not including) installed
59
+
60
+ **Version comparison:**
61
+ - If installed == latest: "You're on the latest version"
62
+ - If installed < latest: Show changes since installed version
63
+ - If installed > latest: "You're ahead of latest release (development version?)"
64
+ </step>
65
+
66
+ <step name="display_output">
67
+ Format output clearly:
68
+
69
+ **If up to date:**
70
+ ```
71
+ ## GSD What's New
72
+
73
+ **Installed:** 1.4.26
74
+ **Latest:** 1.4.26
75
+
76
+ You're on the latest version.
77
+
78
+ [View full changelog](https://github.com/rokicool/get-shit-done/blob/main/CHANGELOG.md)
79
+ ```
80
+
81
+ **If updates available:**
82
+ ```
83
+ ## GSD What's New
84
+
85
+ **Installed:** 1.4.23
86
+ **Latest:** 1.4.26
87
+
88
+ ---
89
+
90
+ ### Changes since your version:
91
+
92
+ ## [1.4.26] - 2026-01-20
93
+
94
+ ### Added
95
+ - Feature X
96
+ - Feature Y
97
+
98
+ ### Changed
99
+ - **BREAKING:** Changed Z behavior
100
+
101
+ ## [1.4.25] - 2026-01-18
102
+
103
+ ### Fixed
104
+ - Bug in feature A
105
+
106
+ ---
107
+
108
+ [View full changelog](https://github.com/rokicool/get-shit-done/blob/main/CHANGELOG.md)
109
+
110
+ **To update:** `npx gsd-opencode --global`
111
+ ```
112
+
113
+ **Breaking changes:** Surface prominently with **BREAKING:** prefix in the output.
114
+ </step>
115
+
116
+ </process>
117
+
118
+ <success_criteria>
119
+ - [ ] Installed version read from VERSION file
120
+ - [ ] Remote changelog fetched (or graceful fallback to local)
121
+ - [ ] Version comparison displayed clearly
122
+ - [ ] Changes since installed version shown (if any)
123
+ - [ ] Update instructions provided when behind
124
+ </success_criteria>