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,481 @@
1
+ <purpose>
2
+ Define the phases of implementation. Each phase is a coherent chunk of work
3
+ that delivers value. The roadmap provides structure, not detailed tasks.
4
+ </purpose>
5
+
6
+ <required_reading>
7
+ **Read these files NOW:**
8
+
9
+ 1. ~/.config/opencode/get-shit-done/templates/roadmap.md
10
+ 2. ~/.config/opencode/get-shit-done/templates/state.md
11
+ 3. Read `.planning/PROJECT.md` if it exists
12
+ </required_reading>
13
+
14
+ <process>
15
+
16
+ <step name="check_brief">
17
+ ```bash
18
+ cat .planning/PROJECT.md 2>/dev/null || echo "No brief found"
19
+ ```
20
+
21
+ **If no brief exists:**
22
+ Ask: "No brief found. Want to create one first, or proceed with roadmap?"
23
+
24
+ If proceeding without brief, gather quick context:
25
+
26
+ - What are we building?
27
+ - What's the rough scope?
28
+ </step>
29
+
30
+
31
+ <step name="detect_domain">
32
+ Scan for available domain expertise:
33
+
34
+ ```bash
35
+ ls ~/.config/opencode/skills/expertise/ 2>/dev/null
36
+ ```
37
+
38
+ **Inference:** Based on the brief/user request, infer applicable domains:
39
+
40
+ | Keywords | Domain |
41
+ | ---------------------------------------- | ------------------------ |
42
+ | "macOS", "Mac app", "menu bar", "AppKit" | expertise/macos-apps |
43
+ | "iPhone", "iOS", "iPad", "mobile app" | expertise/iphone-apps |
44
+ | "Unity", "game", "C#", "3D game" | expertise/unity-games |
45
+ | "MIDI", "sequencer", "music app" | expertise/midi |
46
+ | "ISF", "shader", "GLSL", "visual effect" | expertise/isf-shaders |
47
+ | "UI", "design", "frontend", "Tailwind" | expertise/ui-design |
48
+ | "Agent SDK", "Claude SDK", "agentic" | expertise/with-agent-sdk |
49
+
50
+ **If domain inferred:**
51
+
52
+ ```
53
+ Detected: [domain] project → expertise/[name]
54
+ Include this domain expertise? (Y / see options / none)
55
+ ```
56
+
57
+ **If multiple domains apply** (e.g., ISF shaders for a macOS app):
58
+
59
+ ```
60
+ Detected multiple domains:
61
+ - expertise/isf-shaders (shader development)
62
+ - expertise/macos-apps (native app)
63
+
64
+ Include both? (Y / select one / none)
65
+ ```
66
+
67
+ **If no domain obvious:**
68
+
69
+ ```
70
+ Available domain expertise:
71
+ 1. macos-apps
72
+ 2. iphone-apps
73
+ [... others found ...]
74
+
75
+ N. None - proceed without domain expertise
76
+
77
+ Select (comma-separate for multiple):
78
+ ```
79
+
80
+ **Store selected paths** for inclusion in ROADMAP.md.
81
+ </step>
82
+
83
+ <step name="identify_phases">
84
+ Derive phases from the actual work needed.
85
+
86
+ **Check depth setting:**
87
+ ```bash
88
+ cat .planning/config.json 2>/dev/null | grep depth
89
+ ```
90
+
91
+ <depth_guidance>
92
+ **Depth controls compression tolerance, not artificial inflation.**
93
+
94
+ | Depth | Typical Phases | Typical Plans/Phase | Tasks/Plan |
95
+ |-------|----------------|---------------------|------------|
96
+ | Quick | 3-5 | 1-3 | 2-3 |
97
+ | Standard | 5-8 | 3-5 | 2-3 |
98
+ | Comprehensive | 8-12 | 5-10 | 2-3 |
99
+
100
+ **Key principle:** Derive phases from actual work. Depth determines how aggressively you combine things, not a target to hit.
101
+
102
+ - Comprehensive auth system = 8 phases (because auth genuinely has 8 concerns)
103
+ - Comprehensive "add favicon" = 1 phase (because that's all it is)
104
+
105
+ For comprehensive depth:
106
+ - Don't compress multiple features into single phases
107
+ - Each major capability gets its own phase
108
+ - Let small things stay small—don't pad to hit a number
109
+ - If you're tempted to combine two things, make them separate phases instead
110
+
111
+ For quick depth:
112
+ - Combine related work aggressively
113
+ - Focus on critical path only
114
+ - Defer nice-to-haves to future milestones
115
+ </depth_guidance>
116
+
117
+ **Phase Numbering System:**
118
+
119
+ Use integer phases (1, 2, 3) for planned milestone work.
120
+
121
+ Use decimal phases (2.1, 2.2) for urgent insertions:
122
+
123
+ - Decimal phases inserted between integers (2.1 between 2 and 3)
124
+ - Mark with "(INSERTED)" in phase title
125
+ - Created when urgent work discovered after planning
126
+ - Examples: bugfixes, hotfixes, critical patches
127
+
128
+ **When to use decimals:**
129
+
130
+ - Urgent work that can't wait for next milestone
131
+ - Critical bugs blocking progress
132
+ - Security patches needing immediate attention
133
+ - NOT for scope creep or "nice to haves" (those go in ISSUES.md)
134
+
135
+ **Phase execution order:**
136
+ Numeric sort: 1 → 1.1 → 1.2 → 2 → 2.1 → 3
137
+
138
+ **Deriving phases:**
139
+
140
+ 1. List all distinct systems/features/capabilities required
141
+ 2. Group related work into coherent deliverables
142
+ 3. Each phase should deliver ONE complete, verifiable thing
143
+ 4. If a phase delivers multiple unrelated capabilities: split it
144
+ 5. If a phase can't stand alone as a complete deliverable: merge it
145
+ 6. Order by dependencies
146
+
147
+ Good phases are:
148
+
149
+ - **Coherent**: Each delivers one complete, verifiable capability
150
+ - **Sequential**: Later phases build on earlier
151
+ - **Independent**: Can be verified and committed on its own
152
+
153
+ Common phase patterns:
154
+
155
+ - Foundation → Core Feature → Enhancement → Polish
156
+ - Setup → MVP → Iteration → Launch
157
+ - Infrastructure → Backend → Frontend → Integration
158
+ </step>
159
+
160
+ <step name="detect_research_needs">
161
+ **For each phase, determine if research is likely needed.**
162
+
163
+ Scan the brief and phase descriptions for research triggers:
164
+
165
+ <research_triggers>
166
+ **Likely (flag the phase):**
167
+
168
+ | Trigger Pattern | Why Research Needed |
169
+ | ----------------------------------------------------- | --------------------------------------- |
170
+ | "integrate [service]", "connect to [API]" | External API - need current docs |
171
+ | "authentication", "auth", "login", "JWT" | Architectural decision + library choice |
172
+ | "payment", "billing", "Stripe", "subscription" | External API + compliance patterns |
173
+ | "email", "SMS", "notifications", "SendGrid", "Twilio" | External service integration |
174
+ | "database", "Postgres", "MongoDB", "Supabase" | If new to project - setup patterns |
175
+ | "real-time", "websocket", "sync", "live updates" | Architectural decision |
176
+ | "deploy", "Vercel", "Railway", "hosting" | If first deployment - config patterns |
177
+ | "choose between", "select", "evaluate", "which" | Explicit decision needed |
178
+ | "AI", "OpenAI", "Claude", "LLM", "embeddings" | Fast-moving APIs - need current docs |
179
+ | Any technology not already in codebase | New integration |
180
+ | Explicit questions in brief | Unknowns flagged by user |
181
+
182
+ **Unlikely (no flag needed):**
183
+
184
+ | Pattern | Why No Research |
185
+ | ------------------------------------------- | ----------------------- |
186
+ | "add button", "create form", "update UI" | Internal patterns |
187
+ | "CRUD operations", "list/detail views" | Standard patterns |
188
+ | "refactor", "reorganize", "clean up" | Internal work |
189
+ | "following existing patterns" | Conventions established |
190
+ | Technology already in package.json/codebase | Patterns exist |
191
+
192
+ </research_triggers>
193
+
194
+ **For each phase, assign:**
195
+
196
+ - `Research: Likely ([reason])` + `Research topics: [what to investigate]`
197
+ - `Research: Unlikely ([reason])`
198
+
199
+ **Important:** These are hints, not mandates. The mandatory_discovery step during phase planning will validate.
200
+
201
+ Present research assessment:
202
+
203
+ ```
204
+ Research needs detected:
205
+
206
+ Phase 1: Foundation
207
+ Research: Unlikely (project setup, established patterns)
208
+
209
+ Phase 2: Authentication
210
+ Research: Likely (new system, technology choice)
211
+ Topics: JWT library for [stack], session strategy, auth provider options
212
+
213
+ Phase 3: Stripe Integration
214
+ Research: Likely (external API)
215
+ Topics: Current Stripe API, webhook patterns, checkout flow
216
+
217
+ Phase 4: Dashboard
218
+ Research: Unlikely (internal UI using patterns from earlier phases)
219
+
220
+ Does this look right? (yes / adjust)
221
+ ```
222
+
223
+ </step>
224
+
225
+ <step name="confirm_phases">
226
+ <config-check>
227
+ ```bash
228
+ cat .planning/config.json 2>/dev/null
229
+ ```
230
+ Note: Config may not exist yet (project initialization). If missing, default to interactive mode.
231
+ </config-check>
232
+
233
+ <if mode="yolo">
234
+ ```
235
+ ⚡ Auto-approved: Phase breakdown ([N] phases)
236
+
237
+ 1. [Phase name] - [goal]
238
+ 2. [Phase name] - [goal]
239
+ 3. [Phase name] - [goal]
240
+
241
+ Proceeding to research detection...
242
+ ```
243
+
244
+ Proceed directly to detect_research_needs step.
245
+ </if>
246
+
247
+ <if mode="interactive" OR="missing OR custom with gates.confirm_phases true">
248
+ Present the phase breakdown inline:
249
+
250
+ "Here's how I'd break this down:
251
+
252
+ 1. [Phase name] - [goal]
253
+ 2. [Phase name] - [goal]
254
+ 3. [Phase name] - [goal]
255
+ ...
256
+
257
+ Does this feel right? (yes / adjust)"
258
+
259
+ If "adjust": Ask what to change, revise, present again.
260
+ </step>
261
+
262
+ <step name="decision_gate">
263
+ <if mode="yolo">
264
+ ```
265
+ ⚡ Auto-approved: Create roadmap with [N] phases
266
+
267
+ Proceeding to create .planning/ROADMAP.md...
268
+ ```
269
+
270
+ Proceed directly to create_structure step.
271
+ </if>
272
+
273
+ <if mode="interactive" OR="missing OR custom with gates.confirm_roadmap true">
274
+ Use AskUserQuestion:
275
+
276
+ - header: "Ready"
277
+ - question: "Ready to create the roadmap, or would you like me to ask more questions?"
278
+ - options:
279
+ - "Create roadmap" - I have enough context
280
+ - "Ask more questions" - There are details to clarify
281
+ - "Let me add context" - I want to provide more information
282
+
283
+ Loop until "Create roadmap" selected.
284
+ </step>
285
+
286
+ <step name="create_structure">
287
+ ```bash
288
+ mkdir -p .planning/phases
289
+ ```
290
+ </step>
291
+
292
+ <step name="write_roadmap">
293
+ Use template from `~/.config/opencode/get-shit-done/templates/roadmap.md`.
294
+
295
+ Initial roadmaps use integer phases (1, 2, 3...).
296
+ Decimal phases added later via /gsd:insert-phase command (if it exists).
297
+
298
+ Write to `.planning/ROADMAP.md` with:
299
+
300
+ - Domain Expertise section (paths from detect_domain step, or "None" if skipped)
301
+ - Phase list with names and one-line descriptions
302
+ - Dependencies (what must complete before what)
303
+ - **Research flags** (from detect_research_needs step):
304
+ - `Research: Likely ([reason])` with `Research topics:` for flagged phases
305
+ - `Research: Unlikely ([reason])` for unflagged phases
306
+ - Status tracking (all start as "not started")
307
+
308
+ Create phase directories:
309
+
310
+ ```bash
311
+ mkdir -p .planning/phases/01-{phase-name}
312
+ mkdir -p .planning/phases/02-{phase-name}
313
+ # etc.
314
+ ```
315
+
316
+ </step>
317
+
318
+ <step name="initialize_project_state">
319
+
320
+ Create STATE.md — the project's living memory.
321
+
322
+ Use template from `~/.config/opencode/get-shit-done/templates/state.md`.
323
+
324
+ Write to `.planning/STATE.md`:
325
+
326
+ ```markdown
327
+ # Project State
328
+
329
+ ## Project Reference
330
+
331
+ See: .planning/PROJECT.md (updated [today's date])
332
+
333
+ **Core value:** [Copy Core Value from PROJECT.md]
334
+ **Current focus:** Phase 1 — [First phase name]
335
+
336
+ ## Current Position
337
+
338
+ Phase: 1 of [N] ([First phase name])
339
+ Plan: Not started
340
+ Status: Ready to plan
341
+ Last activity: [today's date] — Project initialized
342
+
343
+ Progress: ░░░░░░░░░░ 0%
344
+
345
+ ## Performance Metrics
346
+
347
+ **Velocity:**
348
+ - Total plans completed: 0
349
+ - Average duration: —
350
+ - Total execution time: 0 hours
351
+
352
+ **By Phase:**
353
+
354
+ | Phase | Plans | Total | Avg/Plan |
355
+ |-------|-------|-------|----------|
356
+ | — | — | — | — |
357
+
358
+ **Recent Trend:**
359
+ - Last 5 plans: —
360
+ - Trend: —
361
+
362
+ ## Accumulated Context
363
+
364
+ ### Decisions
365
+
366
+ Decisions are logged in PROJECT.md Key Decisions table.
367
+ Recent decisions affecting current work:
368
+
369
+ (None yet)
370
+
371
+ ### Deferred Issues
372
+
373
+ None yet.
374
+
375
+ ### Blockers/Concerns
376
+
377
+ None yet.
378
+
379
+ ## Session Continuity
380
+
381
+ Last session: [today's date and time]
382
+ Stopped at: Project initialization complete
383
+ Resume file: None
384
+ ```
385
+
386
+ **Key points:**
387
+
388
+ - Project Reference points to PROJECT.md for full context
389
+ - Claude reads PROJECT.md directly for requirements, constraints, decisions
390
+ - This file will be read first in every future operation
391
+ - This file will be updated after every execution
392
+
393
+ </step>
394
+
395
+ <step name="git_commit_initialization">
396
+ Commit project initialization (brief + roadmap + state together):
397
+
398
+ ```bash
399
+ git add .planning/PROJECT.md .planning/ROADMAP.md .planning/STATE.md
400
+ git add .planning/phases/
401
+ # config.json if exists
402
+ git add .planning/config.json 2>/dev/null
403
+ git commit -m "$(cat <<'EOF'
404
+ docs: initialize [project-name] ([N] phases)
405
+
406
+ [One-liner from PROJECT.md]
407
+
408
+ Phases:
409
+ 1. [phase-name]: [goal]
410
+ 2. [phase-name]: [goal]
411
+ 3. [phase-name]: [goal]
412
+ EOF
413
+ )"
414
+ ```
415
+
416
+ Confirm: "Committed: docs: initialize [project] ([N] phases)"
417
+ </step>
418
+
419
+ <step name="offer_next">
420
+ ```
421
+ Project initialized:
422
+ - Brief: .planning/PROJECT.md
423
+ - Roadmap: .planning/ROADMAP.md
424
+ - State: .planning/STATE.md
425
+ - Committed as: docs: initialize [project] ([N] phases)
426
+
427
+ ---
428
+
429
+ ## ▶ Next Up
430
+
431
+ **Phase 1: [Name]** — [Goal from ROADMAP.md]
432
+
433
+ `/gsd:plan-phase 1`
434
+
435
+ <sub>`/clear` first → fresh context window</sub>
436
+
437
+ ---
438
+
439
+ **Also available:**
440
+ - `/gsd:discuss-phase 1` — gather context first
441
+ - `/gsd:research-phase 1` — investigate unknowns
442
+ - Review roadmap
443
+
444
+ ---
445
+ ```
446
+ </step>
447
+
448
+ </process>
449
+
450
+ <phase_naming>
451
+ Use `XX-kebab-case-name` format:
452
+ - `01-foundation`
453
+ - `02-authentication`
454
+ - `03-core-features`
455
+ - `04-polish`
456
+
457
+ Numbers ensure ordering. Names describe content.
458
+ </phase_naming>
459
+
460
+ <anti_patterns>
461
+ - Don't add time estimates
462
+ - Don't create Gantt charts
463
+ - Don't add resource allocation
464
+ - Don't include risk matrices
465
+ - Don't impose arbitrary phase counts (let the work determine the count)
466
+
467
+ Phases are buckets of work, not project management artifacts.
468
+ </anti_patterns>
469
+
470
+ <success_criteria>
471
+ Roadmap is complete when:
472
+ - [ ] `.planning/ROADMAP.md` exists
473
+ - [ ] `.planning/STATE.md` exists (project memory initialized)
474
+ - [ ] Phases defined with clear names (count derived from work, not imposed)
475
+ - [ ] **Research flags assigned** (Likely/Unlikely for each phase)
476
+ - [ ] **Research topics listed** for Likely phases
477
+ - [ ] Phase directories created
478
+ - [ ] Dependencies noted if any
479
+ - [ ] Status tracking in place
480
+ </success_criteria>
481
+ ```