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.
- package/README.md +40 -86
- package/commands/specd/feature/{next.md → continue.md} +6 -6
- package/commands/specd/feature/new.md +2 -2
- package/commands/specd/feature/toolbox.md +49 -0
- package/commands/specd/help.md +1 -146
- package/commands/specd/update.md +4 -6
- package/package.json +1 -1
- package/specdacular/HELP.md +85 -0
- package/specdacular/references/commit-code.md +34 -0
- package/specdacular/references/commit-docs.md +35 -0
- package/specdacular/references/select-feature.md +57 -0
- package/specdacular/references/select-phase.md +30 -0
- package/specdacular/templates/features/STATE.md +11 -1
- package/specdacular/workflows/{next-feature.md → continue-feature.md} +50 -90
- package/specdacular/workflows/discuss-feature.md +4 -27
- package/specdacular/workflows/execute-plan.md +75 -47
- package/specdacular/workflows/insert-phase.md +50 -26
- package/specdacular/workflows/map-codebase.md +4 -30
- package/specdacular/workflows/new-feature.md +14 -38
- package/specdacular/workflows/plan-feature.md +6 -29
- package/specdacular/workflows/plan-phase.md +4 -29
- package/specdacular/workflows/prepare-phase.md +4 -35
- package/specdacular/workflows/research-phase.md +4 -30
- package/specdacular/workflows/review-feature.md +316 -0
- package/specdacular/workflows/review-phase.md +4 -30
- package/specdacular/workflows/toolbox.md +115 -0
- package/commands/specd/feature/discuss.md +0 -66
- package/commands/specd/feature/plan.md +0 -68
- package/commands/specd/feature/research.md +0 -459
- package/commands/specd/phase/execute.md +0 -68
- package/commands/specd/phase/insert.md +0 -62
- package/commands/specd/phase/plan.md +0 -73
- package/commands/specd/phase/prepare.md +0 -75
- package/commands/specd/phase/renumber.md +0 -66
- package/commands/specd/phase/research.md +0 -65
- 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:
|
|
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:
|
|
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
|
-
|
|
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:
|
|
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:** {
|
|
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,
|
|
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,
|
|
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,
|
|
278
|
+
**stage=execution, current_status == "executing":**
|
|
313
279
|
→ Go to action_phase_execute
|
|
314
280
|
|
|
315
|
-
**stage=execution,
|
|
281
|
+
**stage=execution, current_status == "executed":**
|
|
316
282
|
→ Go to action_phase_review
|
|
317
283
|
|
|
318
|
-
**stage=execution,
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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
|
|
506
|
+
Offer user-guided review for the executed phase (DEC-003, DEC-009).
|
|
538
507
|
|
|
539
508
|
```
|
|
540
|
-
### Phase {N}
|
|
509
|
+
### Phase {N} Executed — Pending Review
|
|
541
510
|
|
|
542
|
-
All plans for Phase {N} have been executed.
|
|
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" —
|
|
550
|
-
- "
|
|
551
|
-
- "Stop for now" — Come back with /specd:feature:
|
|
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-
|
|
555
|
-
@~/.claude/specdacular/workflows/review-
|
|
524
|
+
Execute the review-feature workflow logic:
|
|
525
|
+
@~/.claude/specdacular/workflows/review-feature.md
|
|
556
526
|
|
|
557
|
-
Pass feature name
|
|
527
|
+
Pass feature name as argument.
|
|
558
528
|
|
|
559
|
-
After review completes (
|
|
529
|
+
After review completes (phase approved and marked completed), loop back to read_state.
|
|
560
530
|
|
|
561
|
-
**If
|
|
562
|
-
|
|
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
|
-
|
|
565
|
-
→ Go to action_complete
|
|
538
|
+
Update STATE.md: mark phase as complete.
|
|
566
539
|
|
|
567
|
-
|
|
568
|
-
|
|
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
|
-
|
|
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
|
-
|
|
611
|
-
|
|
612
|
-
|
|
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:
|
|
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:
|
|
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
|
-
|
|
315
|
+
@~/.claude/specdacular/references/commit-docs.md
|
|
316
316
|
|
|
317
|
-
|
|
318
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
398
|
+
@~/.claude/specdacular/references/commit-docs.md
|
|
402
399
|
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
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
|
-
-
|
|
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
|
|
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
|
-
|
|
434
|
-
|
|
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
|
-
|
|
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:
|
|
583
|
+
Resume with /specd:feature:continue {feature-name}
|
|
556
584
|
```
|
|
557
585
|
|
|
558
586
|
End workflow (returns to orchestrator scheduling via next).
|