gsd-opencode 1.3.31

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 (68) hide show
  1. package/bin/install.js +222 -0
  2. package/command/gsd/add-phase.md +207 -0
  3. package/command/gsd/complete-milestone.md +105 -0
  4. package/command/gsd/consider-issues.md +201 -0
  5. package/command/gsd/create-roadmap.md +115 -0
  6. package/command/gsd/discuss-milestone.md +47 -0
  7. package/command/gsd/discuss-phase.md +60 -0
  8. package/command/gsd/execute-plan.md +128 -0
  9. package/command/gsd/help.md +315 -0
  10. package/command/gsd/insert-phase.md +227 -0
  11. package/command/gsd/list-phase-assumptions.md +50 -0
  12. package/command/gsd/map-codebase.md +84 -0
  13. package/command/gsd/new-milestone.md +59 -0
  14. package/command/gsd/new-project.md +316 -0
  15. package/command/gsd/pause-work.md +122 -0
  16. package/command/gsd/plan-fix.md +205 -0
  17. package/command/gsd/plan-phase.md +67 -0
  18. package/command/gsd/progress.md +316 -0
  19. package/command/gsd/remove-phase.md +338 -0
  20. package/command/gsd/research-phase.md +91 -0
  21. package/command/gsd/resume-work.md +40 -0
  22. package/command/gsd/verify-work.md +71 -0
  23. package/get-shit-done/references/checkpoints.md +287 -0
  24. package/get-shit-done/references/continuation-format.md +255 -0
  25. package/get-shit-done/references/git-integration.md +254 -0
  26. package/get-shit-done/references/plan-format.md +428 -0
  27. package/get-shit-done/references/principles.md +157 -0
  28. package/get-shit-done/references/questioning.md +162 -0
  29. package/get-shit-done/references/research-pitfalls.md +215 -0
  30. package/get-shit-done/references/scope-estimation.md +172 -0
  31. package/get-shit-done/references/tdd.md +263 -0
  32. package/get-shit-done/templates/codebase/architecture.md +255 -0
  33. package/get-shit-done/templates/codebase/concerns.md +310 -0
  34. package/get-shit-done/templates/codebase/conventions.md +307 -0
  35. package/get-shit-done/templates/codebase/integrations.md +280 -0
  36. package/get-shit-done/templates/codebase/stack.md +186 -0
  37. package/get-shit-done/templates/codebase/structure.md +285 -0
  38. package/get-shit-done/templates/codebase/testing.md +480 -0
  39. package/get-shit-done/templates/config.json +18 -0
  40. package/get-shit-done/templates/context.md +161 -0
  41. package/get-shit-done/templates/continue-here.md +78 -0
  42. package/get-shit-done/templates/discovery.md +146 -0
  43. package/get-shit-done/templates/issues.md +32 -0
  44. package/get-shit-done/templates/milestone-archive.md +123 -0
  45. package/get-shit-done/templates/milestone-context.md +93 -0
  46. package/get-shit-done/templates/milestone.md +115 -0
  47. package/get-shit-done/templates/phase-prompt.md +303 -0
  48. package/get-shit-done/templates/project.md +184 -0
  49. package/get-shit-done/templates/research.md +529 -0
  50. package/get-shit-done/templates/roadmap.md +196 -0
  51. package/get-shit-done/templates/state.md +210 -0
  52. package/get-shit-done/templates/summary.md +273 -0
  53. package/get-shit-done/templates/uat-issues.md +143 -0
  54. package/get-shit-done/workflows/complete-milestone.md +643 -0
  55. package/get-shit-done/workflows/create-milestone.md +416 -0
  56. package/get-shit-done/workflows/create-roadmap.md +481 -0
  57. package/get-shit-done/workflows/discovery-phase.md +293 -0
  58. package/get-shit-done/workflows/discuss-milestone.md +236 -0
  59. package/get-shit-done/workflows/discuss-phase.md +247 -0
  60. package/get-shit-done/workflows/execute-phase.md +1625 -0
  61. package/get-shit-done/workflows/list-phase-assumptions.md +178 -0
  62. package/get-shit-done/workflows/map-codebase.md +434 -0
  63. package/get-shit-done/workflows/plan-phase.md +488 -0
  64. package/get-shit-done/workflows/research-phase.md +436 -0
  65. package/get-shit-done/workflows/resume-project.md +287 -0
  66. package/get-shit-done/workflows/transition.md +580 -0
  67. package/get-shit-done/workflows/verify-work.md +202 -0
  68. package/package.json +38 -0
@@ -0,0 +1,59 @@
1
+ ---
2
+ name: gsd:new-milestone
3
+ description: Create a new milestone with phases for an existing project
4
+ argument-hint: "[milestone name, e.g., 'v2.0 Features']"
5
+ ---
6
+
7
+ <objective>
8
+ Create a new milestone for an existing project with defined phases.
9
+
10
+ Purpose: After completing a milestone (or when ready to define next chunk of work), creates the milestone structure in ROADMAP.md with phases, updates STATE.md, and creates phase directories.
11
+ Output: New milestone in ROADMAP.md, updated STATE.md, phase directories created
12
+ </objective>
13
+
14
+ <execution_context>
15
+ @~/.config/opencode/get-shit-done/workflows/create-milestone.md
16
+ @~/.config/opencode/get-shit-done/templates/roadmap.md
17
+ </execution_context>
18
+
19
+ <context>
20
+ Milestone name: $ARGUMENTS (optional - will prompt if not provided)
21
+
22
+ **Load project state first:**
23
+ @.planning/STATE.md
24
+
25
+ **Load roadmap:**
26
+ @.planning/ROADMAP.md
27
+
28
+ **Load milestones (if exists):**
29
+ @.planning/MILESTONES.md
30
+ </context>
31
+
32
+ <process>
33
+ 1. Load project context (STATE.md, ROADMAP.md, MILESTONES.md)
34
+ 2. Calculate next milestone version and starting phase number
35
+ 3. If milestone name provided in arguments, use it; otherwise prompt
36
+ 4. Gather phases (per depth setting: quick 3-5, standard 5-8, comprehensive 8-12):
37
+ - If called from /gsd:discuss-milestone, use provided context
38
+ - Otherwise, prompt for phase breakdown
39
+ 5. Detect research needs for each phase
40
+ 6. Confirm phases (respect config.json gate settings)
41
+ 7. Follow create-milestone.md workflow:
42
+ - Update ROADMAP.md with new milestone section
43
+ - Create phase directories
44
+ - Update STATE.md for new milestone
45
+ - Git commit milestone creation
46
+ 8. Offer next steps (discuss first phase, plan first phase, review)
47
+ </process>
48
+
49
+ <success_criteria>
50
+
51
+ - Next phase number calculated correctly (continues from previous milestone)
52
+ - Phases defined per depth setting (quick: 3-5, standard: 5-8, comprehensive: 8-12)
53
+ - Research flags assigned for each phase
54
+ - ROADMAP.md updated with new milestone section
55
+ - Phase directories created
56
+ - STATE.md reset for new milestone
57
+ - Git commit made
58
+ - User knows next steps
59
+ </success_criteria>
@@ -0,0 +1,316 @@
1
+ ---
2
+ name: gsd:new-project
3
+ description: Initialize a new project with deep context gathering and PROJECT.md
4
+ allowed-tools:
5
+ - Read
6
+ - Bash
7
+ - Write
8
+ - question
9
+ ---
10
+
11
+ <objective>
12
+
13
+ Initialize a new project through comprehensive context gathering.
14
+
15
+ This is the most leveraged moment in any project. Deep questioning here means better plans, better execution, better outcomes.
16
+
17
+ Creates `.planning/` with PROJECT.md and config.json.
18
+
19
+ </objective>
20
+
21
+ <execution_context>
22
+
23
+ @~/.config/opencode/get-shit-done/references/principles.md
24
+ @~/.config/opencode/get-shit-done/references/questioning.md
25
+ @~/.config/opencode/get-shit-done/templates/project.md
26
+ @~/.config/opencode/get-shit-done/templates/config.json
27
+
28
+ </execution_context>
29
+
30
+ <process>
31
+
32
+ <step name="setup">
33
+
34
+ **MANDATORY FIRST STEP — Execute these checks before ANY user interaction:**
35
+
36
+ 1. **Abort if project exists:**
37
+ ```bash
38
+ [ -f .planning/PROJECT.md ] && echo "ERROR: Project already initialized. Use /gsd:progress" && exit 1
39
+ ```
40
+
41
+ 2. **Initialize git repo in THIS directory** (required even if inside a parent repo):
42
+ ```bash
43
+ # Check if THIS directory is already a git repo root (handles .git file for worktrees too)
44
+ if [ -d .git ] || [ -f .git ]; then
45
+ echo "Git repo exists in current directory"
46
+ else
47
+ git init
48
+ echo "Initialized new git repo"
49
+ fi
50
+ ```
51
+
52
+ 3. **Detect existing code (brownfield detection):**
53
+ ```bash
54
+ # Check for existing code files
55
+ CODE_FILES=$(find . -name "*.ts" -o -name "*.js" -o -name "*.py" -o -name "*.go" -o -name "*.rs" -o -name "*.swift" -o -name "*.java" 2>/dev/null | grep -v node_modules | grep -v .git | head -20)
56
+ HAS_PACKAGE=$([ -f package.json ] || [ -f requirements.txt ] || [ -f Cargo.toml ] || [ -f go.mod ] || [ -f Package.swift ] && echo "yes")
57
+ HAS_CODEBASE_MAP=$([ -d .planning/codebase ] && echo "yes")
58
+ ```
59
+
60
+ **You MUST run all bash commands above using the Bash tool before proceeding.**
61
+
62
+ </step>
63
+
64
+ <step name="brownfield_offer">
65
+
66
+ **If existing code detected and .planning/codebase/ doesn't exist:**
67
+
68
+ Check the results from setup step:
69
+ - If `CODE_FILES` is non-empty OR `HAS_PACKAGE` is "yes"
70
+ - AND `HAS_CODEBASE_MAP` is NOT "yes"
71
+
72
+ Use question:
73
+ - header: "Existing Code"
74
+ - question: "I detected existing code in this directory. Would you like to map the codebase first?"
75
+ - options:
76
+ - "Map codebase first" — Run /gsd:map-codebase to understand existing architecture (Recommended)
77
+ - "Skip mapping" — Proceed with project initialization
78
+
79
+ **If "Map codebase first":**
80
+ ```
81
+ Run `/gsd:map-codebase` first, then return to `/gsd:new-project`
82
+ ```
83
+ Exit command.
84
+
85
+ **If "Skip mapping":** Continue to question step.
86
+
87
+ **If no existing code detected OR codebase already mapped:** Continue to question step.
88
+
89
+ </step>
90
+
91
+ <step name="question">
92
+
93
+ **1. Open (FREEFORM — do NOT use question):**
94
+
95
+ Ask inline: "What do you want to build?"
96
+
97
+ Wait for their freeform response. This gives you the context needed to ask intelligent follow-up questions.
98
+
99
+ **2. Follow the thread (NOW use question):**
100
+
101
+ Based on their response, use question with options that probe what they mentioned:
102
+ - header: "[Topic they mentioned]"
103
+ - question: "You mentioned [X] — what would that look like?"
104
+ - options: 2-3 interpretations + "Something else"
105
+
106
+ **3. Sharpen the core:**
107
+
108
+ Use question:
109
+ - header: "Core"
110
+ - question: "If you could only nail one thing, what would it be?"
111
+ - options: Key aspects they've mentioned + "All equally important" + "Something else"
112
+
113
+ **4. Find boundaries:**
114
+
115
+ Use question:
116
+ - header: "Scope"
117
+ - question: "What's explicitly NOT in v1?"
118
+ - options: Things that might be tempting + "Nothing specific" + "Let me list them"
119
+
120
+ **5. Ground in reality:**
121
+
122
+ Use question:
123
+ - header: "Constraints"
124
+ - question: "Any hard constraints?"
125
+ - options: Relevant constraint types + "None" + "Yes, let me explain"
126
+
127
+ **6. Decision gate:**
128
+
129
+ Use question:
130
+ - header: "Ready?"
131
+ - question: "Ready to create PROJECT.md, or explore more?"
132
+ - options (ALL THREE REQUIRED):
133
+ - "Create PROJECT.md" — Finalize and continue
134
+ - "Ask more questions" — I'll dig deeper
135
+ - "Let me add context" — You have more to share
136
+
137
+ If "Ask more questions" → check coverage gaps from `questioning.md` → return to step 2.
138
+ If "Let me add context" → receive input via their response → return to step 2.
139
+ Loop until "Create PROJECT.md" selected.
140
+
141
+ </step>
142
+
143
+ <step name="project">
144
+
145
+ Synthesize all context into `.planning/PROJECT.md` using the template from `templates/project.md`.
146
+
147
+ **For greenfield projects:**
148
+
149
+ Initialize requirements as hypotheses:
150
+
151
+ ```markdown
152
+ ## Requirements
153
+
154
+ ### Validated
155
+
156
+ (None yet — ship to validate)
157
+
158
+ ### Active
159
+
160
+ - [ ] [Requirement 1]
161
+ - [ ] [Requirement 2]
162
+ - [ ] [Requirement 3]
163
+
164
+ ### Out of Scope
165
+
166
+ - [Exclusion 1] — [why]
167
+ - [Exclusion 2] — [why]
168
+ ```
169
+
170
+ All Active requirements are hypotheses until shipped and validated.
171
+
172
+ **For brownfield projects (codebase map exists):**
173
+
174
+ Infer Validated requirements from existing code:
175
+
176
+ 1. Read `.planning/codebase/ARCHITECTURE.md` and `STACK.md`
177
+ 2. Identify what the codebase already does
178
+ 3. These become the initial Validated set
179
+
180
+ ```markdown
181
+ ## Requirements
182
+
183
+ ### Validated
184
+
185
+ - ✓ [Existing capability 1] — existing
186
+ - ✓ [Existing capability 2] — existing
187
+ - ✓ [Existing capability 3] — existing
188
+
189
+ ### Active
190
+
191
+ - [ ] [New requirement 1]
192
+ - [ ] [New requirement 2]
193
+
194
+ ### Out of Scope
195
+
196
+ - [Exclusion 1] — [why]
197
+ ```
198
+
199
+ **Key Decisions:**
200
+
201
+ Initialize with any decisions made during questioning:
202
+
203
+ ```markdown
204
+ ## Key Decisions
205
+
206
+ | Decision | Rationale | Outcome |
207
+ |----------|-----------|---------|
208
+ | [Choice from questioning] | [Why] | — Pending |
209
+ ```
210
+
211
+ **Last updated footer:**
212
+
213
+ ```markdown
214
+ ---
215
+ *Last updated: [date] after initialization*
216
+ ```
217
+
218
+ Do not compress. Capture everything gathered.
219
+
220
+ </step>
221
+
222
+ <step name="mode">
223
+
224
+ Ask workflow mode preference:
225
+
226
+ Use question:
227
+
228
+ - header: "Mode"
229
+ - question: "How do you want to work?"
230
+ - options:
231
+ - "Interactive" — Confirm at each step
232
+ - "YOLO" — Auto-approve, just execute
233
+
234
+ </step>
235
+
236
+ <step name="depth">
237
+
238
+ Ask planning depth preference:
239
+
240
+ Use question:
241
+
242
+ - header: "Depth"
243
+ - question: "How thorough should planning be?"
244
+ - options:
245
+ - "Quick" — Ship fast, minimal phases/plans (3-5 phases, 1-3 plans each)
246
+ - "Standard" — Balanced scope and speed (5-8 phases, 3-5 plans each)
247
+ - "Comprehensive" — Thorough coverage, more phases/plans (8-12 phases, 5-10 plans each)
248
+
249
+ **Depth controls compression tolerance, not artificial inflation.** All depths use 2-3 tasks per plan. Comprehensive means "don't compress complex work"—it doesn't mean "pad simple work to hit a number."
250
+
251
+ Create `.planning/config.json` with chosen mode and depth using `templates/config.json` structure.
252
+
253
+ </step>
254
+
255
+ <step name="commit">
256
+
257
+ ```bash
258
+ git add .planning/PROJECT.md .planning/config.json
259
+ git commit -m "$(cat <<'EOF'
260
+ docs: initialize [project-name]
261
+
262
+ [One-liner from PROJECT.md]
263
+
264
+ Creates PROJECT.md with requirements and constraints.
265
+ EOF
266
+ )"
267
+ ```
268
+
269
+ </step>
270
+
271
+ <step name="done">
272
+
273
+ Present completion with next steps (see ~/.config/opencode/get-shit-done/references/continuation-format.md):
274
+
275
+ ```
276
+ Project initialized:
277
+
278
+ - Project: .planning/PROJECT.md
279
+ - Config: .planning/config.json (mode: [chosen mode])
280
+ [If .planning/codebase/ exists:] - Codebase: .planning/codebase/ (7 documents)
281
+
282
+ ---
283
+
284
+ ## ▶ Next Up
285
+
286
+ **[Project Name]** — create roadmap
287
+
288
+ `/gsd:create-roadmap`
289
+
290
+ *`/clear` first → fresh context window*
291
+
292
+ ---
293
+
294
+ ```
295
+
296
+ </step>
297
+
298
+ </process>
299
+
300
+ <output>
301
+
302
+ - `.planning/PROJECT.md`
303
+ - `.planning/config.json`
304
+
305
+ </output>
306
+
307
+ <success_criteria>
308
+
309
+ - [ ] Deep questioning completed (not rushed)
310
+ - [ ] PROJECT.md captures full context with evolutionary structure
311
+ - [ ] Requirements initialized as hypotheses (greenfield) or with inferred Validated (brownfield)
312
+ - [ ] Key Decisions table initialized
313
+ - [ ] config.json has workflow mode
314
+ - [ ] All committed to git
315
+
316
+ </success_criteria>
@@ -0,0 +1,122 @@
1
+ ---
2
+ name: gsd:pause-work
3
+ description: Create context handoff when pausing work mid-phase
4
+ allowed-tools:
5
+ - Read
6
+ - Write
7
+ - Bash
8
+ ---
9
+
10
+ <objective>
11
+ Create `.continue-here.md` handoff file to preserve complete work state across sessions.
12
+
13
+ Enables seamless resumption in fresh session with full context restoration.
14
+ </objective>
15
+
16
+ <context>
17
+ @.planning/STATE.md
18
+ </context>
19
+
20
+ <process>
21
+
22
+ <step name="detect">
23
+ Find current phase directory from most recently modified files.
24
+ </step>
25
+
26
+ <step name="gather">
27
+ **Collect complete state for handoff:**
28
+
29
+ 1. **Current position**: Which phase, which plan, which task
30
+ 2. **Work completed**: What got done this session
31
+ 3. **Work remaining**: What's left in current plan/phase
32
+ 4. **Decisions made**: Key decisions and rationale
33
+ 5. **Blockers/issues**: Anything stuck
34
+ 6. **Mental context**: The approach, next steps, "vibe"
35
+ 7. **Files modified**: What's changed but not committed
36
+
37
+ Ask user for clarifications if needed.
38
+ </step>
39
+
40
+ <step name="write">
41
+ **Write handoff to `.planning/phases/XX-name/.continue-here.md`:**
42
+
43
+ ```markdown
44
+ ---
45
+ phase: XX-name
46
+ task: 3
47
+ total_tasks: 7
48
+ status: in_progress
49
+ last_updated: [timestamp]
50
+ ---
51
+
52
+ <current_state>
53
+ [Where exactly are we? Immediate context]
54
+ </current_state>
55
+
56
+ <completed_work>
57
+
58
+ - Task 1: [name] - Done
59
+ - Task 2: [name] - Done
60
+ - Task 3: [name] - In progress, [what's done]
61
+ </completed_work>
62
+
63
+ <remaining_work>
64
+
65
+ - Task 3: [what's left]
66
+ - Task 4: Not started
67
+ - Task 5: Not started
68
+ </remaining_work>
69
+
70
+ <decisions_made>
71
+
72
+ - Decided to use [X] because [reason]
73
+ - Chose [approach] over [alternative] because [reason]
74
+ </decisions_made>
75
+
76
+ <blockers>
77
+ - [Blocker 1]: [status/workaround]
78
+ </blockers>
79
+
80
+ <context>
81
+ [Mental state, what were you thinking, the plan]
82
+ </context>
83
+
84
+ <next_action>
85
+ Start with: [specific first action when resuming]
86
+ </next_action>
87
+ ```
88
+
89
+ Be specific enough for a fresh Claude to understand immediately.
90
+ </step>
91
+
92
+ <step name="commit">
93
+ ```bash
94
+ git add .planning/phases/*/.continue-here.md
95
+ git commit -m "wip: [phase-name] paused at task [X]/[Y]"
96
+ ```
97
+ </step>
98
+
99
+ <step name="confirm">
100
+ ```
101
+ ✓ Handoff created: .planning/phases/[XX-name]/.continue-here.md
102
+
103
+ Current state:
104
+
105
+ - Phase: [XX-name]
106
+ - Task: [X] of [Y]
107
+ - Status: [in_progress/blocked]
108
+ - Committed as WIP
109
+
110
+ To resume: /gsd:resume-work
111
+
112
+ ```
113
+ </step>
114
+
115
+ </process>
116
+
117
+ <success_criteria>
118
+ - [ ] .continue-here.md created in correct phase directory
119
+ - [ ] All sections filled with specific content
120
+ - [ ] Committed as WIP
121
+ - [ ] User knows location and how to resume
122
+ </success_criteria>
@@ -0,0 +1,205 @@
1
+ ---
2
+ name: gsd:plan-fix
3
+ description: Plan fixes for UAT issues from verify-work
4
+ argument-hint: "[plan, e.g., '04-02']"
5
+ allowed-tools:
6
+ - Read
7
+ - Bash
8
+ - Write
9
+ - Glob
10
+ - Grep
11
+ - question
12
+ ---
13
+
14
+ <objective>
15
+ Create FIX.md plan from UAT issues found during verify-work.
16
+
17
+ Purpose: Plan fixes for issues logged in phase-scoped ISSUES.md files.
18
+ Output: {plan}-FIX.md in the phase directory, ready for execution.
19
+ </objective>
20
+
21
+ <execution_context>
22
+ @~/.config/opencode/get-shit-done/references/plan-format.md
23
+ @~/.config/opencode/get-shit-done/references/checkpoints.md
24
+ </execution_context>
25
+
26
+ <context>
27
+ Plan number: $ARGUMENTS (required - e.g., "04-02" or "09-01")
28
+
29
+ **Load project state:**
30
+ @.planning/STATE.md
31
+ @.planning/ROADMAP.md
32
+ </context>
33
+
34
+ <process>
35
+
36
+ <step name="parse">
37
+ **Parse plan argument:**
38
+
39
+ $ARGUMENTS should be a plan number like "04-02" or "09-01".
40
+ Extract phase number (XX) and plan number (NN).
41
+
42
+ If no argument provided:
43
+ ```
44
+ Error: Plan number required.
45
+
46
+ Usage: /gsd:plan-fix 04-02
47
+
48
+ This creates a fix plan from .planning/phases/XX-name/04-02-ISSUES.md
49
+ ```
50
+ Exit.
51
+ </step>
52
+
53
+ <step name="find">
54
+ **Find ISSUES.md file:**
55
+
56
+ Search for matching ISSUES.md:
57
+ ```bash
58
+ ls .planning/phases/*/{plan}-ISSUES.md 2>/dev/null
59
+ ```
60
+
61
+ If not found:
62
+ ```
63
+ No ISSUES.md found for plan {plan}.
64
+
65
+ ISSUES.md files are created by /gsd:verify-work when UAT finds issues.
66
+ If no issues were found during testing, no fix plan is needed.
67
+ ```
68
+ Exit.
69
+ </step>
70
+
71
+ <step name="read">
72
+ **Read issues:**
73
+
74
+ Read the ISSUES.md file.
75
+ Parse each issue:
76
+ - ID (UAT-XXX)
77
+ - Title
78
+ - Severity (critical/major/minor)
79
+ - Description/steps to reproduce
80
+ - Acceptance criteria
81
+
82
+ Count total issues by severity.
83
+ </step>
84
+
85
+ <step name="plan">
86
+ **Create fix tasks:**
87
+
88
+ For each issue (or logical group):
89
+ - Create one task per issue OR
90
+ - Group related minor issues into single task
91
+
92
+ Task structure:
93
+ ```xml
94
+ <task type="auto">
95
+ <name>Fix UAT-001: [issue title]</name>
96
+ <files>[affected files from issue]</files>
97
+ <action>
98
+ [What to fix based on issue description]
99
+ [Reference original acceptance criteria]
100
+ </action>
101
+ <verify>[Test that issue is resolved]</verify>
102
+ <done>[Issue acceptance criteria met]</done>
103
+ </task>
104
+ ```
105
+
106
+ Prioritize: critical → major → minor
107
+ </step>
108
+
109
+ <step name="write">
110
+ **Write FIX.md:**
111
+
112
+ Create `.planning/phases/XX-name/{plan}-FIX.md`:
113
+
114
+ ```markdown
115
+ ---
116
+ phase: XX-name
117
+ plan: {plan}-FIX
118
+ type: fix
119
+ ---
120
+
121
+ <objective>
122
+ Fix {N} UAT issues from plan {plan}.
123
+
124
+ Source: {plan}-ISSUES.md
125
+ Priority: {critical count} critical, {major count} major, {minor count} minor
126
+ </objective>
127
+
128
+ <execution_context>
129
+ @~/.config/opencode/get-shit-done/workflows/execute-phase.md
130
+ @~/.config/opencode/get-shit-done/templates/summary.md
131
+ </execution_context>
132
+
133
+ <context>
134
+ @.planning/STATE.md
135
+ @.planning/ROADMAP.md
136
+
137
+ **Issues being fixed:**
138
+ @.planning/phases/XX-name/{plan}-ISSUES.md
139
+
140
+ **Original plan for reference:**
141
+ @.planning/phases/XX-name/{plan}-PLAN.md
142
+ </context>
143
+
144
+ <tasks>
145
+ [Generated fix tasks]
146
+ </tasks>
147
+
148
+ <verification>
149
+ Before declaring plan complete:
150
+ - [ ] All critical issues fixed
151
+ - [ ] All major issues fixed
152
+ - [ ] Minor issues fixed or documented as deferred
153
+ - [ ] Original acceptance criteria from issues met
154
+ </verification>
155
+
156
+ <success_criteria>
157
+ - All UAT issues from {plan}-ISSUES.md addressed
158
+ - Tests pass
159
+ - Ready for re-verification
160
+ </success_criteria>
161
+
162
+ <output>
163
+ After completion, create `.planning/phases/XX-name/{plan}-FIX-SUMMARY.md`
164
+ </output>
165
+ ```
166
+ </step>
167
+
168
+ <step name="offer">
169
+ **Offer execution:**
170
+
171
+ ```
172
+ ---
173
+
174
+ ## ✓ Fix Plan Created
175
+
176
+ **{plan}-FIX.md** — {N} issues to fix
177
+
178
+ | Severity | Count |
179
+ |----------|-------|
180
+ | Critical | {n} |
181
+ | Major | {n} |
182
+ | Minor | {n} |
183
+
184
+ ---
185
+
186
+ Would you like to:
187
+ 1. Execute the fix plan now
188
+ 2. Review the plan first
189
+ 3. Modify the plan before executing
190
+
191
+ ---
192
+ ```
193
+
194
+ Use question to get response.
195
+ If execute: `/gsd:execute-plan .planning/phases/XX-name/{plan}-FIX.md`
196
+ </step>
197
+
198
+ </process>
199
+
200
+ <success_criteria>
201
+ - [ ] ISSUES.md found and parsed
202
+ - [ ] Fix tasks created for each issue
203
+ - [ ] FIX.md written with proper structure
204
+ - [ ] User offered to execute or review
205
+ </success_criteria>