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
@@ -0,0 +1,247 @@
1
+ # UAT Template
2
+
3
+ Template for `.planning/phases/XX-name/{phase}-UAT.md` — persistent UAT session tracking.
4
+
5
+ ---
6
+
7
+ ## File Template
8
+
9
+ ```markdown
10
+ ---
11
+ status: testing | complete | diagnosed
12
+ phase: XX-name
13
+ source: [list of SUMMARY.md files tested]
14
+ started: [ISO timestamp]
15
+ updated: [ISO timestamp]
16
+ ---
17
+
18
+ ## Current Test
19
+ <!-- OVERWRITE each test - shows where we are -->
20
+
21
+ number: [N]
22
+ name: [test name]
23
+ expected: |
24
+ [what user should observe]
25
+ awaiting: user response
26
+
27
+ ## Tests
28
+
29
+ ### 1. [Test Name]
30
+ expected: [observable behavior - what user should see]
31
+ result: [pending]
32
+
33
+ ### 2. [Test Name]
34
+ expected: [observable behavior]
35
+ result: pass
36
+
37
+ ### 3. [Test Name]
38
+ expected: [observable behavior]
39
+ result: issue
40
+ reported: "[verbatim user response]"
41
+ severity: major
42
+
43
+ ### 4. [Test Name]
44
+ expected: [observable behavior]
45
+ result: skipped
46
+ reason: [why skipped]
47
+
48
+ ...
49
+
50
+ ## Summary
51
+
52
+ total: [N]
53
+ passed: [N]
54
+ issues: [N]
55
+ pending: [N]
56
+ skipped: [N]
57
+
58
+ ## Gaps
59
+
60
+ <!-- YAML format for plan-phase --gaps consumption -->
61
+ - truth: "[expected behavior from test]"
62
+ status: failed
63
+ reason: "User reported: [verbatim response]"
64
+ severity: blocker | major | minor | cosmetic
65
+ test: [N]
66
+ root_cause: "" # Filled by diagnosis
67
+ artifacts: [] # Filled by diagnosis
68
+ missing: [] # Filled by diagnosis
69
+ debug_session: "" # Filled by diagnosis
70
+ ```
71
+
72
+ ---
73
+
74
+ <section_rules>
75
+
76
+ **Frontmatter:**
77
+ - `status`: OVERWRITE - "testing" or "complete"
78
+ - `phase`: IMMUTABLE - set on creation
79
+ - `source`: IMMUTABLE - SUMMARY files being tested
80
+ - `started`: IMMUTABLE - set on creation
81
+ - `updated`: OVERWRITE - update on every change
82
+
83
+ **Current Test:**
84
+ - OVERWRITE entirely on each test transition
85
+ - Shows which test is active and what's awaited
86
+ - On completion: "[testing complete]"
87
+
88
+ **Tests:**
89
+ - Each test: OVERWRITE result field when user responds
90
+ - `result` values: [pending], pass, issue, skipped
91
+ - If issue: add `reported` (verbatim) and `severity` (inferred)
92
+ - If skipped: add `reason` if provided
93
+
94
+ **Summary:**
95
+ - OVERWRITE counts after each response
96
+ - Tracks: total, passed, issues, pending, skipped
97
+
98
+ **Gaps:**
99
+ - APPEND only when issue found (YAML format)
100
+ - After diagnosis: fill `root_cause`, `artifacts`, `missing`, `debug_session`
101
+ - This section feeds directly into /gsd-plan-phase --gaps
102
+
103
+ </section_rules>
104
+
105
+ <diagnosis_lifecycle>
106
+
107
+ **After testing complete (status: complete), if gaps exist:**
108
+
109
+ 1. User runs diagnosis (from verify-work offer or manually)
110
+ 2. diagnose-issues workflow spawns parallel debug agents
111
+ 3. Each agent investigates one gap, returns root cause
112
+ 4. UAT.md Gaps section updated with diagnosis:
113
+ - Each gap gets `root_cause`, `artifacts`, `missing`, `debug_session` filled
114
+ 5. status → "diagnosed"
115
+ 6. Ready for /gsd-plan-phase --gaps with root causes
116
+
117
+ **After diagnosis:**
118
+ ```yaml
119
+ ## Gaps
120
+
121
+ - truth: "Comment appears immediately after submission"
122
+ status: failed
123
+ reason: "User reported: works but doesn't show until I refresh the page"
124
+ severity: major
125
+ test: 2
126
+ root_cause: "useEffect in CommentList.tsx missing commentCount dependency"
127
+ artifacts:
128
+ - path: "src/components/CommentList.tsx"
129
+ issue: "useEffect missing dependency"
130
+ missing:
131
+ - "Add commentCount to useEffect dependency array"
132
+ debug_session: ".planning/debug/comment-not-refreshing.md"
133
+ ```
134
+
135
+ </diagnosis_lifecycle>
136
+
137
+ <lifecycle>
138
+
139
+ **Creation:** When /gsd-verify-work starts new session
140
+ - Extract tests from SUMMARY.md files
141
+ - Set status to "testing"
142
+ - Current Test points to test 1
143
+ - All tests have result: [pending]
144
+
145
+ **During testing:**
146
+ - Present test from Current Test section
147
+ - User responds with pass confirmation or issue description
148
+ - Update test result (pass/issue/skipped)
149
+ - Update Summary counts
150
+ - If issue: append to Gaps section (YAML format), infer severity
151
+ - Move Current Test to next pending test
152
+
153
+ **On completion:**
154
+ - status → "complete"
155
+ - Current Test → "[testing complete]"
156
+ - Commit file
157
+ - Present summary with next steps
158
+
159
+ **Resume after /new:**
160
+ 1. read frontmatter → know phase and status
161
+ 2. read Current Test → know where we are
162
+ 3. Find first [pending] result → continue from there
163
+ 4. Summary shows progress so far
164
+
165
+ </lifecycle>
166
+
167
+ <severity_guide>
168
+
169
+ Severity is INFERRED from user's natural language, never asked.
170
+
171
+ | User describes | Infer |
172
+ |----------------|-------|
173
+ | Crash, error, exception, fails completely, unusable | blocker |
174
+ | Doesn't work, nothing happens, wrong behavior, missing | major |
175
+ | Works but..., slow, weird, minor, small issue | minor |
176
+ | Color, font, spacing, alignment, visual, looks off | cosmetic |
177
+
178
+ Default: **major** (safe default, user can clarify if wrong)
179
+
180
+ </severity_guide>
181
+
182
+ <good_example>
183
+ ```markdown
184
+ ---
185
+ status: diagnosed
186
+ phase: 04-comments
187
+ source: 04-01-SUMMARY.md, 04-02-SUMMARY.md
188
+ started: 2025-01-15T10:30:00Z
189
+ updated: 2025-01-15T10:45:00Z
190
+ ---
191
+
192
+ ## Current Test
193
+
194
+ [testing complete]
195
+
196
+ ## Tests
197
+
198
+ ### 1. View Comments on Post
199
+ expected: Comments section expands, shows count and comment list
200
+ result: pass
201
+
202
+ ### 2. Create Top-Level Comment
203
+ expected: Submit comment via rich text editor, appears in list with author info
204
+ result: issue
205
+ reported: "works but doesn't show until I refresh the page"
206
+ severity: major
207
+
208
+ ### 3. Reply to a Comment
209
+ expected: Click Reply, inline composer appears, submit shows nested reply
210
+ result: pass
211
+
212
+ ### 4. Visual Nesting
213
+ expected: 3+ level thread shows indentation, left borders, caps at reasonable depth
214
+ result: pass
215
+
216
+ ### 5. Delete Own Comment
217
+ expected: Click delete on own comment, removed or shows [deleted] if has replies
218
+ result: pass
219
+
220
+ ### 6. Comment Count
221
+ expected: Post shows accurate count, increments when adding comment
222
+ result: pass
223
+
224
+ ## Summary
225
+
226
+ total: 6
227
+ passed: 5
228
+ issues: 1
229
+ pending: 0
230
+ skipped: 0
231
+
232
+ ## Gaps
233
+
234
+ - truth: "Comment appears immediately after submission in list"
235
+ status: failed
236
+ reason: "User reported: works but doesn't show until I refresh the page"
237
+ severity: major
238
+ test: 2
239
+ root_cause: "useEffect in CommentList.tsx missing commentCount dependency"
240
+ artifacts:
241
+ - path: "src/components/CommentList.tsx"
242
+ issue: "useEffect missing dependency"
243
+ missing:
244
+ - "Add commentCount to useEffect dependency array"
245
+ debug_session: ".planning/debug/comment-not-refreshing.md"
246
+ ```
247
+ </good_example>
@@ -124,7 +124,7 @@ Template for `.planning/codebase/ARCHITECTURE.md` - captures conceptual code org
124
124
  **Command Layer:**
125
125
  - Purpose: Parse user input and route to appropriate handler
126
126
  - Contains: Command definitions, argument parsing, help text
127
- - Location: `src/command/*.ts`
127
+ - Location: `src/commands/*.ts`
128
128
  - Depends on: Service layer for business logic
129
129
  - Used by: CLI entry point (`src/index.ts`)
130
130
 
@@ -148,7 +148,7 @@ Template for `.planning/codebase/ARCHITECTURE.md` - captures conceptual code org
148
148
 
149
149
  1. User runs: `gsd new-project`
150
150
  2. Commander parses args and flags
151
- 3. Command handler invoked (`src/command/new-project.ts`)
151
+ 3. Command handler invoked (`src/commands/new-project.ts`)
152
152
  4. Handler calls service methods (`src/services/project.ts` → `create()`)
153
153
  5. Service reads templates, processes files, writes output
154
154
  6. Results logged to console
@@ -168,7 +168,7 @@ Template for `.planning/codebase/ARCHITECTURE.md` - captures conceptual code org
168
168
 
169
169
  **Command:**
170
170
  - Purpose: CLI command definition
171
- - Examples: `src/command/new-project.ts`, `src/command/plan-phase.ts`
171
+ - Examples: `src/commands/new-project.ts`, `src/commands/plan-phase.ts`
172
172
  - Pattern: Commander.js command registration
173
173
 
174
174
  **Template:**
@@ -184,7 +184,7 @@ Template for `.planning/codebase/ARCHITECTURE.md` - captures conceptual code org
184
184
  - Responsibilities: Register commands, parse args, display help
185
185
 
186
186
  **Commands:**
187
- - Location: `src/command/*.ts`
187
+ - Location: `src/commands/*.ts`
188
188
  - Triggers: Matched command from CLI
189
189
  - Responsibilities: Validate input, call services, format output
190
190
 
@@ -241,7 +241,7 @@ Template for `.planning/codebase/ARCHITECTURE.md` - captures conceptual code org
241
241
  Include file paths as concrete examples of abstractions. Use backtick formatting: `src/services/user.ts`. This makes the architecture document actionable for OpenCode when planning.
242
242
 
243
243
  **When filling this template:**
244
- - Read main entry points (index, server, main)
244
+ - read main entry points (index, server, main)
245
245
  - Identify layers by reading imports/dependencies
246
246
  - Trace a typical request/command execution
247
247
  - Note recurring patterns (services, controllers, repositories)
@@ -306,5 +306,5 @@ Template for `.planning/codebase/CONCERNS.md` - captures known issues and areas
306
306
  - Planning refactoring work
307
307
 
308
308
  **How this gets populated:**
309
- explore agents detect these during codebase mapping. Manual additions welcome for human-discovered issues. This is living documentation, not a complaint list.
309
+ Explore agents detect these during codebase mapping. Manual additions welcome for human-discovered issues. This is living documentation, not a complaint list.
310
310
  </guidelines>
@@ -301,7 +301,7 @@ Template for `.planning/codebase/CONVENTIONS.md` - captures coding style and pat
301
301
  **Analysis approach:**
302
302
  - Scan src/ directory for file naming patterns
303
303
  - Check package.json scripts for lint/format commands
304
- - Read 5-10 files to identify function naming, error handling
304
+ - read 5-10 files to identify function naming, error handling
305
305
  - Look for config files (.prettierrc, eslint.config.js)
306
306
  - Note patterns in imports, comments, function signatures
307
307
  </guidelines>
@@ -125,7 +125,7 @@ Template for `.planning/codebase/STRUCTURE.md` - captures physical file organiza
125
125
  ```
126
126
  get-shit-done/
127
127
  ├── bin/ # Executable entry points
128
- ├── command/ # Slash command definitions
128
+ ├── commands/ # Slash command definitions
129
129
  │ └── gsd/ # GSD-specific commands
130
130
  ├── get-shit-done/ # Skill resources
131
131
  │ ├── references/ # Principle documents
@@ -145,7 +145,7 @@ get-shit-done/
145
145
  - Key files: install.js - handles npx installation
146
146
  - Subdirectories: None
147
147
 
148
- **command/gsd/**
148
+ **commands/gsd/**
149
149
  - Purpose: Slash command definitions for OpenCode
150
150
  - Contains: *.md files (one per command)
151
151
  - Key files: new-project.md, plan-phase.md, execute-plan.md
@@ -197,7 +197,7 @@ get-shit-done/
197
197
 
198
198
  **Directories:**
199
199
  - kebab-case: All directories
200
- - Plural for collections: templates/, command/, workflows/
200
+ - Plural for collections: templates/, commands/, workflows/
201
201
 
202
202
  **Special Patterns:**
203
203
  - {command-name}.md: Slash command definition
@@ -206,8 +206,8 @@ get-shit-done/
206
206
  ## Where to Add New Code
207
207
 
208
208
  **New Slash Command:**
209
- - Primary code: `command/gsd/{command-name}.md`
210
- - Tests: `tests/command/{command-name}.test.js` (if testing implemented)
209
+ - Primary code: `commands/gsd/{command-name}.md`
210
+ - Tests: `tests/commands/{command-name}.test.js` (if testing implemented)
211
211
  - Documentation: Update `README.md` with new command
212
212
 
213
213
  **New Template:**
@@ -220,7 +220,7 @@ get-shit-done/
220
220
 
221
221
  **New Reference Document:**
222
222
  - Implementation: `get-shit-done/references/{name}.md`
223
- - Usage: Reference from command/workflows as needed
223
+ - Usage: Reference from commands/workflows as needed
224
224
 
225
225
  **Utilities:**
226
226
  - No utilities yet (`install.js` is monolithic)
@@ -233,8 +233,8 @@ get-shit-done/
233
233
  - Source: Copied by bin/install.js during installation
234
234
  - Committed: Yes (source of truth)
235
235
 
236
- **command/**
237
- - Purpose: Slash commands installed to ~/.config/opencode/command/
236
+ **commands/**
237
+ - Purpose: Slash commands installed to ~/.config/opencode/commands/
238
238
  - Source: Copied by bin/install.js during installation
239
239
  - Committed: Yes (source of truth)
240
240
 
@@ -457,7 +457,7 @@ it('mocks file system', () => {
457
457
  **When filling this template:**
458
458
  - Check package.json scripts for test commands
459
459
  - Find test config file (jest.config.js, vitest.config.ts)
460
- - Read 3-5 existing test files to identify patterns
460
+ - read 3-5 existing test files to identify patterns
461
461
  - Look for test utilities in tests/ or test-utils/
462
462
  - Check for coverage configuration
463
463
  - Document actual patterns used, not ideal patterns
@@ -471,7 +471,7 @@ it('mocks file system', () => {
471
471
 
472
472
  **Analysis approach:**
473
473
  - Check package.json for test framework and scripts
474
- - Read test config file for coverage, setup
474
+ - read test config file for coverage, setup
475
475
  - Examine test file organization (collocated vs separate)
476
476
  - Review 5 test files for patterns (mocking, structure, assertions)
477
477
  - Look for test utilities, fixtures, factories