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.
- package/bin/install.js +222 -0
- package/command/gsd/add-phase.md +207 -0
- package/command/gsd/complete-milestone.md +105 -0
- package/command/gsd/consider-issues.md +201 -0
- package/command/gsd/create-roadmap.md +115 -0
- package/command/gsd/discuss-milestone.md +47 -0
- package/command/gsd/discuss-phase.md +60 -0
- package/command/gsd/execute-plan.md +128 -0
- package/command/gsd/help.md +315 -0
- package/command/gsd/insert-phase.md +227 -0
- package/command/gsd/list-phase-assumptions.md +50 -0
- package/command/gsd/map-codebase.md +84 -0
- package/command/gsd/new-milestone.md +59 -0
- package/command/gsd/new-project.md +316 -0
- package/command/gsd/pause-work.md +122 -0
- package/command/gsd/plan-fix.md +205 -0
- package/command/gsd/plan-phase.md +67 -0
- package/command/gsd/progress.md +316 -0
- package/command/gsd/remove-phase.md +338 -0
- package/command/gsd/research-phase.md +91 -0
- package/command/gsd/resume-work.md +40 -0
- package/command/gsd/verify-work.md +71 -0
- package/get-shit-done/references/checkpoints.md +287 -0
- package/get-shit-done/references/continuation-format.md +255 -0
- package/get-shit-done/references/git-integration.md +254 -0
- package/get-shit-done/references/plan-format.md +428 -0
- package/get-shit-done/references/principles.md +157 -0
- package/get-shit-done/references/questioning.md +162 -0
- package/get-shit-done/references/research-pitfalls.md +215 -0
- package/get-shit-done/references/scope-estimation.md +172 -0
- package/get-shit-done/references/tdd.md +263 -0
- package/get-shit-done/templates/codebase/architecture.md +255 -0
- package/get-shit-done/templates/codebase/concerns.md +310 -0
- package/get-shit-done/templates/codebase/conventions.md +307 -0
- package/get-shit-done/templates/codebase/integrations.md +280 -0
- package/get-shit-done/templates/codebase/stack.md +186 -0
- package/get-shit-done/templates/codebase/structure.md +285 -0
- package/get-shit-done/templates/codebase/testing.md +480 -0
- package/get-shit-done/templates/config.json +18 -0
- package/get-shit-done/templates/context.md +161 -0
- package/get-shit-done/templates/continue-here.md +78 -0
- package/get-shit-done/templates/discovery.md +146 -0
- package/get-shit-done/templates/issues.md +32 -0
- package/get-shit-done/templates/milestone-archive.md +123 -0
- package/get-shit-done/templates/milestone-context.md +93 -0
- package/get-shit-done/templates/milestone.md +115 -0
- package/get-shit-done/templates/phase-prompt.md +303 -0
- package/get-shit-done/templates/project.md +184 -0
- package/get-shit-done/templates/research.md +529 -0
- package/get-shit-done/templates/roadmap.md +196 -0
- package/get-shit-done/templates/state.md +210 -0
- package/get-shit-done/templates/summary.md +273 -0
- package/get-shit-done/templates/uat-issues.md +143 -0
- package/get-shit-done/workflows/complete-milestone.md +643 -0
- package/get-shit-done/workflows/create-milestone.md +416 -0
- package/get-shit-done/workflows/create-roadmap.md +481 -0
- package/get-shit-done/workflows/discovery-phase.md +293 -0
- package/get-shit-done/workflows/discuss-milestone.md +236 -0
- package/get-shit-done/workflows/discuss-phase.md +247 -0
- package/get-shit-done/workflows/execute-phase.md +1625 -0
- package/get-shit-done/workflows/list-phase-assumptions.md +178 -0
- package/get-shit-done/workflows/map-codebase.md +434 -0
- package/get-shit-done/workflows/plan-phase.md +488 -0
- package/get-shit-done/workflows/research-phase.md +436 -0
- package/get-shit-done/workflows/resume-project.md +287 -0
- package/get-shit-done/workflows/transition.md +580 -0
- package/get-shit-done/workflows/verify-work.md +202 -0
- package/package.json +38 -0
|
@@ -0,0 +1,488 @@
|
|
|
1
|
+
<decimal_phase_numbering>
|
|
2
|
+
Decimal phases enable urgent work insertion without renumbering:
|
|
3
|
+
|
|
4
|
+
- Integer phases (1, 2, 3) = planned milestone work
|
|
5
|
+
- Decimal phases (2.1, 2.2) = urgent insertions between integers
|
|
6
|
+
|
|
7
|
+
**Rules:**
|
|
8
|
+
- Decimals between consecutive integers (2.1 between 2 and 3)
|
|
9
|
+
- Filesystem sorting works automatically (2 < 2.1 < 2.2 < 3)
|
|
10
|
+
- Directory format: `02.1-description/`, Plan format: `02.1-01-PLAN.md`
|
|
11
|
+
|
|
12
|
+
**Validation:** Integer X must exist and be complete, X+1 must exist, decimal X.Y must not exist, Y >= 1
|
|
13
|
+
</decimal_phase_numbering>
|
|
14
|
+
|
|
15
|
+
<required_reading>
|
|
16
|
+
**Read these files NOW:**
|
|
17
|
+
|
|
18
|
+
1. ~/.config/opencode/get-shit-done/templates/phase-prompt.md
|
|
19
|
+
2. ~/.config/opencode/get-shit-done/references/plan-format.md
|
|
20
|
+
3. ~/.config/opencode/get-shit-done/references/scope-estimation.md
|
|
21
|
+
4. ~/.config/opencode/get-shit-done/references/checkpoints.md
|
|
22
|
+
5. ~/.config/opencode/get-shit-done/references/tdd.md
|
|
23
|
+
6. .planning/ROADMAP.md
|
|
24
|
+
7. .planning/PROJECT.md
|
|
25
|
+
|
|
26
|
+
**Load domain expertise from ROADMAP:**
|
|
27
|
+
- Parse ROADMAP.md's `## Domain Expertise` section for paths
|
|
28
|
+
- Read each domain SKILL.md (these serve as indexes)
|
|
29
|
+
- Determine phase type and load ONLY references relevant to THIS phase type from each SKILL.md's `<references_index>`
|
|
30
|
+
</required_reading>
|
|
31
|
+
|
|
32
|
+
<purpose>
|
|
33
|
+
Create an executable phase prompt (PLAN.md). PLAN.md IS the prompt that Claude executes - not a document that gets transformed.
|
|
34
|
+
</purpose>
|
|
35
|
+
|
|
36
|
+
<planning_principles>
|
|
37
|
+
**Secure by design:** Assume hostile input on every boundary. Validate, parameterize, authenticate, fail closed.
|
|
38
|
+
|
|
39
|
+
**Performance by design:** Assume production load, not demo conditions. Plan for efficient data access, appropriate caching, minimal round trips.
|
|
40
|
+
|
|
41
|
+
**Observable by design:** Plan to debug your own work. Include meaningful error messages, appropriate logging, and clear failure states.
|
|
42
|
+
</planning_principles>
|
|
43
|
+
|
|
44
|
+
<process>
|
|
45
|
+
|
|
46
|
+
<step name="load_project_state" priority="first">
|
|
47
|
+
Read `.planning/STATE.md` and parse:
|
|
48
|
+
- Current position (which phase we're planning)
|
|
49
|
+
- Accumulated decisions (constraints on this phase)
|
|
50
|
+
- Deferred issues (candidates for inclusion)
|
|
51
|
+
- Blockers/concerns (things this phase may address)
|
|
52
|
+
- Brief alignment status
|
|
53
|
+
|
|
54
|
+
If STATE.md missing but .planning/ exists, offer to reconstruct or continue without.
|
|
55
|
+
</step>
|
|
56
|
+
|
|
57
|
+
<step name="load_codebase_context">
|
|
58
|
+
Check for codebase map:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
ls .planning/codebase/*.md 2>/dev/null
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**If .planning/codebase/ exists:** Load relevant documents based on phase type:
|
|
65
|
+
|
|
66
|
+
| Phase Keywords | Load These |
|
|
67
|
+
|----------------|------------|
|
|
68
|
+
| UI, frontend, components | CONVENTIONS.md, STRUCTURE.md |
|
|
69
|
+
| API, backend, endpoints | ARCHITECTURE.md, CONVENTIONS.md |
|
|
70
|
+
| database, schema, models | ARCHITECTURE.md, STACK.md |
|
|
71
|
+
| testing, tests | TESTING.md, CONVENTIONS.md |
|
|
72
|
+
| integration, external API | INTEGRATIONS.md, STACK.md |
|
|
73
|
+
| refactor, cleanup | CONCERNS.md, ARCHITECTURE.md |
|
|
74
|
+
| setup, config | STACK.md, STRUCTURE.md |
|
|
75
|
+
| (default) | STACK.md, ARCHITECTURE.md |
|
|
76
|
+
|
|
77
|
+
Track extracted constraints for PLAN.md context section.
|
|
78
|
+
</step>
|
|
79
|
+
|
|
80
|
+
<step name="identify_phase">
|
|
81
|
+
Check roadmap and existing phases:
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
cat .planning/ROADMAP.md
|
|
85
|
+
ls .planning/phases/
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
If multiple phases available, ask which one to plan. If obvious (first incomplete phase), proceed.
|
|
89
|
+
|
|
90
|
+
**Phase number parsing:** Regex `^(\d+)(?:\.(\d+))?$` - Group 1: integer, Group 2: decimal (optional)
|
|
91
|
+
|
|
92
|
+
**If decimal phase:** Validate integer X exists and is complete, X+1 exists in roadmap, decimal X.Y doesn't exist, Y >= 1.
|
|
93
|
+
|
|
94
|
+
Read any existing PLAN.md or DISCOVERY.md in the phase directory.
|
|
95
|
+
</step>
|
|
96
|
+
|
|
97
|
+
<step name="mandatory_discovery">
|
|
98
|
+
**Discovery is MANDATORY unless you can prove current context exists.**
|
|
99
|
+
|
|
100
|
+
<discovery_decision>
|
|
101
|
+
**Level 0 - Skip** (pure internal work, existing patterns only)
|
|
102
|
+
- ALL work follows established codebase patterns (grep confirms)
|
|
103
|
+
- No new external dependencies
|
|
104
|
+
- Pure internal refactoring or feature extension
|
|
105
|
+
- Examples: Add delete button, add field to model, create CRUD endpoint
|
|
106
|
+
|
|
107
|
+
**Level 1 - Quick Verification** (2-5 min)
|
|
108
|
+
- Single known library, confirming syntax/version
|
|
109
|
+
- Low-risk decision (easily changed later)
|
|
110
|
+
- Action: Context7 resolve-library-id + query-docs, no DISCOVERY.md needed
|
|
111
|
+
|
|
112
|
+
**Level 2 - Standard Research** (15-30 min)
|
|
113
|
+
- Choosing between 2-3 options
|
|
114
|
+
- New external integration (API, service)
|
|
115
|
+
- Medium-risk decision
|
|
116
|
+
- Action: Route to workflows/discovery-phase.md depth=standard, produces DISCOVERY.md
|
|
117
|
+
|
|
118
|
+
**Level 3 - Deep Dive** (1+ hour)
|
|
119
|
+
- Architectural decision with long-term impact
|
|
120
|
+
- Novel problem without clear patterns
|
|
121
|
+
- High-risk, hard to change later
|
|
122
|
+
- Action: Route to workflows/discovery-phase.md depth=deep, full DISCOVERY.md
|
|
123
|
+
|
|
124
|
+
**Depth indicators:**
|
|
125
|
+
- Level 2+: New library not in package.json, external API, "choose/select/evaluate" in description, roadmap marked Research: Yes
|
|
126
|
+
- Level 3: "architecture/design/system", multiple external services, data modeling, auth design, real-time/distributed
|
|
127
|
+
</discovery_decision>
|
|
128
|
+
|
|
129
|
+
If roadmap flagged `Research: Likely`, Level 0 (skip) is not available.
|
|
130
|
+
|
|
131
|
+
For niche domains (3D, games, audio, shaders, ML), suggest `/gsd:research-phase` before plan-phase.
|
|
132
|
+
</step>
|
|
133
|
+
|
|
134
|
+
<step name="read_project_history">
|
|
135
|
+
**Intelligent context assembly from frontmatter dependency graph:**
|
|
136
|
+
|
|
137
|
+
**1. Scan all summary frontmatter (cheap - first ~25 lines):**
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
for f in .planning/phases/*/*-SUMMARY.md; do
|
|
141
|
+
# Extract frontmatter only (between first two --- markers)
|
|
142
|
+
sed -n '1,/^---$/p; /^---$/q' "$f" | head -30
|
|
143
|
+
done
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
Parse YAML to extract: phase, subsystem, requires, provides, affects, tags, key-decisions, key-files
|
|
147
|
+
|
|
148
|
+
**2. Build dependency graph for current phase:**
|
|
149
|
+
|
|
150
|
+
- **Check affects field:** Which prior phases have current phase in their `affects` list? → Direct dependencies
|
|
151
|
+
- **Check subsystem:** Which prior phases share same subsystem? → Related work
|
|
152
|
+
- **Check requires chains:** If phase X requires phase Y, and we need X, we also need Y → Transitive dependencies
|
|
153
|
+
- **Check roadmap:** Any phases marked as dependencies in ROADMAP.md phase description?
|
|
154
|
+
|
|
155
|
+
**3. Select relevant summaries:**
|
|
156
|
+
|
|
157
|
+
Auto-select phases that match ANY of:
|
|
158
|
+
- Current phase name/number appears in prior phase's `affects` field
|
|
159
|
+
- Same `subsystem` value
|
|
160
|
+
- In `requires` chain (transitive closure)
|
|
161
|
+
- Explicitly mentioned in STATE.md decisions as affecting current phase
|
|
162
|
+
|
|
163
|
+
Typical selection: 2-4 prior phases (immediately prior + related subsystem work)
|
|
164
|
+
|
|
165
|
+
**4. Extract context from frontmatter (WITHOUT opening full summaries yet):**
|
|
166
|
+
|
|
167
|
+
From selected phases' frontmatter, extract:
|
|
168
|
+
- **Tech available:** Union of all tech-stack.added lists
|
|
169
|
+
- **Patterns established:** Union of all tech-stack.patterns and patterns-established
|
|
170
|
+
- **Key files:** Union of all key-files (for @context references)
|
|
171
|
+
- **Decisions:** Extract key-decisions from frontmatter
|
|
172
|
+
|
|
173
|
+
**5. Now read FULL summaries for selected phases:**
|
|
174
|
+
|
|
175
|
+
Only now open and read complete SUMMARY.md files for the selected relevant phases. Extract:
|
|
176
|
+
- Detailed "Accomplishments" section
|
|
177
|
+
- "Next Phase Readiness" warnings/blockers
|
|
178
|
+
- "Issues Encountered" that might affect current phase
|
|
179
|
+
- "Deviations from Plan" for patterns
|
|
180
|
+
|
|
181
|
+
**From STATE.md:** Decisions → constrain approach. Deferred issues → candidates. Blockers → may need to address.
|
|
182
|
+
|
|
183
|
+
**From ISSUES.md:**
|
|
184
|
+
|
|
185
|
+
```bash
|
|
186
|
+
cat .planning/ISSUES.md 2>/dev/null
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
Assess each open issue - relevant to this phase? Waiting long enough? Natural to address now? Blocking something?
|
|
190
|
+
|
|
191
|
+
**Answer before proceeding:**
|
|
192
|
+
- Q1: What decisions from previous phases constrain this phase?
|
|
193
|
+
- Q2: Are there deferred issues that should become tasks?
|
|
194
|
+
- Q3: Are there concerns from "Next Phase Readiness" that apply?
|
|
195
|
+
- Q4: Given all context, does the roadmap's description still make sense?
|
|
196
|
+
|
|
197
|
+
**Track for PLAN.md context section:**
|
|
198
|
+
- Which summaries were selected (for @context references)
|
|
199
|
+
- Tech stack available (from frontmatter)
|
|
200
|
+
- Established patterns (from frontmatter)
|
|
201
|
+
- Key files to reference (from frontmatter)
|
|
202
|
+
- Applicable decisions (from frontmatter + full summary)
|
|
203
|
+
- Issues being addressed (from ISSUES.md)
|
|
204
|
+
- Concerns being verified (from "Next Phase Readiness")
|
|
205
|
+
</step>
|
|
206
|
+
|
|
207
|
+
<step name="gather_phase_context">
|
|
208
|
+
Understand:
|
|
209
|
+
- Phase goal (from roadmap)
|
|
210
|
+
- What exists already (scan codebase if mid-project)
|
|
211
|
+
- Dependencies met (previous phases complete?)
|
|
212
|
+
- Any {phase}-RESEARCH.md (from /gsd:research-phase)
|
|
213
|
+
- Any DISCOVERY.md (from mandatory discovery)
|
|
214
|
+
- Any {phase}-CONTEXT.md (from /gsd:discuss-phase)
|
|
215
|
+
|
|
216
|
+
```bash
|
|
217
|
+
# If mid-project, understand current state
|
|
218
|
+
ls -la src/ 2>/dev/null
|
|
219
|
+
cat package.json 2>/dev/null | head -20
|
|
220
|
+
|
|
221
|
+
# Check for ecosystem research (from /gsd:research-phase)
|
|
222
|
+
cat .planning/phases/XX-name/${PHASE}-RESEARCH.md 2>/dev/null
|
|
223
|
+
|
|
224
|
+
# Check for phase context (from /gsd:discuss-phase)
|
|
225
|
+
cat .planning/phases/XX-name/${PHASE}-CONTEXT.md 2>/dev/null
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
**If RESEARCH.md exists:** Use standard_stack (these libraries), architecture_patterns (follow in task structure), dont_hand_roll (NEVER custom solutions for listed problems), common_pitfalls (inform verification), code_examples (reference in actions).
|
|
229
|
+
|
|
230
|
+
**If CONTEXT.md exists:** Honor vision, prioritize essential, respect boundaries, incorporate specifics.
|
|
231
|
+
|
|
232
|
+
**If neither exist:** Suggest /gsd:research-phase for niche domains, /gsd:discuss-phase for simpler domains, or proceed with roadmap only.
|
|
233
|
+
</step>
|
|
234
|
+
|
|
235
|
+
<step name="break_into_tasks">
|
|
236
|
+
Decompose phase into tasks and identify TDD candidates.
|
|
237
|
+
|
|
238
|
+
**Standard tasks need:**
|
|
239
|
+
- **Type**: auto, checkpoint:human-verify, checkpoint:decision (human-action rarely needed)
|
|
240
|
+
- **Task name**: Clear, action-oriented
|
|
241
|
+
- **Files**: Which files created/modified (for auto tasks)
|
|
242
|
+
- **Action**: Specific implementation (including what to avoid and WHY)
|
|
243
|
+
- **Verify**: How to prove it worked
|
|
244
|
+
- **Done**: Acceptance criteria
|
|
245
|
+
|
|
246
|
+
**TDD detection:** For each potential task, evaluate TDD fit:
|
|
247
|
+
|
|
248
|
+
TDD candidates (create dedicated TDD plans):
|
|
249
|
+
- Business logic with defined inputs/outputs
|
|
250
|
+
- API endpoints with request/response contracts
|
|
251
|
+
- Data transformations, parsing, formatting
|
|
252
|
+
- Validation rules and constraints
|
|
253
|
+
- Algorithms with testable behavior
|
|
254
|
+
- State machines and workflows
|
|
255
|
+
|
|
256
|
+
Standard tasks (remain in standard plans):
|
|
257
|
+
- UI layout, styling, visual components
|
|
258
|
+
- Configuration changes
|
|
259
|
+
- Glue code connecting existing components
|
|
260
|
+
- One-off scripts and migrations
|
|
261
|
+
- Simple CRUD with no business logic
|
|
262
|
+
|
|
263
|
+
**Heuristic:** Can you write `expect(fn(input)).toBe(output)` before writing `fn`?
|
|
264
|
+
→ Yes: Create a dedicated TDD plan for this feature (one feature per TDD plan)
|
|
265
|
+
→ No: Standard task in standard plan
|
|
266
|
+
|
|
267
|
+
**Why TDD gets its own plan:** TDD requires 2-3 execution cycles (RED → GREEN → REFACTOR), each with file reads, test runs, and potential debugging. Embedded in a multi-task plan, TDD work consumes 50-60% of context alone, degrading quality for remaining tasks.
|
|
268
|
+
|
|
269
|
+
**Test framework:** If project has no test setup and TDD plans are needed, the first TDD plan's RED phase handles framework setup as part of writing the first test.
|
|
270
|
+
|
|
271
|
+
See `~/.config/opencode/get-shit-done/references/tdd.md` for TDD plan structure.
|
|
272
|
+
|
|
273
|
+
**Checkpoints:** Visual/functional verification → checkpoint:human-verify. Implementation choices → checkpoint:decision. Manual action (email, 2FA) → checkpoint:human-action (rare).
|
|
274
|
+
|
|
275
|
+
**Critical:** If external resource has CLI/API (Vercel, Stripe, etc.), use type="auto" to automate. Only checkpoint for verification AFTER automation.
|
|
276
|
+
|
|
277
|
+
See ~/.config/opencode/get-shit-done/references/checkpoints.md for checkpoint structure.
|
|
278
|
+
</step>
|
|
279
|
+
|
|
280
|
+
<step name="estimate_scope">
|
|
281
|
+
After tasks, assess against quality degradation curve.
|
|
282
|
+
|
|
283
|
+
**Check depth setting:**
|
|
284
|
+
```bash
|
|
285
|
+
cat .planning/config.json 2>/dev/null | grep depth
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
<depth_aware_splitting>
|
|
289
|
+
**Depth controls compression tolerance, not artificial inflation.**
|
|
290
|
+
|
|
291
|
+
| Depth | Typical Plans/Phase | Tasks/Plan |
|
|
292
|
+
|-------|---------------------|------------|
|
|
293
|
+
| Quick | 1-3 | 2-3 |
|
|
294
|
+
| Standard | 3-5 | 2-3 |
|
|
295
|
+
| Comprehensive | 5-10 | 2-3 |
|
|
296
|
+
|
|
297
|
+
**Key principle:** Derive plans from actual work. Depth determines how aggressively you combine things, not a target to hit.
|
|
298
|
+
|
|
299
|
+
- Comprehensive auth phase = 8 plans (because auth genuinely has 8 concerns)
|
|
300
|
+
- Comprehensive "add config file" phase = 1 plan (because that's all it is)
|
|
301
|
+
|
|
302
|
+
For comprehensive depth:
|
|
303
|
+
- Create MORE plans when the work warrants it, not bigger ones
|
|
304
|
+
- If a phase has 15 tasks, that's 5-8 plans (not 3 plans with 5 tasks each)
|
|
305
|
+
- Don't compress to look efficient—thoroughness is the goal
|
|
306
|
+
- Let small phases stay small—don't pad to hit a number
|
|
307
|
+
- Each plan stays focused: 2-3 tasks, single concern
|
|
308
|
+
|
|
309
|
+
For quick depth:
|
|
310
|
+
- Combine aggressively into fewer plans
|
|
311
|
+
- 1-3 plans per phase is fine
|
|
312
|
+
- Focus on critical path
|
|
313
|
+
</depth_aware_splitting>
|
|
314
|
+
|
|
315
|
+
**ALWAYS split if:** >3 tasks, multiple subsystems, >5 files in any task, complex domains (auth, payments).
|
|
316
|
+
|
|
317
|
+
**If scope appropriate (2-3 tasks, single subsystem, <5 files/task):** Proceed to confirm_breakdown.
|
|
318
|
+
|
|
319
|
+
**If large (>3 tasks):** Split by subsystem, dependency, complexity, or autonomous vs interactive.
|
|
320
|
+
|
|
321
|
+
**Each plan must be:** 2-3 tasks max, ~50% context target, independently committable.
|
|
322
|
+
|
|
323
|
+
**Autonomous optimization:** No checkpoints → subagent (fresh context). Has checkpoints → main context. Group autonomous work together.
|
|
324
|
+
|
|
325
|
+
See ~/.config/opencode/get-shit-done/references/scope-estimation.md for complete guidance.
|
|
326
|
+
</step>
|
|
327
|
+
|
|
328
|
+
<step name="confirm_breakdown">
|
|
329
|
+
<if mode="yolo">
|
|
330
|
+
Auto-approve and proceed to write_phase_prompt.
|
|
331
|
+
</if>
|
|
332
|
+
|
|
333
|
+
<if mode="interactive">
|
|
334
|
+
Present breakdown inline:
|
|
335
|
+
|
|
336
|
+
```
|
|
337
|
+
Phase [X] breakdown:
|
|
338
|
+
|
|
339
|
+
### Tasks ({phase}-01-PLAN.md)
|
|
340
|
+
1. [Task] - [brief] [type]
|
|
341
|
+
2. [Task] - [brief] [type]
|
|
342
|
+
|
|
343
|
+
Autonomous: [yes/no]
|
|
344
|
+
|
|
345
|
+
Does this look right? (yes / adjust / start over)
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
For multiple plans, show each plan with its tasks.
|
|
349
|
+
|
|
350
|
+
Wait for confirmation. If "adjust": revise. If "start over": return to gather_phase_context.
|
|
351
|
+
</if>
|
|
352
|
+
</step>
|
|
353
|
+
|
|
354
|
+
<step name="write_phase_prompt">
|
|
355
|
+
Use template from `~/.config/opencode/get-shit-done/templates/phase-prompt.md`.
|
|
356
|
+
|
|
357
|
+
**Single plan:** Write to `.planning/phases/XX-name/{phase}-01-PLAN.md`
|
|
358
|
+
|
|
359
|
+
**Multiple plans:** Write separate files ({phase}-01-PLAN.md, {phase}-02-PLAN.md, etc.)
|
|
360
|
+
|
|
361
|
+
Each plan follows template structure with:
|
|
362
|
+
- Frontmatter (phase, plan, type, domain)
|
|
363
|
+
- Objective (plan-specific goal, purpose, output)
|
|
364
|
+
- Execution context (execute-phase.md, summary template, checkpoints.md if needed)
|
|
365
|
+
- Context (@references to PROJECT, ROADMAP, STATE, codebase docs, RESEARCH/DISCOVERY/CONTEXT if exist, prior summaries, source files, prior decisions, deferred issues, concerns)
|
|
366
|
+
- Tasks (XML format with types)
|
|
367
|
+
- Verification, Success criteria, Output specification
|
|
368
|
+
|
|
369
|
+
**Context section population from frontmatter analysis:**
|
|
370
|
+
|
|
371
|
+
Inject automatically-assembled context package from read_project_history step:
|
|
372
|
+
|
|
373
|
+
```markdown
|
|
374
|
+
<context>
|
|
375
|
+
@.planning/PROJECT.md
|
|
376
|
+
@.planning/ROADMAP.md
|
|
377
|
+
@.planning/STATE.md
|
|
378
|
+
|
|
379
|
+
# Auto-selected based on dependency graph (from frontmatter):
|
|
380
|
+
@.planning/phases/XX-name/YY-ZZ-SUMMARY.md
|
|
381
|
+
@.planning/phases/AA-name/BB-CC-SUMMARY.md
|
|
382
|
+
|
|
383
|
+
# Key files from frontmatter (relevant to this phase):
|
|
384
|
+
@path/to/important/file.ts
|
|
385
|
+
@path/to/another/file.ts
|
|
386
|
+
|
|
387
|
+
**Tech stack available:** [extracted from frontmatter tech-stack.added]
|
|
388
|
+
**Established patterns:** [extracted from frontmatter patterns-established]
|
|
389
|
+
**Constraining decisions:**
|
|
390
|
+
- [Phase X]: [decision from frontmatter]
|
|
391
|
+
- [Phase Y]: [decision from frontmatter]
|
|
392
|
+
|
|
393
|
+
**Issues being addressed:** [If any from ISSUES.md]
|
|
394
|
+
</context>
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
This ensures every PLAN.md gets optimal context automatically assembled via dependency graph, making execution as informed as possible.
|
|
398
|
+
|
|
399
|
+
For multi-plan phases: each plan has focused scope, references previous plan summaries (via frontmatter selection), last plan's success criteria includes "Phase X complete".
|
|
400
|
+
</step>
|
|
401
|
+
|
|
402
|
+
<step name="git_commit">
|
|
403
|
+
Commit phase plan(s):
|
|
404
|
+
|
|
405
|
+
```bash
|
|
406
|
+
# Stage all PLAN.md files for this phase
|
|
407
|
+
git add .planning/phases/${PHASE}-*/${PHASE}-*-PLAN.md
|
|
408
|
+
|
|
409
|
+
# Also stage DISCOVERY.md if it was created during mandatory_discovery
|
|
410
|
+
git add .planning/phases/${PHASE}-*/DISCOVERY.md 2>/dev/null
|
|
411
|
+
|
|
412
|
+
git commit -m "$(cat <<'EOF'
|
|
413
|
+
docs(${PHASE}): create phase plan
|
|
414
|
+
|
|
415
|
+
Phase ${PHASE}: ${PHASE_NAME}
|
|
416
|
+
- [N] plan(s) created
|
|
417
|
+
- [X] total tasks defined
|
|
418
|
+
- Ready for execution
|
|
419
|
+
EOF
|
|
420
|
+
)"
|
|
421
|
+
```
|
|
422
|
+
|
|
423
|
+
Confirm: "Committed: docs(${PHASE}): create phase plan"
|
|
424
|
+
</step>
|
|
425
|
+
|
|
426
|
+
<step name="offer_next">
|
|
427
|
+
```
|
|
428
|
+
Phase plan created: .planning/phases/XX-name/{phase}-01-PLAN.md
|
|
429
|
+
[X] tasks defined.
|
|
430
|
+
|
|
431
|
+
---
|
|
432
|
+
|
|
433
|
+
## Next Up
|
|
434
|
+
|
|
435
|
+
**{phase}-01: [Plan Name]** - [objective summary]
|
|
436
|
+
|
|
437
|
+
`/gsd:execute-plan .planning/phases/XX-name/{phase}-01-PLAN.md`
|
|
438
|
+
|
|
439
|
+
<sub>`/clear` first - fresh context window</sub>
|
|
440
|
+
|
|
441
|
+
---
|
|
442
|
+
|
|
443
|
+
**Also available:**
|
|
444
|
+
- Review/adjust tasks before executing
|
|
445
|
+
[If multiple plans: - View all plans: `ls .planning/phases/XX-name/*-PLAN.md`]
|
|
446
|
+
|
|
447
|
+
---
|
|
448
|
+
```
|
|
449
|
+
</step>
|
|
450
|
+
|
|
451
|
+
</process>
|
|
452
|
+
|
|
453
|
+
<task_quality>
|
|
454
|
+
**Good tasks:** Specific files, actions, verification
|
|
455
|
+
- "Add User model to Prisma schema with email, passwordHash, createdAt"
|
|
456
|
+
- "Create POST /api/auth/login endpoint with bcrypt validation"
|
|
457
|
+
|
|
458
|
+
**Bad tasks:** Vague, not actionable
|
|
459
|
+
- "Set up authentication" / "Make it secure" / "Handle edge cases"
|
|
460
|
+
|
|
461
|
+
If you can't specify Files + Action + Verify + Done, the task is too vague.
|
|
462
|
+
|
|
463
|
+
**TDD candidates get dedicated plans.** If "Create price calculator with discount rules" warrants TDD, create a TDD plan for it. See `~/.config/opencode/get-shit-done/references/tdd.md` for TDD plan structure.
|
|
464
|
+
</task_quality>
|
|
465
|
+
|
|
466
|
+
<anti_patterns>
|
|
467
|
+
- No story points or hour estimates
|
|
468
|
+
- No team assignments
|
|
469
|
+
- No acceptance criteria committees
|
|
470
|
+
- No sub-sub-sub tasks
|
|
471
|
+
Tasks are instructions for Claude, not Jira tickets.
|
|
472
|
+
</anti_patterns>
|
|
473
|
+
|
|
474
|
+
<success_criteria>
|
|
475
|
+
Phase planning complete when:
|
|
476
|
+
- [ ] STATE.md read, project history absorbed
|
|
477
|
+
- [ ] Mandatory discovery completed (Level 0-3)
|
|
478
|
+
- [ ] Prior decisions, issues, concerns synthesized
|
|
479
|
+
- [ ] PLAN file(s) exist with XML structure
|
|
480
|
+
- [ ] Each plan: Objective, context, tasks, verification, success criteria, output
|
|
481
|
+
- [ ] @context references included (STATE, RESEARCH/DISCOVERY if exist, relevant summaries)
|
|
482
|
+
- [ ] Each plan: 2-3 tasks (~50% context)
|
|
483
|
+
- [ ] Each task: Type, Files (if auto), Action, Verify, Done
|
|
484
|
+
- [ ] Checkpoints properly structured
|
|
485
|
+
- [ ] If RESEARCH.md exists: "don't hand-roll" items NOT being custom-built
|
|
486
|
+
- [ ] PLAN file(s) committed to git
|
|
487
|
+
- [ ] User knows next steps
|
|
488
|
+
</success_criteria>
|