gsd-opencode 1.4.15 → 1.5.2
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.
- package/bin/install.js +1 -1
- package/command/gsd/add-phase.md +14 -12
- package/command/gsd/add-todo.md +8 -6
- package/command/gsd/check-todos.md +12 -10
- package/command/gsd/complete-milestone.md +8 -8
- package/command/gsd/consider-issues.md +5 -5
- package/command/gsd/create-roadmap.md +7 -7
- package/command/gsd/debug.md +4 -4
- package/command/gsd/discuss-milestone.md +4 -4
- package/command/gsd/discuss-phase.md +2 -2
- package/command/gsd/execute-phase.md +4 -4
- package/command/gsd/execute-plan.md +3 -3
- package/command/gsd/help.md +76 -76
- package/command/gsd/insert-phase.md +10 -10
- package/command/gsd/list-phase-assumptions.md +2 -2
- package/command/gsd/map-codebase.md +5 -5
- package/command/gsd/new-milestone.md +3 -3
- package/command/gsd/new-project.md +7 -7
- package/command/gsd/pause-work.md +3 -3
- package/command/gsd/plan-fix.md +6 -6
- package/command/gsd/plan-phase.md +5 -5
- package/command/gsd/progress.md +29 -29
- package/command/gsd/remove-phase.md +9 -7
- package/command/gsd/research-phase.md +2 -2
- package/command/gsd/resume-work.md +1 -1
- package/command/gsd/status.md +7 -7
- package/command/gsd/verify-work.md +3 -3
- package/get-shit-done/references/checkpoints.md +22 -22
- package/get-shit-done/references/continuation-format.md +28 -28
- package/get-shit-done/references/git-integration.md +4 -4
- package/get-shit-done/references/plan-format.md +25 -25
- package/get-shit-done/references/principles.md +14 -14
- package/get-shit-done/references/questioning.md +2 -2
- package/get-shit-done/references/research-pitfalls.md +2 -2
- package/get-shit-done/references/scope-estimation.md +3 -3
- package/get-shit-done/templates/DEBUG.md +7 -7
- package/get-shit-done/templates/agent-history.md +1 -1
- package/get-shit-done/templates/checkpoint-return.md +2 -2
- package/get-shit-done/templates/codebase/architecture.md +1 -1
- package/get-shit-done/templates/codebase/concerns.md +1 -1
- package/get-shit-done/templates/codebase/conventions.md +1 -1
- package/get-shit-done/templates/context.md +4 -4
- package/get-shit-done/templates/continue-here.md +1 -1
- package/get-shit-done/templates/discovery.md +2 -2
- package/get-shit-done/templates/milestone-context.md +9 -9
- package/get-shit-done/templates/phase-prompt.md +4 -4
- package/get-shit-done/templates/project.md +2 -2
- package/get-shit-done/templates/research.md +2 -2
- package/get-shit-done/templates/state.md +3 -3
- package/get-shit-done/templates/uat-issues.md +7 -7
- package/get-shit-done/workflows/_archive/execute-phase.md +14 -14
- package/get-shit-done/workflows/complete-milestone.md +3 -3
- package/get-shit-done/workflows/create-milestone.md +9 -9
- package/get-shit-done/workflows/create-roadmap.md +6 -6
- package/get-shit-done/workflows/debug.md +4 -4
- package/get-shit-done/workflows/discovery-phase.md +4 -4
- package/get-shit-done/workflows/discuss-milestone.md +8 -8
- package/get-shit-done/workflows/discuss-phase.md +5 -5
- package/get-shit-done/workflows/execute-phase.md +5 -5
- package/get-shit-done/workflows/execute-plan.md +19 -19
- package/get-shit-done/workflows/list-phase-assumptions.md +11 -11
- package/get-shit-done/workflows/map-codebase.md +4 -4
- package/get-shit-done/workflows/plan-phase.md +13 -13
- package/get-shit-done/workflows/research-phase.md +13 -13
- package/get-shit-done/workflows/resume-project.md +14 -14
- package/get-shit-done/workflows/transition.md +8 -8
- package/get-shit-done/workflows/verify-work.md +4 -4
- package/package.json +1 -1
|
@@ -231,14 +231,14 @@ Each plan produces 2-4 commits (tasks + metadata). Clear, granular, bisectable.
|
|
|
231
231
|
## Why Per-Task Commits?
|
|
232
232
|
|
|
233
233
|
**Context engineering for AI:**
|
|
234
|
-
- Git history becomes primary context source for future
|
|
234
|
+
- Git history becomes primary context source for future OpenCode sessions
|
|
235
235
|
- `git log --grep="{phase}-{plan}"` shows all work for a plan
|
|
236
236
|
- `git diff <hash>^..<hash>` shows exact changes per task
|
|
237
237
|
- Less reliance on parsing SUMMARY.md = more context for actual work
|
|
238
238
|
|
|
239
239
|
**Failure recovery:**
|
|
240
240
|
- Task 1 committed ✅, Task 2 failed ❌
|
|
241
|
-
-
|
|
241
|
+
- OpenCode in next session: sees task 1 complete, can retry task 2
|
|
242
242
|
- Can `git reset --hard` to last successful task
|
|
243
243
|
|
|
244
244
|
**Debugging:**
|
|
@@ -247,8 +247,8 @@ Each plan produces 2-4 commits (tasks + metadata). Clear, granular, bisectable.
|
|
|
247
247
|
- Each commit is independently revertable
|
|
248
248
|
|
|
249
249
|
**Observability:**
|
|
250
|
-
- Solo developer +
|
|
250
|
+
- Solo developer + OpenCode workflow benefits from granular attribution
|
|
251
251
|
- Atomic commits are git best practice
|
|
252
|
-
- "Commit noise" irrelevant when consumer is
|
|
252
|
+
- "Commit noise" irrelevant when consumer is OpenCode, not humans
|
|
253
253
|
|
|
254
254
|
</commit_strategy_rationale>
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
<overview>
|
|
2
|
-
|
|
2
|
+
OpenCode-executable plans have a specific format that enables OpenCode to implement without interpretation. This reference defines what makes a plan executable vs. vague.
|
|
3
3
|
|
|
4
|
-
**Key insight:** PLAN.md IS the executable prompt. It contains everything
|
|
4
|
+
**Key insight:** PLAN.md IS the executable prompt. It contains everything OpenCode needs to execute the phase, including objective, context references, tasks, verification, success criteria, and output specification.
|
|
5
5
|
</overview>
|
|
6
6
|
|
|
7
7
|
<core_principle>
|
|
8
|
-
A plan is
|
|
8
|
+
A plan is OpenCode-executable when OpenCode can read the PLAN.md and immediately start implementing without asking clarifying questions.
|
|
9
9
|
|
|
10
|
-
If
|
|
10
|
+
If OpenCode has to guess, interpret, or make assumptions - the task is too vague.
|
|
11
11
|
</core_principle>
|
|
12
12
|
|
|
13
13
|
<frontmatter>
|
|
@@ -37,7 +37,7 @@ domain: [optional] # Domain skill if loaded
|
|
|
37
37
|
| `autonomous` | Yes | `true` if no checkpoints, `false` if has checkpoints |
|
|
38
38
|
| `domain` | No | Domain skill if loaded (e.g., `next-js`) |
|
|
39
39
|
|
|
40
|
-
**Wave is pre-computed:** `/gsd
|
|
40
|
+
**Wave is pre-computed:** `/gsd-plan-phase` assigns wave numbers based on `depends_on`. `/gsd-execute-phase` reads `wave` directly from frontmatter and groups plans by wave number. No runtime dependency analysis needed.
|
|
41
41
|
|
|
42
42
|
**Checkpoint handling:** Plans with `autonomous: false` require user interaction. They run in their assigned wave but pause at checkpoints.
|
|
43
43
|
</frontmatter>
|
|
@@ -88,7 +88,7 @@ Output: [...]
|
|
|
88
88
|
</task>
|
|
89
89
|
|
|
90
90
|
<task type="checkpoint:human-verify" gate="blocking">
|
|
91
|
-
<what-built>[what
|
|
91
|
+
<what-built>[what OpenCode automated]</what-built>
|
|
92
92
|
<how-to-verify>[numbered verification steps]</how-to-verify>
|
|
93
93
|
<resume-signal>[how to continue - "approved" or describe issues]</resume-signal>
|
|
94
94
|
</task>
|
|
@@ -170,7 +170,7 @@ Should be testable without subjective judgment.
|
|
|
170
170
|
Tasks have a `type` attribute that determines how they execute:
|
|
171
171
|
|
|
172
172
|
<type name="auto">
|
|
173
|
-
**Default task type** -
|
|
173
|
+
**Default task type** - OpenCode executes autonomously.
|
|
174
174
|
|
|
175
175
|
**Structure:**
|
|
176
176
|
|
|
@@ -184,11 +184,11 @@ Tasks have a `type` attribute that determines how they execute:
|
|
|
184
184
|
</task>
|
|
185
185
|
```
|
|
186
186
|
|
|
187
|
-
Use for: Everything
|
|
187
|
+
Use for: Everything OpenCode can do independently (code, tests, builds, file operations).
|
|
188
188
|
</type>
|
|
189
189
|
|
|
190
190
|
<type name="checkpoint:human-action">
|
|
191
|
-
**RARELY USED** - Only for actions with NO CLI/API.
|
|
191
|
+
**RARELY USED** - Only for actions with NO CLI/API. OpenCode automates everything possible first.
|
|
192
192
|
|
|
193
193
|
**Structure:**
|
|
194
194
|
|
|
@@ -196,10 +196,10 @@ Use for: Everything Claude can do independently (code, tests, builds, file opera
|
|
|
196
196
|
<task type="checkpoint:human-action" gate="blocking">
|
|
197
197
|
<action>[Unavoidable manual step - email link, 2FA code]</action>
|
|
198
198
|
<instructions>
|
|
199
|
-
[What
|
|
199
|
+
[What OpenCode already automated]
|
|
200
200
|
[The ONE thing requiring human action]
|
|
201
201
|
</instructions>
|
|
202
|
-
<verification>[What
|
|
202
|
+
<verification>[What OpenCode can check afterward]</verification>
|
|
203
203
|
<resume-signal>[How to continue]</resume-signal>
|
|
204
204
|
</task>
|
|
205
205
|
```
|
|
@@ -208,11 +208,11 @@ Use ONLY for: Email verification links, SMS 2FA codes, manual approvals with no
|
|
|
208
208
|
|
|
209
209
|
Do NOT use for: Anything with a CLI (Vercel, Stripe, Upstash, Railway, GitHub), builds, tests, file creation, deployments.
|
|
210
210
|
|
|
211
|
-
**Execution:**
|
|
211
|
+
**Execution:** OpenCode automates everything with CLI/API, stops only for truly unavoidable manual steps.
|
|
212
212
|
</type>
|
|
213
213
|
|
|
214
214
|
<type name="checkpoint:human-verify">
|
|
215
|
-
**Human must verify
|
|
215
|
+
**Human must verify OpenCode's work** - Visual checks, UX testing.
|
|
216
216
|
|
|
217
217
|
**Structure:**
|
|
218
218
|
|
|
@@ -233,7 +233,7 @@ Do NOT use for: Anything with a CLI (Vercel, Stripe, Upstash, Railway, GitHub),
|
|
|
233
233
|
|
|
234
234
|
Use for: UI/UX verification, visual design checks, animation smoothness, accessibility testing.
|
|
235
235
|
|
|
236
|
-
**Execution:**
|
|
236
|
+
**Execution:** OpenCode builds the feature, stops, provides testing instructions, waits for approval/feedback.
|
|
237
237
|
</type>
|
|
238
238
|
|
|
239
239
|
<type name="checkpoint:decision">
|
|
@@ -268,23 +268,23 @@ Use for: UI/UX verification, visual design checks, animation smoothness, accessi
|
|
|
268
268
|
|
|
269
269
|
Use for: Technology selection, architecture decisions, design choices, feature prioritization.
|
|
270
270
|
|
|
271
|
-
**Execution:**
|
|
271
|
+
**Execution:** OpenCode presents options with balanced pros/cons, waits for decision, proceeds with chosen direction.
|
|
272
272
|
</type>
|
|
273
273
|
|
|
274
274
|
**When to use checkpoints:**
|
|
275
275
|
|
|
276
|
-
- Visual/UX verification (after
|
|
276
|
+
- Visual/UX verification (after OpenCode builds) → `checkpoint:human-verify`
|
|
277
277
|
- Implementation direction choice → `checkpoint:decision`
|
|
278
278
|
- Truly unavoidable manual actions (email links, 2FA) → `checkpoint:human-action` (rare)
|
|
279
279
|
|
|
280
280
|
**When NOT to use checkpoints:**
|
|
281
281
|
|
|
282
|
-
- Anything with CLI/API (
|
|
282
|
+
- Anything with CLI/API (OpenCode automates it) → `type="auto"`
|
|
283
283
|
- Deployments (Vercel, Railway, Fly) → `type="auto"` with CLI
|
|
284
284
|
- Creating resources (Upstash, Stripe, GitHub) → `type="auto"` with CLI/API
|
|
285
285
|
- File operations, tests, builds → `type="auto"`
|
|
286
286
|
|
|
287
|
-
**Golden rule:** If
|
|
287
|
+
**Golden rule:** If OpenCode CAN automate it, OpenCode MUST automate it.
|
|
288
288
|
|
|
289
289
|
**Checkpoint impact on parallelization:**
|
|
290
290
|
- Plans with checkpoints set `autonomous: false` in frontmatter
|
|
@@ -341,7 +341,7 @@ Use @file references to load context for the prompt:
|
|
|
341
341
|
</context>
|
|
342
342
|
```
|
|
343
343
|
|
|
344
|
-
Reference files that
|
|
344
|
+
Reference files that OpenCode needs to understand before implementing.
|
|
345
345
|
|
|
346
346
|
**Anti-pattern:** Reflexive chaining (02 refs 01, 03 refs 02). Only reference what you actually need.
|
|
347
347
|
</context_references>
|
|
@@ -401,7 +401,7 @@ After completion, create `.planning/phases/XX-name/{phase}-{plan}-SUMMARY.md`
|
|
|
401
401
|
</task>
|
|
402
402
|
```
|
|
403
403
|
|
|
404
|
-
|
|
404
|
+
OpenCode: "How? What type? What library? Where?"
|
|
405
405
|
</too_vague>
|
|
406
406
|
|
|
407
407
|
<just_right>
|
|
@@ -416,7 +416,7 @@ Claude: "How? What type? What library? Where?"
|
|
|
416
416
|
</task>
|
|
417
417
|
```
|
|
418
418
|
|
|
419
|
-
|
|
419
|
+
OpenCode can implement this immediately.
|
|
420
420
|
</just_right>
|
|
421
421
|
|
|
422
422
|
<note_on_tdd>
|
|
@@ -426,7 +426,7 @@ If email validation warrants TDD, create a TDD plan for it. See `./tdd.md` for T
|
|
|
426
426
|
</note_on_tdd>
|
|
427
427
|
|
|
428
428
|
<too_detailed>
|
|
429
|
-
Writing the actual code in the plan. Trust
|
|
429
|
+
Writing the actual code in the plan. Trust OpenCode to implement from clear instructions.
|
|
430
430
|
</too_detailed>
|
|
431
431
|
</specificity_levels>
|
|
432
432
|
|
|
@@ -438,7 +438,7 @@ Writing the actual code in the plan. Trust Claude to implement from clear instru
|
|
|
438
438
|
- "Make it production-ready"
|
|
439
439
|
- "Add proper error handling"
|
|
440
440
|
|
|
441
|
-
These require
|
|
441
|
+
These require OpenCode to decide WHAT to do. Specify it.
|
|
442
442
|
</vague_actions>
|
|
443
443
|
|
|
444
444
|
<unverifiable_completion>
|
|
@@ -457,12 +457,12 @@ These require subjective judgment. Make it objective.
|
|
|
457
457
|
- "Follow best practices"
|
|
458
458
|
- "Like the other endpoints"
|
|
459
459
|
|
|
460
|
-
|
|
460
|
+
OpenCode doesn't know your standards. Be explicit.
|
|
461
461
|
</missing_context>
|
|
462
462
|
</anti_patterns>
|
|
463
463
|
|
|
464
464
|
<sizing_tasks>
|
|
465
|
-
Good task size: 15-60 minutes of
|
|
465
|
+
Good task size: 15-60 minutes of OpenCode work.
|
|
466
466
|
|
|
467
467
|
**Too small**: "Add import statement for bcrypt" (combine with related task)
|
|
468
468
|
**Just right**: "Create login endpoint with JWT validation" (focused, specific)
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
<principles>
|
|
2
2
|
Core principles for the Gets Shit Done planning system.
|
|
3
3
|
|
|
4
|
-
<
|
|
4
|
+
<solo_developer_opencode>
|
|
5
5
|
|
|
6
|
-
You are planning for ONE person (the user) and ONE implementer (
|
|
6
|
+
You are planning for ONE person (the user) and ONE implementer (OpenCode).
|
|
7
7
|
- No teams, stakeholders, ceremonies, coordination overhead
|
|
8
8
|
- User is the visionary/product owner
|
|
9
|
-
-
|
|
10
|
-
- Estimate effort in
|
|
11
|
-
</
|
|
9
|
+
- OpenCode is the builder
|
|
10
|
+
- Estimate effort in OpenCode execution time, not human dev time
|
|
11
|
+
</solo_developer_opencode>
|
|
12
12
|
|
|
13
13
|
<plans_are_prompts>
|
|
14
14
|
|
|
@@ -47,20 +47,20 @@ Plans must complete within reasonable context usage.
|
|
|
47
47
|
- Better to have many small plans than few large ones
|
|
48
48
|
</scope_control>
|
|
49
49
|
|
|
50
|
-
<
|
|
50
|
+
<opencode_automates>
|
|
51
51
|
|
|
52
|
-
If
|
|
52
|
+
If OpenCode CAN do it via CLI/API/tool, OpenCode MUST do it.
|
|
53
53
|
|
|
54
54
|
Checkpoints are for:
|
|
55
|
-
- **Verification** - Human confirms
|
|
55
|
+
- **Verification** - Human confirms OpenCode's work (visual, UX)
|
|
56
56
|
- **Decision** - Human makes implementation choice
|
|
57
57
|
|
|
58
58
|
Not for:
|
|
59
59
|
- Deploying (use CLI)
|
|
60
60
|
- Creating resources (use CLI/API)
|
|
61
|
-
- Running builds/tests (use
|
|
62
|
-
- Writing files (use
|
|
63
|
-
</
|
|
61
|
+
- Running builds/tests (use bash tool)
|
|
62
|
+
- Writing files (use write/edit tools)
|
|
63
|
+
</opencode_automates>
|
|
64
64
|
|
|
65
65
|
<deviation_rules>
|
|
66
66
|
|
|
@@ -121,7 +121,7 @@ Milestones mark shipped versions (v1.0 → v1.1 → v2.0).
|
|
|
121
121
|
|
|
122
122
|
<atomic_commits>
|
|
123
123
|
|
|
124
|
-
**Git commits = context engineering for
|
|
124
|
+
**Git commits = context engineering for OpenCode.**
|
|
125
125
|
|
|
126
126
|
Each task gets its own commit immediately after completion:
|
|
127
127
|
- Format: `{type}({phase}-{plan}): {task-description}`
|
|
@@ -129,7 +129,7 @@ Each task gets its own commit immediately after completion:
|
|
|
129
129
|
- One final metadata commit per plan: `docs({phase}-{plan}): complete [plan-name]`
|
|
130
130
|
|
|
131
131
|
**Why per-task commits:**
|
|
132
|
-
- Git history becomes primary context source for future
|
|
132
|
+
- Git history becomes primary context source for future OpenCode sessions
|
|
133
133
|
- `git bisect` finds exact failing task, not just failing plan
|
|
134
134
|
- Each task independently revertable
|
|
135
135
|
- Better failure recovery (task 1 committed ✅, retry task 2)
|
|
@@ -148,7 +148,7 @@ NEVER include:
|
|
|
148
148
|
- Team structures, RACI matrices
|
|
149
149
|
- Stakeholder management
|
|
150
150
|
- Sprint ceremonies
|
|
151
|
-
- Human dev time estimates (hours, days, weeks—
|
|
151
|
+
- Human dev time estimates (hours, days, weeks—OpenCode works differently)
|
|
152
152
|
- Change management processes
|
|
153
153
|
- Documentation for documentation's sake
|
|
154
154
|
|
|
@@ -85,7 +85,7 @@ Use question:
|
|
|
85
85
|
**BAD — Corporate speak:**
|
|
86
86
|
- "What are your success criteria?"
|
|
87
87
|
- "What's your budget?"
|
|
88
|
-
- "Have you done X before?" (irrelevant —
|
|
88
|
+
- "Have you done X before?" (irrelevant — OpenCode builds)
|
|
89
89
|
|
|
90
90
|
**GOOD — Concrete options that help them think:**
|
|
91
91
|
- header: "Done"
|
|
@@ -155,7 +155,7 @@ Loop until "Create PROJECT.md" selected.
|
|
|
155
155
|
- **Corporate speak** - "What are your success criteria?" "Who are your stakeholders?"
|
|
156
156
|
- **Rushing** - Minimizing questions to get to "the work"
|
|
157
157
|
- **Assuming** - Filling gaps with assumptions instead of asking
|
|
158
|
-
- **User skills** - NEVER ask about user's technical experience.
|
|
158
|
+
- **User skills** - NEVER ask about user's technical experience. OpenCode builds — user's skills are irrelevant.
|
|
159
159
|
- **Premature constraints** - Asking about tech stack before understanding the idea
|
|
160
160
|
- **Shallow acceptance** - Taking vague answers without probing for specifics
|
|
161
161
|
</anti_patterns>
|
|
@@ -58,13 +58,13 @@ Search queries (use WebSearch):
|
|
|
58
58
|
|
|
59
59
|
<pitfall_tool_variations>
|
|
60
60
|
**What**: Conflating capabilities across different tools/environments
|
|
61
|
-
**Example**: "
|
|
61
|
+
**Example**: "OpenCode or Desktop supports X" ≠ "OpenCode supports X"
|
|
62
62
|
**Why it happens**: Not explicitly checking each environment separately
|
|
63
63
|
**Prevention**:
|
|
64
64
|
```xml
|
|
65
65
|
<verification_checklist>
|
|
66
|
-
□ Claude Desktop capabilities
|
|
67
66
|
□ OpenCode capabilities
|
|
67
|
+
□ OpenCode or Desktop capabilities
|
|
68
68
|
□ VS Code extension capabilities
|
|
69
69
|
□ API/SDK capabilities
|
|
70
70
|
Document which environment supports which features
|
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
Plans must maintain consistent quality from first task to last. This requires understanding quality degradation and splitting aggressively.
|
|
3
3
|
|
|
4
4
|
<quality_insight>
|
|
5
|
-
|
|
5
|
+
OpenCode degrades when it *perceives* context pressure and enters "completion mode."
|
|
6
6
|
|
|
7
|
-
| Context Usage | Quality |
|
|
7
|
+
| Context Usage | Quality | OpenCode's State |
|
|
8
8
|
|---------------|---------|----------------|
|
|
9
9
|
| 0-30% | PEAK | Thorough, comprehensive |
|
|
10
10
|
| 30-50% | GOOD | Confident, solid work |
|
|
11
11
|
| 50-70% | DEGRADING | Efficiency mode begins |
|
|
12
12
|
| 70%+ | POOR | Rushed, minimal |
|
|
13
13
|
|
|
14
|
-
**The 40-50% inflection point:**
|
|
14
|
+
**The 40-50% inflection point:** OpenCode sees context mounting and thinks "I'd better conserve now." Result: "I'll complete the remaining tasks more concisely" = quality crash.
|
|
15
15
|
|
|
16
16
|
**The rule:** Stop BEFORE quality degrades, not at context limit.
|
|
17
17
|
</quality_insight>
|
|
@@ -32,7 +32,7 @@ reproduction: [how to trigger]
|
|
|
32
32
|
started: [when it broke / always broken]
|
|
33
33
|
|
|
34
34
|
## Eliminated
|
|
35
|
-
<!-- APPEND only - prevents re-investigating after /
|
|
35
|
+
<!-- APPEND only - prevents re-investigating after /new -->
|
|
36
36
|
|
|
37
37
|
- hypothesis: [theory that was wrong]
|
|
38
38
|
evidence: [what disproved it]
|
|
@@ -67,8 +67,8 @@ files_changed: []
|
|
|
67
67
|
|
|
68
68
|
**Current Focus:**
|
|
69
69
|
- OVERWRITE entirely on each update
|
|
70
|
-
- Always reflects what
|
|
71
|
-
- If
|
|
70
|
+
- Always reflects what OpenCode is doing RIGHT NOW
|
|
71
|
+
- If OpenCode reads this after /new, it knows exactly where to resume
|
|
72
72
|
- Fields: hypothesis, test, expecting, next_action
|
|
73
73
|
|
|
74
74
|
**Symptoms:**
|
|
@@ -81,7 +81,7 @@ files_changed: []
|
|
|
81
81
|
- APPEND only - never remove entries
|
|
82
82
|
- Prevents re-investigating dead ends after context reset
|
|
83
83
|
- Each entry: hypothesis, evidence that disproved it, timestamp
|
|
84
|
-
- Critical for efficiency across /
|
|
84
|
+
- Critical for efficiency across /new boundaries
|
|
85
85
|
|
|
86
86
|
**Evidence:**
|
|
87
87
|
- APPEND only - never remove entries
|
|
@@ -99,7 +99,7 @@ files_changed: []
|
|
|
99
99
|
|
|
100
100
|
<lifecycle>
|
|
101
101
|
|
|
102
|
-
**Creation:** Immediately when /gsd
|
|
102
|
+
**Creation:** Immediately when /gsd-debug is called
|
|
103
103
|
- Create file with trigger from user input
|
|
104
104
|
- Set status to "gathering"
|
|
105
105
|
- Current Focus: next_action = "gather symptoms"
|
|
@@ -135,7 +135,7 @@ files_changed: []
|
|
|
135
135
|
|
|
136
136
|
<resume_behavior>
|
|
137
137
|
|
|
138
|
-
When
|
|
138
|
+
When OpenCode reads this file after /new:
|
|
139
139
|
|
|
140
140
|
1. Parse frontmatter → know status
|
|
141
141
|
2. Read Current Focus → know exactly what was happening
|
|
@@ -143,7 +143,7 @@ When Claude reads this file after /clear:
|
|
|
143
143
|
4. Read Evidence → know what's been learned
|
|
144
144
|
5. Continue from next_action
|
|
145
145
|
|
|
146
|
-
The file IS the debugging brain.
|
|
146
|
+
The file IS the debugging brain. OpenCode should be able to resume perfectly from any interruption point.
|
|
147
147
|
|
|
148
148
|
</resume_behavior>
|
|
149
149
|
|
|
@@ -230,7 +230,7 @@ jq '.entries[] | select(.status == "spawned" and .parallel_group != null)' .plan
|
|
|
230
230
|
|
|
231
231
|
### Resume Command
|
|
232
232
|
|
|
233
|
-
`/gsd
|
|
233
|
+
`/gsd-resume-task` accepts:
|
|
234
234
|
- No argument: Resume most recent interrupted agent
|
|
235
235
|
- Agent ID: Resume specific agent
|
|
236
236
|
- `--batch`: Resume entire parallel group
|
|
@@ -63,7 +63,7 @@ Type "approved" or describe issues to fix.
|
|
|
63
63
|
### Checkpoint Details
|
|
64
64
|
|
|
65
65
|
**Automation attempted:**
|
|
66
|
-
[What
|
|
66
|
+
[What OpenCode tried to do]
|
|
67
67
|
|
|
68
68
|
**Error encountered:**
|
|
69
69
|
[Exact error message or auth failure]
|
|
@@ -73,7 +73,7 @@ Type "approved" or describe issues to fix.
|
|
|
73
73
|
2. [Step 2]
|
|
74
74
|
|
|
75
75
|
**I'll verify after:**
|
|
76
|
-
[How
|
|
76
|
+
[How OpenCode will confirm completion]
|
|
77
77
|
|
|
78
78
|
### Awaiting
|
|
79
79
|
|
|
@@ -238,7 +238,7 @@ Template for `.planning/codebase/ARCHITECTURE.md` - captures conceptual code org
|
|
|
238
238
|
- Implementation details of specific features
|
|
239
239
|
|
|
240
240
|
**File paths ARE welcome:**
|
|
241
|
-
Include file paths as concrete examples of abstractions. Use backtick formatting: `src/services/user.ts`. This makes the architecture document actionable for
|
|
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
244
|
- Read main entry points (index, server, main)
|
|
@@ -302,7 +302,7 @@ Template for `.planning/codebase/CONCERNS.md` - captures known issues and areas
|
|
|
302
302
|
- Estimating risk of changes
|
|
303
303
|
- Understanding where to be careful
|
|
304
304
|
- Prioritizing improvements
|
|
305
|
-
- Onboarding new
|
|
305
|
+
- Onboarding new OpenCode contexts
|
|
306
306
|
- Planning refactoring work
|
|
307
307
|
|
|
308
308
|
**How this gets populated:**
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Template for `.planning/codebase/CONVENTIONS.md` - captures coding style and patterns.
|
|
4
4
|
|
|
5
|
-
**Purpose:** Document how code is written in this codebase. Prescriptive guide for
|
|
5
|
+
**Purpose:** Document how code is written in this codebase. Prescriptive guide for OpenCode to match existing style.
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -116,10 +116,10 @@ The user is the visionary. They know:
|
|
|
116
116
|
- References to things they like
|
|
117
117
|
|
|
118
118
|
The user does NOT know (and shouldn't be asked):
|
|
119
|
-
- Codebase patterns (
|
|
120
|
-
- Technical risks (
|
|
121
|
-
- Implementation constraints (
|
|
122
|
-
- Success metrics (
|
|
119
|
+
- Codebase patterns (OpenCode reads the code)
|
|
120
|
+
- Technical risks (OpenCode identifies during research)
|
|
121
|
+
- Implementation constraints (OpenCode figures out)
|
|
122
|
+
- Success metrics (OpenCode infers from the work)
|
|
123
123
|
|
|
124
124
|
**Content should read like:**
|
|
125
125
|
- A founder describing their product vision
|
|
@@ -71,7 +71,7 @@ Required YAML frontmatter:
|
|
|
71
71
|
</yaml_fields>
|
|
72
72
|
|
|
73
73
|
<guidelines>
|
|
74
|
-
- Be specific enough that a fresh
|
|
74
|
+
- Be specific enough that a fresh OpenCode instance understands immediately
|
|
75
75
|
- Include WHY decisions were made, not just what
|
|
76
76
|
- The `<next_action>` should be actionable without reading anything else
|
|
77
77
|
- This file gets DELETED after resume - it's not permanent storage
|
|
@@ -4,7 +4,7 @@ Template for `.planning/phases/XX-name/DISCOVERY.md` - shallow research for libr
|
|
|
4
4
|
|
|
5
5
|
**Purpose:** Answer "which library/option should we use" questions during mandatory discovery in plan-phase.
|
|
6
6
|
|
|
7
|
-
For deep ecosystem research ("how do experts build this"), use `/gsd
|
|
7
|
+
For deep ecosystem research ("how do experts build this"), use `/gsd-research-phase` which produces RESEARCH.md.
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
@@ -142,5 +142,5 @@ Create `.planning/phases/XX-name/DISCOVERY.md`:
|
|
|
142
142
|
- Niche/complex domains (3D, games, audio, shaders)
|
|
143
143
|
- Need ecosystem knowledge, not just library choice
|
|
144
144
|
- "How do experts build this" questions
|
|
145
|
-
- Use `/gsd
|
|
145
|
+
- Use `/gsd-research-phase` for these
|
|
146
146
|
</guidelines>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Template for `.planning/MILESTONE-CONTEXT.md` - temporary handoff file from discuss-milestone to create-milestone.
|
|
4
4
|
|
|
5
|
-
**Purpose:** Persist milestone discussion context so `/
|
|
5
|
+
**Purpose:** Persist milestone discussion context so `/new` can be used between commands. This file is consumed by `/gsd-new-milestone` and deleted after the milestone is created.
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -12,7 +12,7 @@ Template for `.planning/MILESTONE-CONTEXT.md` - temporary handoff file from disc
|
|
|
12
12
|
# Milestone Context
|
|
13
13
|
|
|
14
14
|
**Generated:** [date]
|
|
15
|
-
**Status:** Ready for /gsd
|
|
15
|
+
**Status:** Ready for /gsd-new-milestone
|
|
16
16
|
|
|
17
17
|
<features>
|
|
18
18
|
## Features to Build
|
|
@@ -64,20 +64,20 @@ Template for `.planning/MILESTONE-CONTEXT.md` - temporary handoff file from disc
|
|
|
64
64
|
|
|
65
65
|
---
|
|
66
66
|
|
|
67
|
-
*This file is temporary. It will be deleted after /gsd
|
|
67
|
+
*This file is temporary. It will be deleted after /gsd-new-milestone creates the milestone.*
|
|
68
68
|
```
|
|
69
69
|
|
|
70
70
|
<guidelines>
|
|
71
71
|
**This is a handoff artifact, not permanent documentation.**
|
|
72
72
|
|
|
73
|
-
The file exists only to pass context from `discuss-milestone` to `create-milestone` across a `/
|
|
73
|
+
The file exists only to pass context from `discuss-milestone` to `create-milestone` across a `/new` boundary.
|
|
74
74
|
|
|
75
75
|
**Lifecycle:**
|
|
76
|
-
1. `/gsd
|
|
77
|
-
2. User runs `/
|
|
78
|
-
3. `/gsd
|
|
79
|
-
4. `/gsd
|
|
80
|
-
5. `/gsd
|
|
76
|
+
1. `/gsd-discuss-milestone` creates this file at end of discussion
|
|
77
|
+
2. User runs `/new` (safe now - context is persisted)
|
|
78
|
+
3. `/gsd-new-milestone` reads this file
|
|
79
|
+
4. `/gsd-new-milestone` uses context to populate milestone
|
|
80
|
+
5. `/gsd-new-milestone` deletes this file after successful creation
|
|
81
81
|
|
|
82
82
|
**Content should include:**
|
|
83
83
|
- Features identified (the core of what to build)
|
|
@@ -85,7 +85,7 @@ Output: [What artifacts will be created]
|
|
|
85
85
|
</task>
|
|
86
86
|
|
|
87
87
|
<task type="checkpoint:human-verify" gate="blocking">
|
|
88
|
-
<what-built>[What
|
|
88
|
+
<what-built>[What OpenCode just built that needs verification]</what-built>
|
|
89
89
|
<how-to-verify>
|
|
90
90
|
1. Run: [command to start dev server/app]
|
|
91
91
|
2. Visit: [URL to check]
|
|
@@ -132,7 +132,7 @@ After completion, create `.planning/phases/XX-name/{phase}-{plan}-SUMMARY.md`
|
|
|
132
132
|
| `autonomous` | Yes | `true` if no checkpoints, `false` if has checkpoints |
|
|
133
133
|
| `domain` | No | Domain skill if loaded (e.g., `next-js`) |
|
|
134
134
|
|
|
135
|
-
**Wave is pre-computed:** Wave numbers are assigned during `/gsd
|
|
135
|
+
**Wave is pre-computed:** Wave numbers are assigned during `/gsd-plan-phase`. Execute-phase reads `wave` directly from frontmatter and groups plans by wave number. No runtime dependency analysis needed.
|
|
136
136
|
|
|
137
137
|
---
|
|
138
138
|
|
|
@@ -274,7 +274,7 @@ See `~/.config/opencode/get-shit-done/references/tdd.md` for TDD plan structure.
|
|
|
274
274
|
|
|
275
275
|
| Type | Use For | Autonomy |
|
|
276
276
|
|------|---------|----------|
|
|
277
|
-
| `auto` | Everything
|
|
277
|
+
| `auto` | Everything OpenCode can do independently | Fully autonomous |
|
|
278
278
|
| `checkpoint:human-verify` | Visual/functional verification | Pauses, returns to orchestrator |
|
|
279
279
|
| `checkpoint:decision` | Implementation choices | Pauses, returns to orchestrator |
|
|
280
280
|
| `checkpoint:human-action` | Truly unavoidable manual steps (rare) | Pauses, returns to orchestrator |
|
|
@@ -455,7 +455,7 @@ files_modified: [...]
|
|
|
455
455
|
|
|
456
456
|
## Guidelines
|
|
457
457
|
|
|
458
|
-
- Always use XML structure for
|
|
458
|
+
- Always use XML structure for OpenCode parsing
|
|
459
459
|
- Include `wave`, `depends_on`, `files_modified`, `autonomous` in every plan
|
|
460
460
|
- Prefer vertical slices over horizontal layers
|
|
461
461
|
- Only reference prior SUMMARYs when genuinely needed
|
|
@@ -147,7 +147,7 @@ PROJECT.md evolves throughout the project lifecycle.
|
|
|
147
147
|
|
|
148
148
|
For existing codebases:
|
|
149
149
|
|
|
150
|
-
1. **Map codebase first** via `/gsd
|
|
150
|
+
1. **Map codebase first** via `/gsd-map-codebase`
|
|
151
151
|
|
|
152
152
|
2. **Infer Validated requirements** from existing code:
|
|
153
153
|
- What does the codebase actually do?
|
|
@@ -179,6 +179,6 @@ See: .planning/PROJECT.md (updated [date])
|
|
|
179
179
|
**Current focus:** [Current phase name]
|
|
180
180
|
```
|
|
181
181
|
|
|
182
|
-
This ensures
|
|
182
|
+
This ensures OpenCode reads current PROJECT.md context.
|
|
183
183
|
|
|
184
184
|
</state_reference>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Template for `.planning/phases/XX-name/{phase}-RESEARCH.md` - comprehensive ecosystem research before planning.
|
|
4
4
|
|
|
5
|
-
**Purpose:** Document what
|
|
5
|
+
**Purpose:** Document what OpenCode needs to know to implement a phase well - not just "which library" but "how do experts build this."
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -501,7 +501,7 @@ function useVehicleControls(rigidBodyRef) {
|
|
|
501
501
|
|
|
502
502
|
**When to create:**
|
|
503
503
|
- Before planning phases in niche/complex domains
|
|
504
|
-
- When
|
|
504
|
+
- When OpenCode's training data is likely stale or sparse
|
|
505
505
|
- When "how do experts do this" matters more than "which library"
|
|
506
506
|
|
|
507
507
|
**Structure:**
|
|
@@ -127,7 +127,7 @@ Points to PROJECT.md for full context. Includes:
|
|
|
127
127
|
- Current focus (which phase)
|
|
128
128
|
- Last update date (triggers re-read if stale)
|
|
129
129
|
|
|
130
|
-
|
|
130
|
+
OpenCode reads PROJECT.md directly for requirements, constraints, and decisions.
|
|
131
131
|
|
|
132
132
|
### Current Position
|
|
133
133
|
Where we are right now:
|
|
@@ -158,10 +158,10 @@ Updated after each plan completion.
|
|
|
158
158
|
- Effort estimate if known
|
|
159
159
|
- Helps phase planning identify what to address
|
|
160
160
|
|
|
161
|
-
**Pending Todos:** Ideas captured via /gsd
|
|
161
|
+
**Pending Todos:** Ideas captured via /gsd-add-todo
|
|
162
162
|
- Count of pending todos
|
|
163
163
|
- Reference to .planning/todos/pending/
|
|
164
|
-
- Brief list if few, count if many (e.g., "5 pending todos — see /gsd
|
|
164
|
+
- Brief list if few, count if many (e.g., "5 pending todos — see /gsd-check-todos")
|
|
165
165
|
|
|
166
166
|
**Blockers/Concerns:** From "Next Phase Readiness" sections
|
|
167
167
|
- Issues that affect future work
|