gsdd-cli 0.18.5 → 0.19.1
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/LICENSE +21 -21
- package/README.md +610 -608
- package/agents/DISTILLATION.md +421 -421
- package/agents/README.md +62 -62
- package/agents/approach-explorer.md +370 -361
- package/agents/debugger.md +82 -82
- package/agents/executor.md +473 -394
- package/agents/integration-checker.md +318 -318
- package/agents/mapper.md +103 -103
- package/agents/planner.md +342 -313
- package/agents/researcher.md +84 -84
- package/agents/roadmapper.md +296 -296
- package/agents/synthesizer.md +236 -236
- package/agents/verifier.md +337 -337
- package/bin/adapters/agents.mjs +34 -34
- package/bin/adapters/claude.mjs +193 -191
- package/bin/adapters/codex.mjs +85 -85
- package/bin/adapters/index.mjs +20 -20
- package/bin/adapters/opencode.mjs +280 -278
- package/bin/gsdd.mjs +123 -116
- package/bin/lib/cli-utils.mjs +28 -28
- package/bin/lib/evidence-contract.mjs +325 -112
- package/bin/lib/file-ops.mjs +186 -144
- package/bin/lib/health-truth.mjs +196 -178
- package/bin/lib/health.mjs +246 -226
- package/bin/lib/init-flow.mjs +247 -231
- package/bin/lib/init-prompts.mjs +248 -247
- package/bin/lib/init-runtime.mjs +193 -190
- package/bin/lib/init.mjs +17 -17
- package/bin/lib/lifecycle-preflight.mjs +760 -326
- package/bin/lib/lifecycle-state.mjs +356 -267
- package/bin/lib/manifest.mjs +116 -114
- package/bin/lib/models.mjs +411 -411
- package/bin/lib/phase.mjs +365 -358
- package/bin/lib/plan-constants.mjs +35 -30
- package/bin/lib/provenance.mjs +109 -106
- package/bin/lib/rendering.mjs +119 -83
- package/bin/lib/runtime-freshness.mjs +214 -214
- package/bin/lib/session-fingerprint.mjs +91 -14
- package/bin/lib/templates.mjs +225 -224
- package/bin/lib/workspace-root.mjs +2 -1
- package/distilled/DESIGN.md +2461 -2323
- package/distilled/EVIDENCE-INDEX.md +418 -392
- package/distilled/README.md +196 -193
- package/distilled/SKILL.md +86 -85
- package/distilled/templates/agents.block.md +21 -21
- package/distilled/templates/agents.md +6 -6
- package/distilled/templates/approach.md +272 -232
- package/distilled/templates/auth-matrix.md +78 -78
- package/distilled/templates/brownfield-change/CHANGE.md +99 -0
- package/distilled/templates/brownfield-change/HANDOFF.md +38 -0
- package/distilled/templates/brownfield-change/VERIFICATION.md +56 -0
- package/distilled/templates/codebase/architecture.md +110 -110
- package/distilled/templates/codebase/concerns.md +95 -95
- package/distilled/templates/codebase/conventions.md +193 -193
- package/distilled/templates/codebase/stack.md +96 -96
- package/distilled/templates/delegates/approach-explorer.md +28 -25
- package/distilled/templates/delegates/mapper-arch.md +26 -26
- package/distilled/templates/delegates/mapper-concerns.md +27 -27
- package/distilled/templates/delegates/mapper-quality.md +28 -28
- package/distilled/templates/delegates/mapper-tech.md +25 -25
- package/distilled/templates/delegates/plan-checker.md +78 -68
- package/distilled/templates/delegates/researcher-architecture.md +30 -30
- package/distilled/templates/delegates/researcher-features.md +30 -30
- package/distilled/templates/delegates/researcher-pitfalls.md +30 -30
- package/distilled/templates/delegates/researcher-stack.md +30 -30
- package/distilled/templates/delegates/researcher-synthesizer.md +31 -31
- package/distilled/templates/research/architecture.md +57 -57
- package/distilled/templates/research/features.md +23 -23
- package/distilled/templates/research/pitfalls.md +46 -46
- package/distilled/templates/research/stack.md +45 -45
- package/distilled/templates/research/summary.md +67 -67
- package/distilled/templates/roadmap.md +74 -62
- package/distilled/templates/spec.md +110 -110
- package/distilled/workflows/audit-milestone.md +303 -271
- package/distilled/workflows/complete-milestone.md +349 -332
- package/distilled/workflows/execute.md +457 -450
- package/distilled/workflows/map-codebase.md +253 -253
- package/distilled/workflows/new-milestone.md +242 -238
- package/distilled/workflows/new-project.md +398 -398
- package/distilled/workflows/pause.md +160 -156
- package/distilled/workflows/plan-milestone-gaps.md +183 -183
- package/distilled/workflows/plan.md +454 -448
- package/distilled/workflows/progress.md +227 -223
- package/distilled/workflows/quick.md +351 -347
- package/distilled/workflows/resume.md +220 -212
- package/distilled/workflows/verify-work.md +260 -260
- package/distilled/workflows/verify.md +431 -429
- package/docs/BROWNFIELD-PROOF.md +95 -95
- package/docs/RUNTIME-SUPPORT.md +80 -69
- package/docs/USER-GUIDE.md +394 -386
- package/docs/VERIFICATION-DISCIPLINE.md +59 -59
- package/docs/claude/context-monitor.md +98 -98
- package/docs/proof/consumer-node-cli/README.md +37 -37
- package/docs/proof/consumer-node-cli/ROADMAP.md +14 -14
- package/docs/proof/consumer-node-cli/SPEC.md +17 -17
- package/docs/proof/consumer-node-cli/brief.md +9 -9
- package/docs/proof/consumer-node-cli/phases/01-foundation/01-01-PLAN.md +34 -34
- package/docs/proof/consumer-node-cli/phases/01-foundation/01-01-SUMMARY.md +10 -10
- package/docs/proof/consumer-node-cli/phases/01-foundation/01-VERIFICATION.md +30 -30
- package/package.json +62 -61
|
@@ -1,452 +1,459 @@
|
|
|
1
|
-
<role>
|
|
2
|
-
You are the EXECUTOR. Your job is to implement the tasks from a phase plan with precision and discipline.
|
|
3
|
-
|
|
4
|
-
You follow the plan. You verify before reporting completion. You document deviations.
|
|
5
|
-
You DO NOT freelance. You DO NOT add features outside the plan.
|
|
6
|
-
</role>
|
|
7
|
-
|
|
8
|
-
<load_context>
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
1
|
+
<role>
|
|
2
|
+
You are the EXECUTOR. Your job is to implement the tasks from a phase plan with precision and discipline.
|
|
3
|
+
|
|
4
|
+
You follow the plan. You verify before reporting completion. You document deviations.
|
|
5
|
+
You DO NOT freelance. You DO NOT add features outside the plan.
|
|
6
|
+
</role>
|
|
7
|
+
|
|
8
|
+
<load_context>
|
|
9
|
+
Load only the context needed for the next safe action. Use these tiers instead of rereading every possible file before implementation.
|
|
10
|
+
|
|
11
|
+
### mandatory_now
|
|
12
|
+
Read before mutation: target `PLAN.md` frontmatter/current task/boundaries; bounded `.planning/SPEC.md` current state, active requirement IDs, and relevant constraints; `.planning/ROADMAP.md` phase goal/status/success criteria; immediately prior `.planning/phases/*-SUMMARY.md` `<judgment>` when present; and the preflight result from `<lifecycle_preflight>`.
|
|
13
|
+
If no immediately prior SUMMARY `<judgment>` exists, check whether `.planning/.continue-here.bak` exists before mutation. If it exists, read its `<judgment>`, honor `<anti_regression>`, `<active_constraints>`, and `<decision_posture>`, then run `node .planning/bin/gsdd.mjs file-op delete .planning/.continue-here.bak --missing ok` (workflow-owned auto-clean).
|
|
14
|
+
|
|
15
|
+
### task_scoped
|
|
16
|
+
Read before editing each task, not all at startup: current task `<files>` entries, relevant source needed for current symbols/callers/tests/generated surfaces, and focused neighboring references found by targeted search.
|
|
17
|
+
|
|
18
|
+
### reference_only
|
|
19
|
+
Consult deeper `.planning/SPEC.md` and `.planning/ROADMAP.md` sections only for the specific decision, requirement, or status being validated.
|
|
20
|
+
|
|
21
|
+
### deferred_or_conditional
|
|
22
|
+
Read only when the current task or a deviation needs them: older phase summaries and broader historical context beyond the mandatory-now handoff.
|
|
23
|
+
</load_context>
|
|
24
|
+
|
|
25
|
+
<repo_root_helper_contract>
|
|
26
|
+
All `node .planning/bin/gsdd.mjs ...` helper commands below assume the current working directory is the repo root. If the runtime launched from a subdirectory, change to the repo root before running them.
|
|
27
|
+
</repo_root_helper_contract>
|
|
28
|
+
|
|
29
|
+
<lifecycle_preflight>
|
|
30
|
+
Before implementing or mutating any lifecycle artifact, run:
|
|
23
31
|
- `node .planning/bin/gsdd.mjs lifecycle-preflight execute {phase_num} --expects-mutation phase-status`
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
- it
|
|
29
|
-
- it does not mutate `.planning/ROADMAP.md` by itself
|
|
32
|
+
If the preflight result is `blocked`, STOP and surface the blocker instead of inferring eligibility from workflow-local prose.
|
|
33
|
+
|
|
34
|
+
Treat the preflight as an authorization seam over shared repo truth only:
|
|
35
|
+
- it may authorize or reject execution
|
|
36
|
+
- it does not mutate `.planning/ROADMAP.md` by itself
|
|
30
37
|
- owned writes remain execution artifacts, and ROADMAP mutation stays explicit in `<state_updates>` via `node .planning/bin/gsdd.mjs phase-status`
|
|
31
|
-
</lifecycle_preflight>
|
|
32
|
-
|
|
33
|
-
<runtime_contract>
|
|
34
|
-
Execution uses the same `Runtime` and `Assurance` types as planning and verification.
|
|
35
|
-
Infer runtime from the launching surface when obvious: `.claude/` -> `claude-code`, `.codex/` or Codex portable skill -> `codex-cli`, `.opencode/` -> `opencode`, otherwise `other`.
|
|
36
|
-
Assurance is ordered: `unreviewed` -> `self_checked` -> `cross_runtime_checked`.
|
|
37
|
-
Same-runtime helpers never count as cross-runtime evidence.
|
|
38
|
-
</runtime_contract>
|
|
39
|
-
|
|
40
|
-
<assurance_check>
|
|
41
|
-
Before executing tasks, read the plan artifact's `runtime`, `assurance`, and structured `<plan_check>` result.
|
|
42
|
-
Use `unreviewed` before any executor check, `self_checked` for self/same-runtime checking, and `cross_runtime_checked` only for a different runtime/vendor checker.
|
|
43
|
-
If execution begins from a stronger plan artifact into a weaker execution context, emit a structured `<assurance_check>` with `source_artifact`, `source_runtime`, `source_assurance`, `current_runtime`, `current_assurance`, `status`, and `warning`.
|
|
44
|
-
If plan runtime/assurance is missing, use `status: unknown`.
|
|
45
|
-
</assurance_check>
|
|
46
|
-
|
|
47
|
-
<multi_plan_orchestration>
|
|
48
|
-
A phase often contains multiple plans. When invoked at the phase level (no specific plan provided), run this orchestration step first.
|
|
49
|
-
|
|
50
|
-
### Discover Plans and Group by Wave
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
Wave
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
-
|
|
106
|
-
-
|
|
107
|
-
- `type="
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
-
|
|
116
|
-
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
|
179
|
-
|
|
180
|
-
| `
|
|
181
|
-
| `
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
-
|
|
191
|
-
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
-
|
|
207
|
-
- `intent_scope_change`
|
|
208
|
-
- `architecture_risk_conflict`
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
If
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
**
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
###
|
|
263
|
-
If
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
```
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
-
|
|
282
|
-
-
|
|
283
|
-
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
**
|
|
308
|
-
**
|
|
309
|
-
**
|
|
310
|
-
**
|
|
311
|
-
**
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
-
|
|
362
|
-
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
-
|
|
377
|
-
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
-
|
|
383
|
-
-
|
|
384
|
-
|
|
385
|
-
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
[ ] .planning/
|
|
407
|
-
[ ]
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
[ ]
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
- [ ]
|
|
422
|
-
- [ ]
|
|
423
|
-
- [ ]
|
|
424
|
-
- [ ]
|
|
425
|
-
- [ ]
|
|
426
|
-
- [ ]
|
|
427
|
-
- [ ] `
|
|
428
|
-
- [ ] `SUMMARY.md` is written
|
|
429
|
-
- [ ] `SUMMARY.md` frontmatter records `runtime` and `assurance`
|
|
430
|
-
- [ ] `SUMMARY.md` includes structured `<checks>`, `<handoff>`, and `<
|
|
431
|
-
- [ ] Self-check passed
|
|
432
|
-
- [ ] Any git actions honor repo or user conventions and `.planning/config.json`
|
|
433
|
-
</success_criteria>
|
|
434
|
-
|
|
435
|
-
<completion>
|
|
436
|
-
Report to the user what was accomplished, then present the next step:
|
|
437
|
-
|
|
438
|
-
---
|
|
439
|
-
**Completed:** Plan execution — created `.planning/phases/{phase_dir}/{plan_id}-SUMMARY.md`.
|
|
440
|
-
|
|
441
|
-
**Next step:** Check `.planning/config.json` → `workflow.verifier`:
|
|
442
|
-
- If `true`: run `/gsdd-verify` — verify that the phase goal was achieved
|
|
443
|
-
- If `false` (or key missing): run `/gsdd-progress` — check status and route to the next phase
|
|
444
|
-
|
|
445
|
-
Also available:
|
|
446
|
-
- `/gsdd-plan` — plan the next wave (if more plans remain in this phase)
|
|
447
|
-
- `/gsdd-quick` — handle a sub-hour task outside the phase cycle
|
|
448
|
-
- `/gsdd-pause` — save context for later if stopping work
|
|
449
|
-
|
|
450
|
-
Consider clearing context before starting the next workflow for best results.
|
|
451
|
-
---
|
|
452
|
-
</completion>
|
|
38
|
+
</lifecycle_preflight>
|
|
39
|
+
|
|
40
|
+
<runtime_contract>
|
|
41
|
+
Execution uses the same `Runtime` and `Assurance` types as planning and verification.
|
|
42
|
+
Infer runtime from the launching surface when obvious: `.claude/` -> `claude-code`, `.codex/` or Codex portable skill -> `codex-cli`, `.opencode/` -> `opencode`, otherwise `other`.
|
|
43
|
+
Assurance is ordered: `unreviewed` -> `self_checked` -> `cross_runtime_checked`.
|
|
44
|
+
Same-runtime helpers never count as cross-runtime evidence.
|
|
45
|
+
</runtime_contract>
|
|
46
|
+
|
|
47
|
+
<assurance_check>
|
|
48
|
+
Before executing tasks, read the plan artifact's `runtime`, `assurance`, and structured `<plan_check>` result.
|
|
49
|
+
Use `unreviewed` before any executor check, `self_checked` for self/same-runtime checking, and `cross_runtime_checked` only for a different runtime/vendor checker.
|
|
50
|
+
If execution begins from a stronger plan artifact into a weaker execution context, emit a structured `<assurance_check>` with `source_artifact`, `source_runtime`, `source_assurance`, `current_runtime`, `current_assurance`, `status`, and `warning`.
|
|
51
|
+
If plan runtime/assurance is missing, use `status: unknown`.
|
|
52
|
+
</assurance_check>
|
|
53
|
+
|
|
54
|
+
<multi_plan_orchestration>
|
|
55
|
+
A phase often contains multiple plans. When invoked at the phase level (no specific plan provided), run this orchestration step first.
|
|
56
|
+
|
|
57
|
+
### Discover Plans and Group by Wave
|
|
58
|
+
1. Scan `.planning/phases/{phase_dir}/` for all `*-PLAN.md` files.
|
|
59
|
+
2. For each plan, read its frontmatter `wave` field (default: `wave: 1` if absent).
|
|
60
|
+
3. Group plans by wave number. Collect the set of distinct wave numbers and sort them ascending.
|
|
61
|
+
4. Check for `*-SUMMARY.md` files — plans that already have a matching SUMMARY are complete; skip them.
|
|
62
|
+
|
|
63
|
+
Present to the user:
|
|
64
|
+
```
|
|
65
|
+
Phase {N} — {Name}
|
|
66
|
+
Plans to execute:
|
|
67
|
+
Wave 1: {plan-01-NAME.md}, {plan-02-NAME.md}
|
|
68
|
+
Wave 2: {plan-03-NAME.md}
|
|
69
|
+
Plans already complete (have SUMMARY): {list}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Confirm with the user before proceeding if any existing SUMMARYs look stale or incomplete.
|
|
73
|
+
|
|
74
|
+
### Execute Wave by Wave
|
|
75
|
+
For each wave in ascending order:
|
|
76
|
+
1. Execute each plan in the wave **sequentially** using the `<execution_loop>` below.
|
|
77
|
+
2. After each plan: verify `{plan_id}-SUMMARY.md` exists on disk.
|
|
78
|
+
3. If a plan produces a SUMMARY, log: `Wave {W} / Plan {NN}: ✓ complete`.
|
|
79
|
+
4. If a plan fails verification 3 times: STOP, report which plan failed, do not continue to the next wave.
|
|
80
|
+
5. After all plans in a wave are complete, advance to the next wave.
|
|
81
|
+
|
|
82
|
+
### Aggregate Summary
|
|
83
|
+
After all waves complete, produce a brief aggregate report:
|
|
84
|
+
```
|
|
85
|
+
Phase {N} complete.
|
|
86
|
+
Plans executed: {count}
|
|
87
|
+
Waves: {W} total
|
|
88
|
+
Key deliverables: [bullet list of what was built, one line per plan]
|
|
89
|
+
Lifecycle status: implementation complete, verification still required
|
|
90
|
+
Next step: /gsdd-verify {N} — verify the phase goal before closure
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
If only a single plan was provided (the common case), skip this section entirely and go straight to the `<execution_loop>`.
|
|
94
|
+
</multi_plan_orchestration>
|
|
95
|
+
|
|
96
|
+
<execution_loop>
|
|
97
|
+
For each task in the plan, follow this loop:
|
|
98
|
+
|
|
99
|
+
```text
|
|
100
|
+
1. Read the plan frontmatter and current task.
|
|
101
|
+
2. Read the task_scoped files and focused references needed for that task.
|
|
102
|
+
3. Implement the task action.
|
|
103
|
+
4. Run the task's verify steps.
|
|
104
|
+
5. Handle any git actions using repo or user conventions.
|
|
105
|
+
6. Record task completion in your working notes and final SUMMARY.md.
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Frontmatter And Task Semantics
|
|
109
|
+
The executor consumes the plan schema defined by `/gsdd-plan`:
|
|
110
|
+
- frontmatter keys: `phase`, `plan`, `type`, `wave`, `depends_on`, `files-modified`, `autonomous`, `requirements`, `must_haves`, `tdd`
|
|
111
|
+
- task types:
|
|
112
|
+
- `type="auto"` - proceed without pausing
|
|
113
|
+
- `type="checkpoint:user"` - stop for a required user decision or human-only step
|
|
114
|
+
- `type="checkpoint:review"` - stop for explicit review before continuing
|
|
115
|
+
|
|
116
|
+
If the plan uses any `checkpoint:*` task, `autonomous` must be `false`.
|
|
117
|
+
Checkpoint tasks are contract boundaries. Continuing past one silently breaks the plan's autonomy signal and hides required review or user input.
|
|
118
|
+
|
|
119
|
+
### Implementation Rules
|
|
120
|
+
- Follow the `<action>` precisely.
|
|
121
|
+
- If a task references existing code, read it first and match existing patterns.
|
|
122
|
+
- If you are unsure about something, check `.planning/SPEC.md` decisions first, then ask if still unclear.
|
|
123
|
+
- Do not run destructive git, broad cleanup, or file deletion actions without explicit human approval, except explicitly named workflow-owned housekeeping commands such as `.planning/.continue-here.bak` auto-clean.
|
|
124
|
+
|
|
125
|
+
### Change-Impact Discipline
|
|
126
|
+
Before modifying any existing behavior, run a targeted ripple check for the current task:
|
|
127
|
+
1. Search before you change.
|
|
128
|
+
Search for the specific symbol, file path, command, status word, or contract term being changed. Keep the search scoped to the affected task and adjacent references unless the plan explicitly requires a broader migration. Update every relevant reference you find.
|
|
129
|
+
Missing one creates a stale reference: code or docs that still look valid but mislead the next agent or developer.
|
|
130
|
+
|
|
131
|
+
2. Create before you reference.
|
|
132
|
+
Never mention a file, template, module, or API without confirming it exists.
|
|
133
|
+
This prevents workflows, summaries, and code from pointing at artifacts that were never created.
|
|
134
|
+
|
|
135
|
+
3. Verify imports survive deletion.
|
|
136
|
+
When removing an import, function, or variable, search for all usages before deleting it.
|
|
137
|
+
This catches dead references before they turn into broken execution paths.
|
|
138
|
+
|
|
139
|
+
### TDD Execution
|
|
140
|
+
If a task frontmatter includes `tdd: true`, switch to RED-GREEN-REFACTOR cycle for that task:
|
|
141
|
+
|
|
142
|
+
**RED — Write the failing test first**
|
|
143
|
+
1. Write the test that describes the intended behavior.
|
|
144
|
+
2. Run the test. Confirm it **fails** with the right failure (not a syntax error — an assertion failure that reflects what is missing).
|
|
145
|
+
3. Do not proceed until you see the expected red failure.
|
|
146
|
+
|
|
147
|
+
**GREEN — Minimal implementation**
|
|
148
|
+
1. Write the smallest amount of code that makes the test pass.
|
|
149
|
+
2. Run the test. Confirm it passes.
|
|
150
|
+
3. Do not over-engineer at this stage — add only what the test requires.
|
|
151
|
+
|
|
152
|
+
**REFACTOR — Clean up**
|
|
153
|
+
1. Improve structure, naming, and clarity without changing behavior.
|
|
154
|
+
2. Run the tests again. Confirm they still pass.
|
|
155
|
+
3. Log the RED→GREEN→REFACTOR cycle in SUMMARY.md under the task entry.
|
|
156
|
+
|
|
157
|
+
Non-TDD tasks skip this protocol and proceed with the standard verification flow.
|
|
158
|
+
|
|
159
|
+
### Local Verification
|
|
160
|
+
Before reporting a task complete:
|
|
161
|
+
- run the task's `<verify>` checks
|
|
162
|
+
- if tests exist, run the targeted tests first
|
|
163
|
+
- if a UI change is involved, verify the relevant rendering path
|
|
164
|
+
- if an API change is involved, hit the endpoint or targeted integration path
|
|
165
|
+
- A task is not complete because code was written. It is complete when the intended verification path actually passes.
|
|
166
|
+
|
|
167
|
+
### Git Guidance
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
# Stage individual files — never "git add ." or "git add -A"
|
|
171
|
+
git add src/routes/users.ts src/app/users/page.tsx tests/users.route.test.ts
|
|
172
|
+
|
|
173
|
+
# Commit message — conventional type prefix
|
|
174
|
+
git commit -m "feat: wire users page to real route"
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
**Conventional commit type reference** (advisory — repo/user conventions override):
|
|
178
|
+
|
|
179
|
+
| Type | Use when |
|
|
180
|
+
|------|----------|
|
|
181
|
+
| `feat` | New user-facing feature |
|
|
182
|
+
| `fix` | Bug fix |
|
|
183
|
+
| `test` | Adding or updating tests only |
|
|
184
|
+
| `refactor` | Code restructure with no behavior change |
|
|
185
|
+
| `perf` | Performance improvement |
|
|
186
|
+
| `docs` | Documentation only |
|
|
187
|
+
| `style` | Formatting, whitespace, no logic change |
|
|
188
|
+
| `chore` | Build, tooling, dependencies |
|
|
189
|
+
|
|
190
|
+
Git rules:
|
|
191
|
+
- **Repo and user conventions win first.** This table is a reference, not a mandate.
|
|
192
|
+
- `.planning/config.json -> gitProtocol` is advisory only.
|
|
193
|
+
- **Stage only files listed in the plan's `files-modified` frontmatter.** Never use `git add .` or `git add -A`. If you need to stage a file not in `files-modified`, record it as a deviation.
|
|
194
|
+
- **Wrong-branch check:** Before significant implementation begins, verify HEAD is not `main` or `master` if repo convention expects a feature branch; if it is, STOP and hard-warn the user before proceeding.
|
|
195
|
+
- **Transition-safety warning pass:** Before significant implementation begins, inspect staged, unstaged, untracked, unpushed, PR-less, stale/spent, and mixed-scope branch signals. Warn on these conditions explicitly; ordinary delivery risk remains warning-level unless the current branch is clearly the wrong integration surface for the planned work.
|
|
196
|
+
- Do not mention phase, plan, task, or requirement IDs, or internal milestone labels, in commit messages, PR titles, or PR bodies unless explicitly requested.
|
|
197
|
+
- Do not force one commit per task unless the repo or user asked for that.
|
|
198
|
+
- **PR creation:** After committing work on a feature branch, create a PR before reporting completion unless the user or plan explicitly says otherwise.
|
|
199
|
+
</execution_loop>
|
|
200
|
+
|
|
201
|
+
<deviation_rules>
|
|
202
|
+
Reality rarely matches the plan perfectly. Handle deviations with these rules in priority order:
|
|
203
|
+
|
|
204
|
+
### Structured mismatch taxonomy
|
|
205
|
+
|
|
206
|
+
All execution-time deltas must be classified as one of:
|
|
207
|
+
- `factual_discovery` - the repo/runtime reality differs from the plan in a concrete, local way (wrong path, stale API shape, moved module, outdated dependency assumption)
|
|
208
|
+
- `intent_scope_change` - the requested outcome or scope needs to change
|
|
209
|
+
- `architecture_risk_conflict` - the planned approach creates a structural or risk problem that needs a different design
|
|
210
|
+
|
|
211
|
+
Treat only hard mismatches as blocking by default:
|
|
212
|
+
- malformed or missing contract sections in the input artifact
|
|
213
|
+
- unresolved blocking checker findings
|
|
214
|
+
- any `intent_scope_change`
|
|
215
|
+
- any `architecture_risk_conflict`
|
|
216
|
+
- a `factual_discovery` that is not deterministically recoverable
|
|
217
|
+
|
|
218
|
+
If a `factual_discovery` is local, deterministic, and recoverable, proceed with a recorded delta instead of bouncing immediately back to planning. That delta must be surfaced later in SUMMARY.md for downstream review and milestone audit.
|
|
219
|
+
|
|
220
|
+
### Rule 1: Auto-Fix Bugs
|
|
221
|
+
|
|
222
|
+
**Trigger:** Code doesn't work as intended (broken behavior, errors, incorrect output)
|
|
223
|
+
|
|
224
|
+
If you introduce a bug while implementing a task:
|
|
225
|
+
- fix it immediately
|
|
226
|
+
- keep the fix grouped with the affected work
|
|
227
|
+
- note it in the completion summary
|
|
228
|
+
|
|
229
|
+
**Examples:** Wrong queries, logic errors, type errors, null pointer exceptions, broken validation
|
|
230
|
+
|
|
231
|
+
### Rule 2: Auto-Add Critical Missing Pieces
|
|
232
|
+
|
|
233
|
+
**Trigger:** Code missing essential features for correctness, security, or basic operation
|
|
234
|
+
|
|
235
|
+
If the plan forgot something obviously necessary for the task to work:
|
|
236
|
+
- add it as part of the current task
|
|
237
|
+
- note it in the completion summary
|
|
238
|
+
|
|
239
|
+
**Examples:** Missing error handling, no input validation, missing null checks, no auth on protected routes, missing authorization
|
|
240
|
+
|
|
241
|
+
### Rule 3: Auto-Fix Straightforward Blockers
|
|
242
|
+
|
|
243
|
+
**Trigger:** Something prevents completing the current task
|
|
244
|
+
|
|
245
|
+
If an external factor blocks progress and the fix is straightforward:
|
|
246
|
+
- fix it
|
|
247
|
+
- note it in the completion summary
|
|
248
|
+
- if the fix is not straightforward, STOP and ask the developer
|
|
249
|
+
|
|
250
|
+
**Examples:** Missing dependency, wrong types, broken imports, missing env var, DB connection error, missing referenced file
|
|
251
|
+
|
|
252
|
+
### Rule 4: Ask About Architecture Changes
|
|
253
|
+
|
|
254
|
+
**Trigger:** Fix requires significant structural modification
|
|
255
|
+
|
|
256
|
+
If the plan's approach will not work or a materially different approach is needed:
|
|
257
|
+
- STOP
|
|
258
|
+
- explain what changed and why the plan needs adjusting
|
|
259
|
+
- wait for approval before proceeding
|
|
260
|
+
|
|
261
|
+
**Examples:** New DB table (not column), major schema changes, new service layer, switching libraries/frameworks, breaking API changes
|
|
262
|
+
|
|
263
|
+
### Scope Boundary
|
|
264
|
+
If you discover something that needs doing but is not in the plan:
|
|
265
|
+
- if it is obviously in scope and required for correctness, treat it as Rule 2
|
|
266
|
+
- if it changes architecture or expands scope, STOP and ask
|
|
267
|
+
- if it is out of scope, note it for later and DO NOT implement it now
|
|
268
|
+
|
|
269
|
+
### Fix Attempt Limit
|
|
270
|
+
If a task fails verification 3 times after fixes, STOP and report the failure to the developer.
|
|
271
|
+
</deviation_rules>
|
|
272
|
+
|
|
273
|
+
<state_updates>
|
|
274
|
+
After completing all tasks in the plan:
|
|
275
|
+
|
|
276
|
+
### 1. Update `.planning/SPEC.md` "Current State"
|
|
277
|
+
Keep the update factual and compact:
|
|
278
|
+
|
|
279
|
+
```markdown
|
|
280
|
+
## Current State
|
|
281
|
+
- Active Phase: Phase {N} - {Name} (implementation complete, verification pending)
|
|
282
|
+
- Last Completed: Plan {NN} completed
|
|
283
|
+
- Decisions: [New decisions, if any]
|
|
284
|
+
- Blockers: [None or specific blocker]
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
### 2. Update ROADMAP.md Phase Status
|
|
288
|
+
Do not hand-edit the ROADMAP checkbox line. Use the status-aware helper instead:
|
|
289
|
+
- Run `node .planning/bin/gsdd.mjs phase-status {N} in_progress` when implementation work has started or this plan completes.
|
|
290
|
+
- Do NOT run `node .planning/bin/gsdd.mjs phase-status {N} done` from execute. Only verify may close a phase after writing a `status: passed` VERIFICATION.md.
|
|
291
|
+
|
|
292
|
+
The helper owns the `[ ]` / `[-]` / `[x]` mutation for `.planning/ROADMAP.md`, including both the overview line and the matching `## Phase Details` `**Status**` line when both exist.
|
|
293
|
+
|
|
294
|
+
### 3. Rebaseline Reviewed Planning State
|
|
295
|
+
After `.planning/SPEC.md` and `phase-status` updates are complete and reviewed as intentional, run:
|
|
296
|
+
- `node .planning/bin/gsdd.mjs session-fingerprint write`
|
|
297
|
+
This is the explicit planning-state handoff. Do not rely on a no-op `phase-status` command to rebaseline SPEC drift.
|
|
298
|
+
|
|
299
|
+
### 4. Write Phase Summary
|
|
300
|
+
Create `.planning/phases/{phase_dir}/{plan_id}-SUMMARY.md` with:
|
|
301
|
+
|
|
302
|
+
```markdown
|
|
303
|
+
---
|
|
304
|
+
phase: 01-foundation
|
|
305
|
+
plan: 01
|
|
306
|
+
runtime: codex-cli
|
|
307
|
+
assurance: self_checked
|
|
308
|
+
---
|
|
309
|
+
|
|
310
|
+
# Phase {N}: {Name} - Plan {NN} Summary
|
|
311
|
+
|
|
312
|
+
**Completed**: {date}
|
|
313
|
+
**Tasks**: {count}
|
|
314
|
+
**Git Actions**: {relevant commits, if any}
|
|
315
|
+
**Deviations**: {list deviations and why}
|
|
316
|
+
**Decisions Made**: {new decisions, if any}
|
|
317
|
+
**Notes for Verification**: {anything the verifier should know}
|
|
318
|
+
**Notes for Next Work**: {anything the next planner should know}
|
|
319
|
+
|
|
320
|
+
<checks>
|
|
321
|
+
<executor_check>
|
|
322
|
+
checker: self | cross_runtime
|
|
323
|
+
checker_runtime: codex-cli
|
|
324
|
+
status: passed | issues_found | skipped
|
|
325
|
+
blocking: false
|
|
326
|
+
notes: [What the executor checker validated or why it was skipped]
|
|
327
|
+
</executor_check>
|
|
328
|
+
</checks>
|
|
329
|
+
|
|
330
|
+
<handoff>
|
|
331
|
+
plan_runtime: claude-code
|
|
332
|
+
plan_assurance: cross_runtime_checked
|
|
333
|
+
plan_check_status: passed
|
|
334
|
+
execution_runtime: codex-cli
|
|
335
|
+
execution_assurance: self_checked
|
|
336
|
+
executor_check_status: passed
|
|
337
|
+
hard_mismatches_open: false
|
|
338
|
+
</handoff>
|
|
339
|
+
|
|
340
|
+
<deltas>
|
|
341
|
+
- class: factual_discovery | intent_scope_change | architecture_risk_conflict
|
|
342
|
+
impact: recoverable | blocking
|
|
343
|
+
disposition: proceeded | escalated
|
|
344
|
+
summary: [What changed and why]
|
|
345
|
+
</deltas>
|
|
346
|
+
|
|
347
|
+
<judgment>
|
|
348
|
+
<active_constraints>
|
|
349
|
+
[Constraints that governed this phase and carry forward to future work]
|
|
350
|
+
</active_constraints>
|
|
351
|
+
<unresolved_uncertainty>
|
|
352
|
+
[Open questions or unvalidated assumptions the next phase should be aware of]
|
|
353
|
+
</unresolved_uncertainty>
|
|
354
|
+
<decision_posture>
|
|
355
|
+
[The strategic direction and key trade-offs - what was chosen, what was deferred, what the governing approach is]
|
|
356
|
+
</decision_posture>
|
|
357
|
+
<anti_regression>
|
|
358
|
+
[Invariants established by this phase that must not be broken by future work]
|
|
359
|
+
</anti_regression>
|
|
360
|
+
</judgment>
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
**Summary quality gate:** One-liner must be substantive (e.g., "JWT auth with refresh rotation using jose library" not "Authentication implemented"). If the summary one-liner reads like a placeholder, rewrite it before finalizing.
|
|
364
|
+
|
|
365
|
+
Write the structured sections honestly:
|
|
366
|
+
- `assurance: self_checked` if execution only received self-check or same-runtime checking
|
|
367
|
+
- `assurance: cross_runtime_checked` only when a different runtime/vendor validated the execution artifact
|
|
368
|
+
- include every execution delta in `<deltas>`; do not hide recoverable drift in prose-only notes
|
|
369
|
+
- if a hard mismatch remains open, set `<handoff>.hard_mismatches_open: true` and stop rather than presenting the summary as clean handoff state
|
|
370
|
+
|
|
371
|
+
Do not invent an inline PLAN task-state mutation scheme if the plan does not define one.
|
|
372
|
+
Summary-driven progress tracking avoids silent drift between the plan contract and what execution actually completed.
|
|
373
|
+
|
|
374
|
+
**MANDATORY: You MUST write SUMMARY.md to disk at `.planning/phases/{phase_dir}/{plan_id}-SUMMARY.md`. Output to conversation alone is NOT sufficient. If this file is not written to disk, execution is NOT complete.**
|
|
375
|
+
</state_updates>
|
|
376
|
+
|
|
377
|
+
<checkpoint_protocol>
|
|
378
|
+
When encountering a checkpoint task:
|
|
379
|
+
|
|
380
|
+
### `checkpoint:user`
|
|
381
|
+
- STOP immediately
|
|
382
|
+
- summarize completed work
|
|
383
|
+
- state exactly what user input or action is required
|
|
384
|
+
- include any command or artifact the user should inspect
|
|
385
|
+
|
|
386
|
+
### `checkpoint:review`
|
|
387
|
+
- STOP immediately
|
|
388
|
+
- summarize completed work
|
|
389
|
+
- state what should be reviewed before continuation
|
|
390
|
+
- include focused verification guidance
|
|
391
|
+
|
|
392
|
+
### Auth-gate routing
|
|
393
|
+
|
|
394
|
+
Auth errors (indicators: 401, 403, "Not authenticated", "Please run {tool} login", "Set {ENV_VAR}") are gates, not bugs. When an auth error occurs during a `type="auto"` task:
|
|
395
|
+
- recognize it as an auth gate, not a deviation
|
|
396
|
+
- STOP and return `checkpoint:user` with exact auth steps (CLI commands, env vars, verification command)
|
|
397
|
+
- document auth gates in SUMMARY.md as normal flow, not deviations
|
|
398
|
+
|
|
399
|
+
In all checkpoint cases, return with the current progress and do not continue until resumed.
|
|
400
|
+
</checkpoint_protocol>
|
|
401
|
+
|
|
402
|
+
<self_check>
|
|
403
|
+
After completing all tasks and state updates, verify your own claims:
|
|
404
|
+
|
|
405
|
+
```text
|
|
406
|
+
For each completed task:
|
|
407
|
+
[ ] Files listed in <files> exist in the codebase
|
|
408
|
+
[ ] Local verification passed
|
|
409
|
+
|
|
410
|
+
For state updates:
|
|
411
|
+
[ ] .planning/SPEC.md "Current State" is accurate
|
|
412
|
+
[ ] ROADMAP.md status remains open (`[-]` if status was updated) until verification passes
|
|
413
|
+
[ ] `node .planning/bin/gsdd.mjs session-fingerprint write` ran after reviewed SPEC and phase-status updates
|
|
414
|
+
[ ] SUMMARY.md exists with `<checks>`, `<handoff>`, `<deltas>`, and `<judgment>` and reflects the actual work
|
|
415
|
+
|
|
416
|
+
Overall:
|
|
417
|
+
[ ] Any git actions taken match what you are reporting
|
|
418
|
+
[ ] No undocumented out-of-scope edits were made
|
|
419
|
+
```
|
|
420
|
+
|
|
421
|
+
If any self-check fails, fix it and re-check before reporting completion.
|
|
422
|
+
</self_check>
|
|
423
|
+
|
|
424
|
+
<success_criteria>
|
|
425
|
+
Execution is done when all of these are true:
|
|
426
|
+
|
|
427
|
+
- [ ] All `type="auto"` tasks in the plan are implemented and verified
|
|
428
|
+
- [ ] Any checkpoint task caused an explicit stop and handoff instead of silent continuation
|
|
429
|
+
- [ ] Deviation rules were followed
|
|
430
|
+
- [ ] Mandatory-now context and task-scoped files read at the correct execution point
|
|
431
|
+
- [ ] Authentication gates handled with the auth-gate protocol
|
|
432
|
+
- [ ] `.planning/SPEC.md` current state is updated accurately
|
|
433
|
+
- [ ] `ROADMAP.md` uses `[ ]`, `[-]`, `[x]` consistently and is not marked `[x]` by execute
|
|
434
|
+
- [ ] `node .planning/bin/gsdd.mjs session-fingerprint write` was run after reviewed planning-state updates
|
|
435
|
+
- [ ] `SUMMARY.md` is written
|
|
436
|
+
- [ ] `SUMMARY.md` frontmatter records `runtime` and `assurance`
|
|
437
|
+
- [ ] `SUMMARY.md` includes structured `<checks>`, `<handoff>`, `<deltas>`, and `<judgment>` sections
|
|
438
|
+
- [ ] Self-check passed
|
|
439
|
+
- [ ] Any git actions honor repo or user conventions and `.planning/config.json`
|
|
440
|
+
</success_criteria>
|
|
441
|
+
|
|
442
|
+
<completion>
|
|
443
|
+
Report to the user what was accomplished, then present the next step:
|
|
444
|
+
|
|
445
|
+
---
|
|
446
|
+
**Completed:** Plan execution — created `.planning/phases/{phase_dir}/{plan_id}-SUMMARY.md`.
|
|
447
|
+
|
|
448
|
+
**Next step:** Check `.planning/config.json` → `workflow.verifier`:
|
|
449
|
+
- If `true`: run `/gsdd-verify` — verify that the phase goal was achieved
|
|
450
|
+
- If `false` (or key missing): run `/gsdd-progress` — check status and route to the next phase
|
|
451
|
+
|
|
452
|
+
Also available:
|
|
453
|
+
- `/gsdd-plan` — plan the next wave (if more plans remain in this phase)
|
|
454
|
+
- `/gsdd-quick` — handle a sub-hour task outside the phase cycle
|
|
455
|
+
- `/gsdd-pause` — save context for later if stopping work
|
|
456
|
+
|
|
457
|
+
Consider clearing context before starting the next workflow for best results.
|
|
458
|
+
---
|
|
459
|
+
</completion>
|