specdacular 0.7.0 → 0.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/README.md +40 -86
  2. package/commands/specd/feature/{next.md → continue.md} +6 -6
  3. package/commands/specd/feature/new.md +2 -2
  4. package/commands/specd/feature/toolbox.md +49 -0
  5. package/commands/specd/help.md +1 -146
  6. package/commands/specd/update.md +4 -6
  7. package/package.json +1 -1
  8. package/specdacular/HELP.md +85 -0
  9. package/specdacular/references/commit-code.md +34 -0
  10. package/specdacular/references/commit-docs.md +35 -0
  11. package/specdacular/references/select-feature.md +57 -0
  12. package/specdacular/references/select-phase.md +30 -0
  13. package/specdacular/templates/features/STATE.md +11 -1
  14. package/specdacular/workflows/{next-feature.md → continue-feature.md} +50 -90
  15. package/specdacular/workflows/discuss-feature.md +4 -27
  16. package/specdacular/workflows/execute-plan.md +75 -47
  17. package/specdacular/workflows/insert-phase.md +50 -26
  18. package/specdacular/workflows/map-codebase.md +4 -30
  19. package/specdacular/workflows/new-feature.md +14 -38
  20. package/specdacular/workflows/plan-feature.md +6 -29
  21. package/specdacular/workflows/plan-phase.md +4 -29
  22. package/specdacular/workflows/prepare-phase.md +4 -35
  23. package/specdacular/workflows/research-phase.md +4 -30
  24. package/specdacular/workflows/review-feature.md +316 -0
  25. package/specdacular/workflows/review-phase.md +4 -30
  26. package/specdacular/workflows/toolbox.md +115 -0
  27. package/commands/specd/feature/discuss.md +0 -66
  28. package/commands/specd/feature/plan.md +0 -68
  29. package/commands/specd/feature/research.md +0 -459
  30. package/commands/specd/phase/execute.md +0 -68
  31. package/commands/specd/phase/insert.md +0 -62
  32. package/commands/specd/phase/plan.md +0 -73
  33. package/commands/specd/phase/prepare.md +0 -75
  34. package/commands/specd/phase/renumber.md +0 -66
  35. package/commands/specd/phase/research.md +0 -65
  36. package/commands/specd/phase/review.md +0 -80
@@ -0,0 +1,35 @@
1
+ <shared name="commit_docs">
2
+
3
+ ## Auto-Commit Docs
4
+
5
+ Commit `.specd/` documentation changes, respecting the user's auto-commit setting.
6
+
7
+ **Before using this reference, you must have ready:**
8
+ - `$FILES` — the files to `git add` (space-separated paths)
9
+ - `$MESSAGE` — the commit message
10
+ - `$LABEL` — short label for the skip message (e.g., "discussion updates", "plan complete", "feature completion")
11
+
12
+ **Check auto-commit setting:**
13
+
14
+ ```bash
15
+ cat .specd/config.json 2>/dev/null || echo '{"auto_commit_docs": true}'
16
+ ```
17
+
18
+ **If `auto_commit_docs` is `false`:**
19
+ Do NOT run git commands. Instead print:
20
+
21
+ ```
22
+ Auto-commit disabled for docs — $LABEL not committed.
23
+ Modified files: $FILES
24
+ ```
25
+
26
+ Then skip ahead to the next step in your workflow.
27
+
28
+ **If `auto_commit_docs` is `true` or not set (default):**
29
+
30
+ ```bash
31
+ git add $FILES
32
+ git commit -m "$MESSAGE"
33
+ ```
34
+
35
+ </shared>
@@ -0,0 +1,57 @@
1
+ <shared name="select_feature">
2
+
3
+ ## Feature Selection
4
+
5
+ Determine which feature to work on.
6
+
7
+ **If $ARGUMENTS provided:**
8
+ Use as feature name. Normalize to kebab-case (lowercase, hyphens).
9
+
10
+ ```bash
11
+ [ -d ".specd/features/$ARGUMENTS" ] || { echo "not found"; exit 1; }
12
+ ```
13
+
14
+ **If feature not found:**
15
+ ```
16
+ Feature '{name}' not found.
17
+
18
+ Available features:
19
+ ```
20
+
21
+ ```bash
22
+ ls -d .specd/features/*/ 2>/dev/null | while read dir; do
23
+ basename "$dir"
24
+ done
25
+ ```
26
+
27
+ End workflow.
28
+
29
+ **If no arguments:**
30
+ Scan for in-progress features:
31
+
32
+ ```bash
33
+ # List feature directories with config.json
34
+ for dir in .specd/features/*/config.json; do
35
+ [ -f "$dir" ] && echo "$dir"
36
+ done
37
+ ```
38
+
39
+ Read each `config.json` and filter where `stage != "complete"`.
40
+
41
+ **If no features found:**
42
+ ```
43
+ No features in progress.
44
+
45
+ Start one with /specd:feature:new
46
+ ```
47
+ End workflow.
48
+
49
+ **If features found:**
50
+ Use AskUserQuestion:
51
+ - header: "Feature"
52
+ - question: "Which feature would you like to work on?"
53
+ - options: List each feature with its current stage (e.g., "my-feature (discussion)", "other-feature (execution)")
54
+
55
+ Use the selected feature name.
56
+
57
+ </shared>
@@ -0,0 +1,30 @@
1
+ <shared name="select_phase">
2
+
3
+ ## Phase Selection
4
+
5
+ Determine which phase to work on. Requires a feature name to be already selected.
6
+
7
+ **Read available phases:**
8
+ Read `.specd/features/{feature-name}/ROADMAP.md` and extract the phase list with status.
9
+
10
+ ```bash
11
+ [ -f ".specd/features/{feature-name}/ROADMAP.md" ] || { echo "No roadmap found. Run /specd:feature:continue to create one."; exit 1; }
12
+ ```
13
+
14
+ Parse the ROADMAP.md "Phases" section to get:
15
+ - Phase number
16
+ - Phase name
17
+ - Phase status (from STATE.md execution progress: not started, executing, executed, completed)
18
+
19
+ **If only one phase available (not completed):**
20
+ Auto-select it and confirm: "Working on Phase {N}: {name}."
21
+
22
+ **If multiple phases available:**
23
+ Use AskUserQuestion:
24
+ - header: "Phase"
25
+ - question: "Which phase would you like to work on?"
26
+ - options: List each phase with status (e.g., "Phase 1: Foundation — completed", "Phase 2: API — executing", "Phase 3: UI — not started")
27
+
28
+ Use the selected phase number.
29
+
30
+ </shared>
@@ -30,6 +30,16 @@
30
30
 
31
31
  ## Execution Progress
32
32
 
33
+ ### Phase Status
34
+
35
+ Phase status tracks: `pending` → `executing` → `executed` → `completed`
36
+ - **pending** — Phase not yet started (prepare/plan needed)
37
+ - **executing** — Plans are being executed
38
+ - **executed** — All plans done, pending user review
39
+ - **completed** — User approved, ready for next phase
40
+
41
+ Current phase status is tracked in `config.json` → `phases.current_status`.
42
+
33
43
  ### Current Plan
34
44
  - Plan: none
35
45
  - Task: —
@@ -81,7 +91,7 @@
81
91
 
82
92
  {What the user should do next based on current state.}
83
93
 
84
- **Resume:** `/specd:feature:next {feature-name}` — Picks up where you left off and guides the next step automatically.
94
+ **Resume:** `/specd:feature:continue {feature-name}` — Picks up where you left off and guides the next step automatically.
85
95
 
86
96
  ---
87
97
 
@@ -10,7 +10,7 @@ Smart state machine that reads current feature state and drives the entire lifec
10
10
  read state → show status → determine next action → execute → loop
11
11
  ```
12
12
 
13
- The user only needs to remember `/specd:feature:next`. The state machine figures out what to do.
13
+ The user only needs to remember `/specd:feature:continue`. The state machine figures out what to do next.
14
14
  </purpose>
15
15
 
16
16
  <philosophy>
@@ -36,42 +36,7 @@ When no argument is given, scan for in-progress features and let the user pick.
36
36
  <process>
37
37
 
38
38
  <step name="select_feature">
39
- Determine which feature to work on.
40
-
41
- **If $ARGUMENTS provided:**
42
- Use as feature name. Normalize to kebab-case.
43
-
44
- ```bash
45
- [ -d ".specd/features/$ARGUMENTS" ] || { echo "not found"; exit 1; }
46
- ```
47
-
48
- **If no arguments:**
49
- Scan for in-progress features:
50
-
51
- ```bash
52
- # List feature directories with config.json
53
- for dir in .specd/features/*/config.json; do
54
- [ -f "$dir" ] && echo "$dir"
55
- done
56
- ```
57
-
58
- Read each `config.json` and filter where `stage != "complete"`.
59
-
60
- **If no features found:**
61
- ```
62
- No features in progress.
63
-
64
- Start one with /specd:feature:new
65
- ```
66
- End workflow.
67
-
68
- **If features found:**
69
- Use AskUserQuestion:
70
- - header: "Feature"
71
- - question: "Which feature would you like to work on?"
72
- - options: List each feature with its current stage (e.g., "my-feature (discussion)", "other-feature (execution)")
73
-
74
- Use the selected feature name.
39
+ @~/.claude/specdacular/references/select-feature.md
75
40
 
76
41
  Continue to read_state.
77
42
  </step>
@@ -135,7 +100,8 @@ For each project phase, determine status:
135
100
  - **not_started** — Phase exists but not yet prepared/planned
136
101
 
137
102
  **Check for optional project argument:**
138
- If arguments contain a second token after feature name (e.g., `/specd:feature:next feature-name project-name`):
103
+ If arguments contain a second token after feature name (e.g., `/specd:feature:continue feature-name project-name`):
104
+
139
105
  - Set target_project = project name
140
106
  - Validate project exists in feature config.json
141
107
 
@@ -187,7 +153,7 @@ Present a concise status summary.
187
153
  ```
188
154
  **Phases:** {completed}/{total}
189
155
  **Current phase:** {N} — {name}
190
- **Phase status:** {prepared | planned | executing | executed}
156
+ **Phase status:** {from config.json phases.current_status: pending | executing | executed}
191
157
  ```
192
158
 
193
159
  **If mode = "project":**
@@ -303,21 +269,24 @@ Route to the appropriate sub-step based on state:
303
269
  **stage=research (RESEARCH.md exists):**
304
270
  → Go to action_plan_offer
305
271
 
306
- **stage=planned, no phases started:**
272
+ **stage=planned or stage=execution, current_status == "pending", phase not prepared:**
307
273
  → Go to action_phase_prepare
308
274
 
309
- **stage=planned or stage=execution, current phase prepared but not planned:**
275
+ **stage=planned or stage=execution, current_status == "pending", phase prepared but not planned:**
310
276
  → Go to action_phase_plan
311
277
 
312
- **stage=execution, current phase planned but not all plans executed:**
278
+ **stage=execution, current_status == "executing":**
313
279
  → Go to action_phase_execute
314
280
 
315
- **stage=execution, current phase all plans executed:**
281
+ **stage=execution, current_status == "executed":**
316
282
  → Go to action_phase_review
317
283
 
318
- **stage=execution, all phases done:**
284
+ **stage=execution, phases.completed == phases.total:**
319
285
  → Go to action_complete
320
286
 
287
+ **Note:** `current_status` is read from `config.json` → `phases.current_status` (DEC-013).
288
+ When `current_status` is missing, treat as `"pending"`.
289
+
321
290
  </step>
322
291
 
323
292
  <step name="action_discuss">
@@ -338,7 +307,7 @@ Use AskUserQuestion:
338
307
  - "Discuss" — Probe open areas (recommended if gray areas exist)
339
308
  - "Skip to research" — Move to researching implementation patterns
340
309
  - "Skip to planning" — Jump to creating the roadmap (only if enough context)
341
- - "Stop for now" — Save progress, come back with /specd:feature:next
310
+ - "Stop for now" — Save progress, come back with /specd:feature:continue
342
311
 
343
312
  **If Discuss:**
344
313
  Execute the discuss-feature workflow logic:
@@ -379,7 +348,7 @@ Use AskUserQuestion:
379
348
  - "Research" — Spawn parallel agents to investigate patterns (recommended)
380
349
  - "Skip to planning" — Jump straight to roadmap creation
381
350
  - "Discuss more" — Go back to discussion
382
- - "Stop for now" — Come back with /specd:feature:next
351
+ - "Stop for now" — Come back with /specd:feature:continue
383
352
 
384
353
  **If Research:**
385
354
  Execute the research-feature workflow logic:
@@ -412,7 +381,7 @@ Use AskUserQuestion:
412
381
  - options:
413
382
  - "Create roadmap" — Derive phases and write ROADMAP.md (recommended)
414
383
  - "Discuss more" — Go back to discussion
415
- - "Stop for now" — Come back with /specd:feature:next
384
+ - "Stop for now" — Come back with /specd:feature:continue
416
385
 
417
386
  **If Create roadmap:**
418
387
  → Go to action_plan_execute
@@ -452,7 +421,7 @@ Use AskUserQuestion:
452
421
  - options:
453
422
  - "Prepare phase" — Discuss gray areas + optional research (recommended)
454
423
  - "Skip to planning" — Jump to creating detailed plans
455
- - "Stop for now" — Come back with /specd:feature:next
424
+ - "Stop for now" — Come back with /specd:feature:continue
456
425
 
457
426
  **If Prepare phase:**
458
427
  Execute the prepare-phase workflow logic:
@@ -486,7 +455,7 @@ Use AskUserQuestion:
486
455
  - options:
487
456
  - "Create plans" — Write executable PLAN.md files (recommended)
488
457
  - "Prepare first" — Go back to phase preparation
489
- - "Stop for now" — Come back with /specd:feature:next
458
+ - "Stop for now" — Come back with /specd:feature:continue
490
459
 
491
460
  **If Create plans:**
492
461
  Execute the plan-phase workflow logic:
@@ -519,7 +488,7 @@ Use AskUserQuestion:
519
488
  - question: "Execute Phase {N} plans?"
520
489
  - options:
521
490
  - "Execute" — Run the next plan with progress tracking (recommended)
522
- - "Stop for now" — Come back with /specd:feature:next
491
+ - "Stop for now" — Come back with /specd:feature:continue
523
492
 
524
493
  **If Execute:**
525
494
  Execute the execute-plan workflow logic:
@@ -534,38 +503,47 @@ After execution completes (commit done), loop back to read_state.
534
503
  </step>
535
504
 
536
505
  <step name="action_phase_review">
537
- Offer to review the completed phase.
506
+ Offer user-guided review for the executed phase (DEC-003, DEC-009).
538
507
 
539
508
  ```
540
- ### Phase {N} Execution Complete
509
+ ### Phase {N} Executed — Pending Review
541
510
 
542
- All plans for Phase {N} have been executed. Review compares what was planned against what was actually built.
511
+ All plans for Phase {N}: {phase-name} have been executed.
512
+ Review shows what was built and lets you approve or request revisions.
543
513
  ```
544
514
 
545
515
  Use AskUserQuestion:
546
516
  - header: "Next Step"
547
517
  - question: "Review Phase {N}?"
548
518
  - options:
549
- - "Review" — Compare plans against actual code (recommended)
550
- - "Skip to next phase" — Move on to Phase {N+1}
551
- - "Stop for now" — Come back with /specd:feature:next
519
+ - "Review" — See what changed, approve or request fixes (recommended)
520
+ - "Approve without review" — Mark phase complete and move on
521
+ - "Stop for now" — Come back with /specd:feature:continue
552
522
 
553
523
  **If Review:**
554
- Execute the review-phase workflow logic:
555
- @~/.claude/specdacular/workflows/review-phase.md
524
+ Execute the review-feature workflow logic:
525
+ @~/.claude/specdacular/workflows/review-feature.md
556
526
 
557
- Pass feature name and phase number as arguments.
527
+ Pass feature name as argument.
558
528
 
559
- After review completes (commit done):
529
+ After review completes (phase approved and marked completed), loop back to read_state.
560
530
 
561
- **If there are more phases:**
562
- Loop back to read_state (will pick up next phase).
531
+ **If Approve without review:**
532
+ Update config.json:
533
+ - Set `phases.current_status` to `"pending"`
534
+ - Increment `phases.completed`
535
+ - Advance `phases.current` to next phase
536
+ - Remove `phases.phase_start_commit`
563
537
 
564
- **If all phases done:**
565
- → Go to action_complete
538
+ Update STATE.md: mark phase as complete.
566
539
 
567
- **If Skip to next phase:**
568
- Loop back to read_state (will pick up next phase).
540
+ Commit state changes:
541
+ ```bash
542
+ git add .specd/features/{feature}/config.json .specd/features/{feature}/STATE.md
543
+ git commit -m "docs({feature}): phase {N} approved (without review)"
544
+ ```
545
+
546
+ Loop back to read_state.
569
547
 
570
548
  **If Stop for now:**
571
549
  → Go to action_stop
@@ -592,29 +570,11 @@ Set `stage` to `"complete"`.
592
570
  **Update STATE.md:**
593
571
  Set stage to `complete`.
594
572
 
595
- **First, check auto-commit setting. Run this command:**
596
-
597
- ```bash
598
- cat .specd/config.json 2>/dev/null || echo '{"auto_commit_docs": true}'
599
- ```
600
-
601
- Read the output. If `auto_commit_docs` is `false`, do NOT run the git commands below. Instead print:
602
-
603
- ```
604
- Auto-commit disabled for docs — feature completion not committed.
605
- Modified files: .specd/features/{name}/config.json, .specd/features/{name}/STATE.md
606
- ```
607
-
608
- Then end the workflow.
573
+ @~/.claude/specdacular/references/commit-docs.md
609
574
 
610
- **Only if `auto_commit_docs` is `true` or not set (default), run:**
611
-
612
- ```bash
613
- git add .specd/features/{name}/config.json .specd/features/{name}/STATE.md
614
- git commit -m "docs({feature-name}): feature complete
615
-
616
- All {N} phases executed."
617
- ```
575
+ - **$FILES:** `.specd/features/{name}/config.json .specd/features/{name}/STATE.md`
576
+ - **$MESSAGE:** `docs({feature-name}): feature complete` with phase count
577
+ - **$LABEL:** `feature completion`
618
578
 
619
579
  End workflow.
620
580
  </step>
@@ -627,7 +587,7 @@ Clean exit with resume instructions.
627
587
 
628
588
  Progress saved. Resume anytime with:
629
589
 
630
- /specd:feature:next {feature-name}
590
+ /specd:feature:continue {feature-name}
631
591
  ```
632
592
 
633
593
  End workflow.
@@ -653,7 +613,7 @@ End workflow.
653
613
  - Per-project progress dashboard displayed
654
614
  - Unblocked work computed from dependency graph
655
615
  - Auto-suggests when one phase ready, asks when multiple
656
- - Optional project argument: /specd:feature:next feature project
616
+ - Optional project argument: `/specd:feature:continue feature project`
657
617
  - Delegates to prepare/plan/execute based on phase readiness
658
618
  - One-session-at-a-time constraint documented (DEC-011)
659
619
  - Direct sub-project access always works (DEC-001)
@@ -312,34 +312,11 @@ Continue to commit.
312
312
  <step name="commit">
313
313
  Commit the discussion updates.
314
314
 
315
- **First, check auto-commit setting. Run this command:**
315
+ @~/.claude/specdacular/references/commit-docs.md
316
316
 
317
- ```bash
318
- cat .specd/config.json 2>/dev/null || echo '{"auto_commit_docs": true}'
319
- ```
320
-
321
- Read the output. If `auto_commit_docs` is `false`, do NOT run the git commands below. Instead print:
322
-
323
- ```
324
- Auto-commit disabled for docs — changes not committed.
325
- Modified files: .specd/features/{feature-name}/CONTEXT.md, DECISIONS.md, STATE.md, config.json
326
- ```
327
-
328
- Then skip ahead to completion.
329
-
330
- **Only if `auto_commit_docs` is `true` or not set (default), run:**
331
-
332
- ```bash
333
- git add .specd/features/{feature-name}/CONTEXT.md .specd/features/{feature-name}/DECISIONS.md .specd/features/{feature-name}/STATE.md .specd/features/{feature-name}/config.json
334
- git commit -m "docs({feature-name}): discussion session {N}
335
-
336
- Resolved:
337
- - {Area 1}
338
- - {Area 2}
339
-
340
- New decisions: {count}
341
- - DEC-XXX: {title}"
342
- ```
317
+ - **$FILES:** `.specd/features/{feature-name}/CONTEXT.md .specd/features/{feature-name}/DECISIONS.md .specd/features/{feature-name}/STATE.md .specd/features/{feature-name}/config.json`
318
+ - **$MESSAGE:** `docs({feature-name}): discussion session {N}` with resolved areas and new decisions
319
+ - **$LABEL:** `discussion updates`
343
320
 
344
321
  Continue to completion.
345
322
  </step>
@@ -138,6 +138,30 @@ Set mode = "project".
138
138
  - Patterns to follow
139
139
  - Phase-specific context and research (if phase:prepare/phase:research were run)
140
140
 
141
+ **Record phase start commit (DEC-012, DEC-013):**
142
+
143
+ Check `phases.current_status` from config.json:
144
+
145
+ **If `current_status` is `"pending"` or missing:**
146
+ This is the first plan execution for this phase. Record the starting point:
147
+
148
+ ```bash
149
+ git rev-parse HEAD
150
+ ```
151
+
152
+ Update config.json:
153
+ - Set `phases.phase_start_commit` to the commit hash
154
+ - Set `phases.current_status` to `"executing"`
155
+
156
+ Commit the config update:
157
+ ```bash
158
+ git add .specd/features/{feature}/config.json
159
+ git commit -m "docs({feature}): start phase {N} execution"
160
+ ```
161
+
162
+ **If `current_status` is already `"executing"`:**
163
+ Phase execution is resuming after a context reset. No changes needed — `phase_start_commit` is already recorded.
164
+
141
165
  Continue to find_plan.
142
166
  </step>
143
167
 
@@ -330,27 +354,10 @@ Use AskUserQuestion:
330
354
 
331
355
  ### 5. Commit task (if auto_commit enabled)
332
356
 
333
- **First, check auto-commit setting. Run this command:**
334
-
335
- ```bash
336
- cat .specd/config.json 2>/dev/null || echo '{"auto_commit_code": true}'
337
- ```
357
+ @~/.claude/specdacular/references/commit-code.md
338
358
 
339
- Read the output. If `auto_commit_code` is `false`, do NOT run the git commands below. Instead print:
340
-
341
- ```
342
- Auto-commit disabled for code — changes not committed.
343
- Modified files: {files from task}
344
- ```
345
-
346
- Then skip to step 6.
347
-
348
- **Only if `auto_commit_code` is `true` or not set (default), run:**
349
-
350
- ```bash
351
- git add {files from task}
352
- git commit -m "feat({feature}): {task description}"
353
- ```
359
+ - **$FILES:** `{files from task}`
360
+ - **$MESSAGE:** `feat({feature}): {task description}`
354
361
 
355
362
  ### 6. Update STATE.md
356
363
  Update current task number:
@@ -386,30 +393,19 @@ Mark plan complete and suggest next.
386
393
 
387
394
  3. Update stage progress checkboxes
388
395
 
389
- **Commit STATE.md update. First, check auto-commit setting. Run this command:**
390
-
391
- ```bash
392
- cat .specd/config.json 2>/dev/null || echo '{"auto_commit_docs": true}'
393
- ```
394
-
395
- Read the output. If `auto_commit_docs` is `false`, do NOT run the git commands below. Instead print:
396
-
397
- ```
398
- Auto-commit disabled for docs — STATE.md changes not committed.
399
- ```
396
+ **Commit STATE.md update:**
400
397
 
401
- Then skip ahead to "Find next plan".
398
+ @~/.claude/specdacular/references/commit-docs.md
402
399
 
403
- **Only if `auto_commit_docs` is `true` or not set (default), run:**
404
-
405
- ```bash
406
- git add .specd/features/{feature}/STATE.md
407
- git commit -m "docs({feature}): complete plan {phase-XX/YY}"
408
- ```
400
+ - **$FILES:** `.specd/features/{feature}/STATE.md`
401
+ - **$MESSAGE:** `docs({feature}): complete plan {phase-XX/YY}`
402
+ - **$LABEL:** `plan completion`
409
403
 
410
404
  **Find next plan:**
411
- - Check ROADMAP.md for next plan in sequence
412
- - Or next phase if current phase complete
405
+ - Check ROADMAP.md for next plan in sequence within the current phase
406
+ - Include any decimal-numbered fix phases (e.g., phase-{N}.1, phase-{N}.2)
407
+
408
+ **If next plan exists in current phase:**
413
409
 
414
410
  **Present summary:**
415
411
  ```
@@ -428,14 +424,46 @@ git commit -m "docs({feature}): complete plan {phase-XX/YY}"
428
424
 
429
425
  ───────────────────────────────────────────────────────
430
426
 
431
- **Next plan:** {path or "None - all plans complete"}
427
+ **Next plan:** {path}
428
+
429
+ Run `/specd:feature:continue {feature}` to continue.
430
+ ```
431
+
432
+ End workflow (continue-feature will pick up the next plan).
433
+
434
+ **If no more plans in current phase (phase execution complete):**
435
+
436
+ **Mark phase as executed (DEC-009, DEC-013):**
432
437
 
433
- {If next plan exists:}
434
- Run `/specd:phase:execute {feature}` to continue.
438
+ Update config.json:
439
+ - Set `phases.current_status` to `"executed"`
440
+ - Do NOT increment `phases.completed`
441
+ - Do NOT advance `phases.current`
442
+
443
+ Update STATE.md: note phase is executed, pending review.
444
+
445
+ Commit state changes:
446
+ ```bash
447
+ git add .specd/features/{feature}/config.json .specd/features/{feature}/STATE.md
448
+ git commit -m "docs({feature}): phase {N} executed — pending review"
449
+ ```
450
+
451
+ **Present summary:**
452
+ ```
453
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
454
+ PHASE {N} EXECUTED
455
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
456
+
457
+ **Plan:** {path}
458
+ **Tasks executed:** {N}
459
+ **Deviations logged:** {count}
460
+
461
+ All plans for Phase {N} have been executed.
462
+ Phase is pending review before advancing to Phase {N+1}.
463
+
464
+ ───────────────────────────────────────────────────────
435
465
 
436
- {If all complete:}
437
- All plans complete! Feature '{feature}' is implemented.
438
- Review STATE.md and CHANGELOG.md for summary.
466
+ Resume with /specd:feature:continue {feature} for review.
439
467
  ```
440
468
 
441
469
  **If orchestrator mode:**
@@ -552,7 +580,7 @@ Update orchestrator state and present summary after contract review.
552
580
 
553
581
  ───────────────────────────────────────────────────────
554
582
 
555
- Resume with /specd:feature:next {feature-name}
583
+ Resume with /specd:feature:continue {feature-name}
556
584
  ```
557
585
 
558
586
  End workflow (returns to orchestrator scheduling via next).