gsd-opencode 1.4.2 → 1.5.0
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 +13 -11
- package/command/gsd/add-todo.md +7 -5
- 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 +6 -6
- package/command/gsd/debug.md +2 -2
- 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 +75 -75
- package/command/gsd/insert-phase.md +9 -9
- 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 +5 -5
- 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 +23 -23
- 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 +6 -6
- package/command/gsd/verify-work.md +3 -3
- package/get-shit-done/references/checkpoints.md +19 -19
- package/get-shit-done/references/continuation-format.md +17 -17
- package/get-shit-done/references/git-integration.md +3 -3
- package/get-shit-done/references/plan-format.md +23 -23
- package/get-shit-done/references/principles.md +5 -5
- 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 +2 -2
- package/get-shit-done/templates/DEBUG.md +5 -5
- 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 +7 -7
- 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 +1 -1
- 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 +13 -13
- package/get-shit-done/workflows/complete-milestone.md +2 -2
- package/get-shit-done/workflows/create-milestone.md +8 -8
- package/get-shit-done/workflows/create-roadmap.md +5 -5
- package/get-shit-done/workflows/debug.md +3 -3
- package/get-shit-done/workflows/discovery-phase.md +3 -3
- package/get-shit-done/workflows/discuss-milestone.md +7 -7
- package/get-shit-done/workflows/discuss-phase.md +4 -4
- package/get-shit-done/workflows/execute-phase.md +4 -4
- package/get-shit-done/workflows/execute-plan.md +16 -16
- package/get-shit-done/workflows/list-phase-assumptions.md +9 -9
- package/get-shit-done/workflows/map-codebase.md +3 -3
- package/get-shit-done/workflows/plan-phase.md +11 -11
- package/get-shit-done/workflows/research-phase.md +10 -10
- package/get-shit-done/workflows/resume-project.md +12 -12
- package/get-shit-done/workflows/transition.md +6 -6
- package/get-shit-done/workflows/verify-work.md +4 -4
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: gsd
|
|
2
|
+
name: gsd-plan-phase
|
|
3
3
|
description: Create detailed execution plan for a phase (PLAN.md)
|
|
4
4
|
argument-hint: "[phase]"
|
|
5
5
|
allowed-tools:
|
|
@@ -30,7 +30,7 @@ Output: One or more PLAN.md files in the phase directory (.planning/phases/XX-na
|
|
|
30
30
|
</execution_context>
|
|
31
31
|
|
|
32
32
|
<context>
|
|
33
|
-
Phase number:
|
|
33
|
+
Phase number: $ARGUMENTS (optional - auto-detects next unplanned phase if not provided)
|
|
34
34
|
|
|
35
35
|
**Load project state first:**
|
|
36
36
|
@.planning/STATE.md
|
|
@@ -38,7 +38,7 @@ Phase number: ($ARGUMENTS) (optional - auto-detects next unplanned phase if not
|
|
|
38
38
|
**Load roadmap:**
|
|
39
39
|
@.planning/ROADMAP.md
|
|
40
40
|
|
|
41
|
-
**Load phase context if exists (created by /gsd
|
|
41
|
+
**Load phase context if exists (created by /gsd-discuss-phase):**
|
|
42
42
|
Check for and read `.planning/phases/XX-name/{phase}-CONTEXT.md` - contains research findings, clarifications, and decisions from phase discussion.
|
|
43
43
|
|
|
44
44
|
**Load codebase context if exists:**
|
|
@@ -46,8 +46,8 @@ Check for `.planning/codebase/` and load relevant documents based on phase type.
|
|
|
46
46
|
</context>
|
|
47
47
|
|
|
48
48
|
<process>
|
|
49
|
-
1. Check .planning/ directory exists (error if not - user should run /gsd
|
|
50
|
-
2. If phase number provided via
|
|
49
|
+
1. Check .planning/ directory exists (error if not - user should run /gsd-new-project)
|
|
50
|
+
2. If phase number provided via `$ARGUMENTS`, validate it exists in roadmap
|
|
51
51
|
3. If no phase number, detect next unplanned phase from roadmap
|
|
52
52
|
4. Follow plan-phase.md workflow:
|
|
53
53
|
- Load project state and accumulated decisions
|
package/command/gsd/progress.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: gsd
|
|
2
|
+
name: gsd-progress
|
|
3
3
|
description: Check project progress, show context, and route to next action (execute or plan)
|
|
4
4
|
allowed-tools:
|
|
5
5
|
- read
|
|
@@ -25,12 +25,12 @@ If no `.planning/` directory:
|
|
|
25
25
|
```
|
|
26
26
|
No planning structure found.
|
|
27
27
|
|
|
28
|
-
Run /gsd
|
|
28
|
+
Run /gsd-new-project to start a new project.
|
|
29
29
|
```
|
|
30
30
|
|
|
31
31
|
Exit.
|
|
32
32
|
|
|
33
|
-
If missing STATE.md or ROADMAP.md: inform what's missing, suggest running `/gsd
|
|
33
|
+
If missing STATE.md or ROADMAP.md: inform what's missing, suggest running `/gsd-new-project`.
|
|
34
34
|
</step>
|
|
35
35
|
|
|
36
36
|
<step name="load">
|
|
@@ -85,10 +85,10 @@ CONTEXT: [✓ if CONTEXT.md exists | - if not]
|
|
|
85
85
|
- [any deferred issues or blockers]
|
|
86
86
|
|
|
87
87
|
## Pending Todos
|
|
88
|
-
- [count] pending — /gsd
|
|
88
|
+
- [count] pending — /gsd-check-todos to review
|
|
89
89
|
|
|
90
90
|
## Active Debug Sessions
|
|
91
|
-
- [count] active — /gsd
|
|
91
|
+
- [count] active — /gsd-debug to continue
|
|
92
92
|
(Only show this section if count > 0)
|
|
93
93
|
|
|
94
94
|
## What's Next
|
|
@@ -147,7 +147,7 @@ Read its `<objective>` section.
|
|
|
147
147
|
|
|
148
148
|
**{phase}-{plan}: [Plan Name]** — [objective summary from PLAN.md]
|
|
149
149
|
|
|
150
|
-
`/gsd
|
|
150
|
+
`/gsd-execute-plan [full-path-to-PLAN.md]`
|
|
151
151
|
|
|
152
152
|
*`/clear` first → fresh context window*
|
|
153
153
|
|
|
@@ -170,7 +170,7 @@ Check if `{phase}-CONTEXT.md` exists in phase directory.
|
|
|
170
170
|
**Phase {N}: {Name}** — {Goal from ROADMAP.md}
|
|
171
171
|
*✓ Context gathered, ready to plan*
|
|
172
172
|
|
|
173
|
-
`/gsd
|
|
173
|
+
`/gsd-plan-phase {phase-number}`
|
|
174
174
|
|
|
175
175
|
*`/clear` first → fresh context window*
|
|
176
176
|
|
|
@@ -186,16 +186,16 @@ Check if `{phase}-CONTEXT.md` exists in phase directory.
|
|
|
186
186
|
|
|
187
187
|
**Phase {N}: {Name}** — {Goal from ROADMAP.md}
|
|
188
188
|
|
|
189
|
-
`/gsd
|
|
189
|
+
`/gsd-plan-phase {phase}`
|
|
190
190
|
|
|
191
191
|
*`/clear` first → fresh context window*
|
|
192
192
|
|
|
193
193
|
---
|
|
194
194
|
|
|
195
195
|
**Also available:**
|
|
196
|
-
- `/gsd
|
|
197
|
-
- `/gsd
|
|
198
|
-
- `/gsd
|
|
196
|
+
- `/gsd-discuss-phase {phase}` — gather context first
|
|
197
|
+
- `/gsd-research-phase {phase}` — investigate unknowns
|
|
198
|
+
- `/gsd-list-phase-assumptions {phase}` — see OpenCode's assumptions
|
|
199
199
|
|
|
200
200
|
---
|
|
201
201
|
```
|
|
@@ -213,15 +213,15 @@ ISSUES.md exists without matching FIX.md. User needs to plan fixes.
|
|
|
213
213
|
|
|
214
214
|
**{plan}-ISSUES.md** has {N} issues without a fix plan.
|
|
215
215
|
|
|
216
|
-
`/gsd
|
|
216
|
+
`/gsd-plan-fix {plan}`
|
|
217
217
|
|
|
218
218
|
*`/clear` first → fresh context window*
|
|
219
219
|
|
|
220
220
|
---
|
|
221
221
|
|
|
222
222
|
**Also available:**
|
|
223
|
-
- `/gsd
|
|
224
|
-
- `/gsd
|
|
223
|
+
- `/gsd-execute-plan [path]` — continue with other work first
|
|
224
|
+
- `/gsd-verify-work {phase}` — run more UAT testing
|
|
225
225
|
|
|
226
226
|
---
|
|
227
227
|
```
|
|
@@ -260,16 +260,16 @@ Read ROADMAP.md to get the next phase's name and goal.
|
|
|
260
260
|
|
|
261
261
|
**Phase {Z+1}: {Name}** — {Goal from ROADMAP.md}
|
|
262
262
|
|
|
263
|
-
`/gsd
|
|
263
|
+
`/gsd-plan-phase {Z+1}`
|
|
264
264
|
|
|
265
265
|
*`/clear` first → fresh context window*
|
|
266
266
|
|
|
267
267
|
---
|
|
268
268
|
|
|
269
269
|
**Also available:**
|
|
270
|
-
- `/gsd
|
|
271
|
-
- `/gsd
|
|
272
|
-
- `/gsd
|
|
270
|
+
- `/gsd-verify-work {Z}` — user acceptance test before continuing
|
|
271
|
+
- `/gsd-discuss-phase {Z+1}` — gather context first
|
|
272
|
+
- `/gsd-research-phase {Z+1}` — investigate unknowns
|
|
273
273
|
|
|
274
274
|
---
|
|
275
275
|
```
|
|
@@ -289,14 +289,14 @@ All {N} phases finished!
|
|
|
289
289
|
|
|
290
290
|
**Complete Milestone** — archive and prepare for next
|
|
291
291
|
|
|
292
|
-
`/gsd
|
|
292
|
+
`/gsd-complete-milestone`
|
|
293
293
|
|
|
294
294
|
*`/clear` first → fresh context window*
|
|
295
295
|
|
|
296
296
|
---
|
|
297
297
|
|
|
298
298
|
**Also available:**
|
|
299
|
-
- `/gsd
|
|
299
|
+
- `/gsd-verify-work` — user acceptance test before completing milestone
|
|
300
300
|
|
|
301
301
|
---
|
|
302
302
|
```
|
|
@@ -306,10 +306,10 @@ All {N} phases finished!
|
|
|
306
306
|
<step name="edge_cases">
|
|
307
307
|
**Handle edge cases:**
|
|
308
308
|
|
|
309
|
-
- Phase complete but next phase not planned → offer `/gsd
|
|
309
|
+
- Phase complete but next phase not planned → offer `/gsd-plan-phase [next]`
|
|
310
310
|
- All work complete → offer milestone completion
|
|
311
311
|
- Blockers present → highlight before offering to continue
|
|
312
|
-
- Handoff file exists → mention it, offer `/gsd
|
|
312
|
+
- Handoff file exists → mention it, offer `/gsd-resume-work`
|
|
313
313
|
</step>
|
|
314
314
|
|
|
315
315
|
</process>
|
|
@@ -319,7 +319,7 @@ All {N} phases finished!
|
|
|
319
319
|
- [ ] Rich context provided (recent work, decisions, issues)
|
|
320
320
|
- [ ] Current position clear with visual progress
|
|
321
321
|
- [ ] What's next clearly explained
|
|
322
|
-
- [ ] Smart routing: /gsd
|
|
322
|
+
- [ ] Smart routing: /gsd-execute-plan if plan exists, /gsd-plan-phase if not
|
|
323
323
|
- [ ] User confirms before any action
|
|
324
324
|
- [ ] Seamless handoff to appropriate gsd command
|
|
325
325
|
</success_criteria>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: gsd
|
|
2
|
+
name: gsd-remove-phase
|
|
3
3
|
description: Remove a future phase from roadmap and renumber subsequent phases
|
|
4
4
|
argument-hint: <phase-number>
|
|
5
5
|
allowed-tools:
|
|
@@ -19,6 +19,8 @@ Output: Phase deleted, all subsequent phases renumbered, git commit as historica
|
|
|
19
19
|
<execution_context>
|
|
20
20
|
@.planning/ROADMAP.md
|
|
21
21
|
@.planning/STATE.md
|
|
22
|
+
|
|
23
|
+
Phase number: $ARGUMENTS
|
|
22
24
|
</execution_context>
|
|
23
25
|
|
|
24
26
|
<process>
|
|
@@ -26,15 +28,15 @@ Output: Phase deleted, all subsequent phases renumbered, git commit as historica
|
|
|
26
28
|
<step name="parse_arguments">
|
|
27
29
|
Parse the command arguments:
|
|
28
30
|
- Argument is the phase number to remove (integer or decimal)
|
|
29
|
-
- Example: `/gsd
|
|
30
|
-
- Example: `/gsd
|
|
31
|
+
- Example: `/gsd-remove-phase 17` → phase = 17
|
|
32
|
+
- Example: `/gsd-remove-phase 16.1` → phase = 16.1
|
|
31
33
|
|
|
32
34
|
If no argument provided:
|
|
33
35
|
|
|
34
36
|
```
|
|
35
37
|
ERROR: Phase number required
|
|
36
|
-
Usage: /gsd
|
|
37
|
-
Example: /gsd
|
|
38
|
+
Usage: /gsd-remove-phase <phase-number>
|
|
39
|
+
Example: /gsd-remove-phase 17
|
|
38
40
|
```
|
|
39
41
|
|
|
40
42
|
Exit.
|
|
@@ -80,7 +82,7 @@ Only future phases can be removed:
|
|
|
80
82
|
- Current phase: {current}
|
|
81
83
|
- Phase {target} is current or completed
|
|
82
84
|
|
|
83
|
-
To abandon current work, use /gsd
|
|
85
|
+
To abandon current work, use /gsd-pause-work instead.
|
|
84
86
|
```
|
|
85
87
|
|
|
86
88
|
Exit.
|
|
@@ -280,7 +282,7 @@ Current position: Phase {current} of {new-total}
|
|
|
280
282
|
## What's Next
|
|
281
283
|
|
|
282
284
|
Would you like to:
|
|
283
|
-
- `/gsd
|
|
285
|
+
- `/gsd-progress` — see updated roadmap status
|
|
284
286
|
- Continue with current phase
|
|
285
287
|
- Review roadmap
|
|
286
288
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: gsd
|
|
2
|
+
name: gsd-research-phase
|
|
3
3
|
description: Research how to implement a phase before planning
|
|
4
4
|
argument-hint: "[phase]"
|
|
5
5
|
allowed-tools:
|
|
@@ -33,7 +33,7 @@ Output: RESEARCH.md with ecosystem knowledge that informs quality planning.
|
|
|
33
33
|
</execution_context>
|
|
34
34
|
|
|
35
35
|
<context>
|
|
36
|
-
Phase number:
|
|
36
|
+
Phase number: $ARGUMENTS (required)
|
|
37
37
|
|
|
38
38
|
**Load project state:**
|
|
39
39
|
@.planning/STATE.md
|
package/command/gsd/status.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: gsd
|
|
2
|
+
name: gsd-status
|
|
3
3
|
description: Check status of background agents from parallel execution
|
|
4
4
|
argument-hint: "[--wait]"
|
|
5
5
|
allowed-tools:
|
|
@@ -9,14 +9,14 @@ allowed-tools:
|
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
<objective>
|
|
12
|
-
Monitor background agent status from /gsd
|
|
12
|
+
Monitor background agent status from /gsd-execute-phase parallel execution.
|
|
13
13
|
|
|
14
14
|
Shows running/completed agents from agent-history.json.
|
|
15
15
|
With --wait flag, blocks until all agents complete.
|
|
16
16
|
</objective>
|
|
17
17
|
|
|
18
18
|
<context>
|
|
19
|
-
Arguments:
|
|
19
|
+
Arguments: $ARGUMENTS
|
|
20
20
|
</context>
|
|
21
21
|
|
|
22
22
|
<process>
|
|
@@ -32,7 +32,7 @@ If file doesn't exist or has no entries:
|
|
|
32
32
|
```
|
|
33
33
|
No background agents tracked.
|
|
34
34
|
|
|
35
|
-
Run /gsd
|
|
35
|
+
Run /gsd-execute-phase to spawn parallel agents.
|
|
36
36
|
```
|
|
37
37
|
Exit.
|
|
38
38
|
</step>
|
|
@@ -63,7 +63,7 @@ Background Agents
|
|
|
63
63
|
Progress: 2/3 complete
|
|
64
64
|
|
|
65
65
|
════════════════════════════════════════
|
|
66
|
-
Wait for all: /gsd
|
|
66
|
+
Wait for all: /gsd-status --wait
|
|
67
67
|
```
|
|
68
68
|
|
|
69
69
|
**Status icons:**
|
|
@@ -108,7 +108,7 @@ Update agent-history.json with completion status for each.
|
|
|
108
108
|
|
|
109
109
|
All parallel agents finished. Review results:
|
|
110
110
|
|
|
111
|
-
`/gsd
|
|
111
|
+
`/gsd-progress`
|
|
112
112
|
|
|
113
113
|
*`/clear` first → fresh context window*
|
|
114
114
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: gsd
|
|
2
|
+
name: gsd-verify-work
|
|
3
3
|
description: Guide manual user acceptance testing of recently built features
|
|
4
4
|
argument-hint: "[optional: phase or plan number, e.g., '4' or '04-02']"
|
|
5
5
|
allowed-tools:
|
|
@@ -26,7 +26,7 @@ Output: Validation of features, any issues logged to phase-scoped ISSUES.md
|
|
|
26
26
|
</execution_context>
|
|
27
27
|
|
|
28
28
|
<context>
|
|
29
|
-
Scope:
|
|
29
|
+
Scope: $ARGUMENTS (optional)
|
|
30
30
|
- If provided: Test specific phase or plan (e.g., "4" or "04-02")
|
|
31
31
|
- If not provided: Test most recently completed plan
|
|
32
32
|
|
|
@@ -49,7 +49,7 @@ Scope: ($ARGUMENTS) (optional)
|
|
|
49
49
|
- Present summary with verdict
|
|
50
50
|
4. Offer next steps based on results:
|
|
51
51
|
- If all passed: Continue to next phase
|
|
52
|
-
- If issues found: `/gsd
|
|
52
|
+
- If issues found: `/gsd-plan-fix {phase} {plan}` to create fix plan
|
|
53
53
|
</process>
|
|
54
54
|
|
|
55
55
|
<anti_patterns>
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
<overview>
|
|
2
2
|
Plans execute autonomously. Checkpoints formalize interaction points where human verification or decisions are needed.
|
|
3
3
|
|
|
4
|
-
**Core principle:**
|
|
4
|
+
**Core principle:** Opencode agent automates everything with CLI/API. Checkpoints are for verification and decisions, not manual work.
|
|
5
5
|
</overview>
|
|
6
6
|
|
|
7
7
|
<checkpoint_types>
|
|
8
8
|
|
|
9
9
|
## checkpoint:human-verify (90% of checkpoints)
|
|
10
10
|
|
|
11
|
-
**When:**
|
|
11
|
+
**When:** Opencode agent completed automated work, human confirms it works correctly.
|
|
12
12
|
|
|
13
13
|
**Use for:** Visual UI checks, interactive flows, functional verification, audio/video quality, animation smoothness, accessibility testing.
|
|
14
14
|
|
|
15
15
|
**Structure:**
|
|
16
16
|
```xml
|
|
17
17
|
<task type="checkpoint:human-verify" gate="blocking">
|
|
18
|
-
<what-built>[What
|
|
18
|
+
<what-built>[What Opencode agent automated]</what-built>
|
|
19
19
|
<how-to-verify>[Numbered steps - URLs, commands, expected behavior]</how-to-verify>
|
|
20
20
|
<resume-signal>[How to continue - "approved" or describe issues]</resume-signal>
|
|
21
21
|
</task>
|
|
@@ -86,8 +86,8 @@ Plans execute autonomously. Checkpoints formalize interaction points where human
|
|
|
86
86
|
```xml
|
|
87
87
|
<task type="checkpoint:human-action" gate="blocking">
|
|
88
88
|
<action>[Unavoidable manual step]</action>
|
|
89
|
-
<instructions>[What
|
|
90
|
-
<verification>[What
|
|
89
|
+
<instructions>[What Opencode agent automated] [ONE thing requiring human action]</instructions>
|
|
90
|
+
<verification>[What Opencode agent checks afterward]</verification>
|
|
91
91
|
<resume-signal>[How to continue]</resume-signal>
|
|
92
92
|
</task>
|
|
93
93
|
```
|
|
@@ -109,7 +109,7 @@ Plans execute autonomously. Checkpoints formalize interaction points where human
|
|
|
109
109
|
|
|
110
110
|
<execution_protocol>
|
|
111
111
|
|
|
112
|
-
When
|
|
112
|
+
When Opencode agent encounters `type="checkpoint:*"`:
|
|
113
113
|
|
|
114
114
|
1. **Stop immediately** - do not proceed to next task
|
|
115
115
|
2. **Display checkpoint clearly:**
|
|
@@ -135,9 +135,9 @@ Task [X] of [Y]: [Name]
|
|
|
135
135
|
|
|
136
136
|
<authentication_gates>
|
|
137
137
|
|
|
138
|
-
**Critical:** When
|
|
138
|
+
**Critical:** When Opencode agent tries CLI/API and gets auth error, this is NOT a failure - it's a gate requiring human input to unblock automation.
|
|
139
139
|
|
|
140
|
-
**Pattern:**
|
|
140
|
+
**Pattern:** Opencode agent tries automation → auth error → creates checkpoint → you authenticate → Opencode agent retries → continues
|
|
141
141
|
|
|
142
142
|
**Gate protocol:**
|
|
143
143
|
1. Recognize it's not a failure - missing auth is expected
|
|
@@ -150,7 +150,7 @@ Task [X] of [Y]: [Name]
|
|
|
150
150
|
|
|
151
151
|
**Example (Vercel auth gate):**
|
|
152
152
|
```xml
|
|
153
|
-
<!--
|
|
153
|
+
<!-- Opencode agent tries to deploy -->
|
|
154
154
|
<task type="auto">
|
|
155
155
|
<name>Deploy to Vercel</name>
|
|
156
156
|
<action>Run `vercel --yes` to deploy</action>
|
|
@@ -167,7 +167,7 @@ Task [X] of [Y]: [Name]
|
|
|
167
167
|
<resume-signal>Type "done" when authenticated</resume-signal>
|
|
168
168
|
</task>
|
|
169
169
|
|
|
170
|
-
<!-- After auth,
|
|
170
|
+
<!-- After auth, Opencode agent retries automatically -->
|
|
171
171
|
<task type="auto">
|
|
172
172
|
<name>Retry deployment</name>
|
|
173
173
|
<action>Run `vercel --yes` (now authenticated)</action>
|
|
@@ -175,14 +175,14 @@ Task [X] of [Y]: [Name]
|
|
|
175
175
|
```
|
|
176
176
|
|
|
177
177
|
**Key distinction:**
|
|
178
|
-
- Pre-planned checkpoint: "I need you to do X" (wrong -
|
|
178
|
+
- Pre-planned checkpoint: "I need you to do X" (wrong - Opencode agent should automate)
|
|
179
179
|
- Auth gate: "I tried to automate X but need credentials" (correct - unblocks automation)
|
|
180
180
|
|
|
181
181
|
</authentication_gates>
|
|
182
182
|
|
|
183
183
|
<automation_reference>
|
|
184
184
|
|
|
185
|
-
**The rule:** If it has CLI/API,
|
|
185
|
+
**The rule:** If it has CLI/API, Opencode agent does it. Never ask human to perform automatable work.
|
|
186
186
|
|
|
187
187
|
| Service | CLI/API | Key Commands | Auth Gate |
|
|
188
188
|
|---------|---------|--------------|-----------|
|
|
@@ -201,7 +201,7 @@ Task [X] of [Y]: [Name]
|
|
|
201
201
|
|
|
202
202
|
**Quick reference:**
|
|
203
203
|
|
|
204
|
-
| Action | Automatable? |
|
|
204
|
+
| Action | Automatable? | Opencode agent does it? |
|
|
205
205
|
|--------|--------------|-----------------|
|
|
206
206
|
| Deploy to Vercel | Yes (`vercel`) | YES |
|
|
207
207
|
| Create Stripe webhook | Yes (API) | YES |
|
|
@@ -223,7 +223,7 @@ Task [X] of [Y]: [Name]
|
|
|
223
223
|
- Make verification executable
|
|
224
224
|
|
|
225
225
|
**DON'T:**
|
|
226
|
-
- Ask human to do work
|
|
226
|
+
- Ask human to do work Opencode agent can automate
|
|
227
227
|
- Assume knowledge: "Configure the usual settings"
|
|
228
228
|
- Mix multiple verifications in one checkpoint
|
|
229
229
|
- Use checkpoints too frequently (verification fatigue)
|
|
@@ -256,7 +256,7 @@ Why bad: Vercel has CLI. Use `vercel --yes`.
|
|
|
256
256
|
```
|
|
257
257
|
Why bad: Verification fatigue. Combine into one checkpoint at end.
|
|
258
258
|
|
|
259
|
-
**GOOD:
|
|
259
|
+
**GOOD: Opencode agent automates, human verifies once**
|
|
260
260
|
```xml
|
|
261
261
|
<task type="auto">Create schema</task>
|
|
262
262
|
<task type="auto">Create API</task>
|
|
@@ -272,16 +272,16 @@ Why bad: Verification fatigue. Combine into one checkpoint at end.
|
|
|
272
272
|
|
|
273
273
|
<summary>
|
|
274
274
|
|
|
275
|
-
**The golden rule:** If
|
|
275
|
+
**The golden rule:** If Opencode agent CAN automate it, Opencode agent MUST automate it.
|
|
276
276
|
|
|
277
277
|
**Checkpoint priority:**
|
|
278
|
-
1. **checkpoint:human-verify** (90%) -
|
|
278
|
+
1. **checkpoint:human-verify** (90%) - Opencode agent automated, human confirms visual/functional correctness
|
|
279
279
|
2. **checkpoint:decision** (9%) - Human makes architectural/technology choices
|
|
280
280
|
3. **checkpoint:human-action** (1%) - Truly unavoidable manual steps with no API/CLI
|
|
281
281
|
|
|
282
282
|
**When NOT to use checkpoints:**
|
|
283
|
-
- Things
|
|
284
|
-
- File operations (
|
|
283
|
+
- Things Opencode agent can verify programmatically (tests, builds)
|
|
284
|
+
- File operations (Opencode agent can read/write)
|
|
285
285
|
- Anything with CLI/API available
|
|
286
286
|
|
|
287
287
|
</summary>
|
|
@@ -44,7 +44,7 @@ Standard format for presenting next steps after completing a command or workflow
|
|
|
44
44
|
|
|
45
45
|
**02-03: Refresh Token Rotation** — Add /api/auth/refresh with sliding expiry
|
|
46
46
|
|
|
47
|
-
`/gsd
|
|
47
|
+
`/gsd-execute-plan .planning/phases/02-auth/02-03-PLAN.md`
|
|
48
48
|
|
|
49
49
|
*`/clear` first → fresh context window*
|
|
50
50
|
|
|
@@ -52,7 +52,7 @@ Standard format for presenting next steps after completing a command or workflow
|
|
|
52
52
|
|
|
53
53
|
**Also available:**
|
|
54
54
|
- Review plan before executing
|
|
55
|
-
- `/gsd
|
|
55
|
+
- `/gsd-list-phase-assumptions 2` — check assumptions
|
|
56
56
|
|
|
57
57
|
---
|
|
58
58
|
```
|
|
@@ -69,7 +69,7 @@ Add note that this is the last plan and what comes after:
|
|
|
69
69
|
**02-03: Refresh Token Rotation** — Add /api/auth/refresh with sliding expiry
|
|
70
70
|
*Final plan in Phase 2*
|
|
71
71
|
|
|
72
|
-
`/gsd
|
|
72
|
+
`/gsd-execute-plan .planning/phases/02-auth/02-03-PLAN.md`
|
|
73
73
|
|
|
74
74
|
*`/clear` first → fresh context window*
|
|
75
75
|
|
|
@@ -91,15 +91,15 @@ Add note that this is the last plan and what comes after:
|
|
|
91
91
|
|
|
92
92
|
**Phase 2: Authentication** — JWT login flow with refresh tokens
|
|
93
93
|
|
|
94
|
-
`/gsd
|
|
94
|
+
`/gsd-plan-phase 2`
|
|
95
95
|
|
|
96
96
|
*`/clear` first → fresh context window*
|
|
97
97
|
|
|
98
98
|
---
|
|
99
99
|
|
|
100
100
|
**Also available:**
|
|
101
|
-
- `/gsd
|
|
102
|
-
- `/gsd
|
|
101
|
+
- `/gsd-discuss-phase 2` — gather context first
|
|
102
|
+
- `/gsd-research-phase 2` — investigate unknowns
|
|
103
103
|
- Review roadmap
|
|
104
104
|
|
|
105
105
|
---
|
|
@@ -120,15 +120,15 @@ Show completion status before next action:
|
|
|
120
120
|
|
|
121
121
|
**Phase 3: Core Features** — User dashboard, settings, and data export
|
|
122
122
|
|
|
123
|
-
`/gsd
|
|
123
|
+
`/gsd-plan-phase 3`
|
|
124
124
|
|
|
125
125
|
*`/clear` first → fresh context window*
|
|
126
126
|
|
|
127
127
|
---
|
|
128
128
|
|
|
129
129
|
**Also available:**
|
|
130
|
-
- `/gsd
|
|
131
|
-
- `/gsd
|
|
130
|
+
- `/gsd-discuss-phase 3` — gather context first
|
|
131
|
+
- `/gsd-research-phase 3` — investigate unknowns
|
|
132
132
|
- Review what Phase 2 built
|
|
133
133
|
|
|
134
134
|
---
|
|
@@ -145,11 +145,11 @@ When there's no clear primary action:
|
|
|
145
145
|
|
|
146
146
|
**Phase 3: Core Features** — User dashboard, settings, and data export
|
|
147
147
|
|
|
148
|
-
**To plan directly:** `/gsd
|
|
148
|
+
**To plan directly:** `/gsd-plan-phase 3`
|
|
149
149
|
|
|
150
|
-
**To discuss context first:** `/gsd
|
|
150
|
+
**To discuss context first:** `/gsd-discuss-phase 3`
|
|
151
151
|
|
|
152
|
-
**To research unknowns:** `/gsd
|
|
152
|
+
**To research unknowns:** `/gsd-research-phase 3`
|
|
153
153
|
|
|
154
154
|
*`/clear` first → fresh context window*
|
|
155
155
|
|
|
@@ -169,14 +169,14 @@ All 4 phases shipped
|
|
|
169
169
|
|
|
170
170
|
**Plan v1.1** — Enhanced features and optimizations
|
|
171
171
|
|
|
172
|
-
`/gsd
|
|
172
|
+
`/gsd-discuss-milestone`
|
|
173
173
|
|
|
174
174
|
*`/clear` first → fresh context window*
|
|
175
175
|
|
|
176
176
|
---
|
|
177
177
|
|
|
178
178
|
**Also available:**
|
|
179
|
-
- `/gsd
|
|
179
|
+
- `/gsd-new-milestone` — create directly if scope is clear
|
|
180
180
|
- Review accomplishments before moving on
|
|
181
181
|
|
|
182
182
|
---
|
|
@@ -220,7 +220,7 @@ Extract: `**02-03: Refresh Token Rotation** — Add /api/auth/refresh with slidi
|
|
|
220
220
|
## To Continue
|
|
221
221
|
|
|
222
222
|
Run `/clear`, then paste:
|
|
223
|
-
/gsd
|
|
223
|
+
/gsd-execute-plan .planning/phases/02-auth/02-03-PLAN.md
|
|
224
224
|
```
|
|
225
225
|
|
|
226
226
|
User has no idea what 02-03 is about.
|
|
@@ -228,7 +228,7 @@ User has no idea what 02-03 is about.
|
|
|
228
228
|
### Don't: Missing /clear explanation
|
|
229
229
|
|
|
230
230
|
```
|
|
231
|
-
`/gsd
|
|
231
|
+
`/gsd-plan-phase 3`
|
|
232
232
|
|
|
233
233
|
Run /clear first.
|
|
234
234
|
```
|
|
@@ -248,7 +248,7 @@ Sounds like an afterthought. Use "Also available:" instead.
|
|
|
248
248
|
|
|
249
249
|
```
|
|
250
250
|
```
|
|
251
|
-
/gsd
|
|
251
|
+
/gsd-plan-phase 3
|
|
252
252
|
```
|
|
253
253
|
```
|
|
254
254
|
|
|
@@ -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 agent 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 agent 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,7 +247,7 @@ 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 agent workflow benefits from granular attribution
|
|
251
251
|
- Atomic commits are git best practice
|
|
252
252
|
- "Commit noise" irrelevant when consumer is Claude, not humans
|
|
253
253
|
|