specdacular 0.7.1 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/README.md +72 -74
  2. package/commands/specd/continue.md +59 -0
  3. package/commands/specd/new.md +65 -0
  4. package/commands/specd/status.md +1 -1
  5. package/commands/specd/toolbox.md +59 -0
  6. package/package.json +1 -1
  7. package/specdacular/HELP.md +19 -16
  8. package/specdacular/agents/feature-researcher.md +4 -4
  9. package/specdacular/references/load-context.md +83 -0
  10. package/specdacular/references/record-decision.md +61 -0
  11. package/specdacular/references/select-feature.md +20 -20
  12. package/specdacular/references/select-phase.md +3 -3
  13. package/specdacular/references/spawn-research-agents.md +180 -0
  14. package/specdacular/references/synthesize-research.md +127 -0
  15. package/specdacular/references/validate-task.md +64 -0
  16. package/specdacular/templates/{features → tasks}/CHANGELOG.md +2 -8
  17. package/specdacular/templates/{features → tasks}/CONTEXT.md +6 -17
  18. package/specdacular/templates/tasks/DECISIONS.md +46 -0
  19. package/specdacular/templates/{features → tasks}/FEATURE.md +3 -3
  20. package/specdacular/templates/tasks/PLAN.md +91 -0
  21. package/specdacular/templates/tasks/RESEARCH.md +121 -0
  22. package/specdacular/templates/{features → tasks}/ROADMAP.md +6 -43
  23. package/specdacular/templates/tasks/STATE.md +93 -0
  24. package/specdacular/templates/tasks/config.json +15 -0
  25. package/specdacular/workflows/continue.md +275 -0
  26. package/specdacular/workflows/discuss.md +184 -0
  27. package/specdacular/workflows/execute.md +174 -0
  28. package/specdacular/workflows/new.md +299 -0
  29. package/specdacular/workflows/orchestrator/new.md +265 -0
  30. package/specdacular/workflows/orchestrator/plan.md +169 -0
  31. package/specdacular/workflows/plan.md +201 -0
  32. package/specdacular/workflows/research.md +166 -0
  33. package/specdacular/workflows/review.md +289 -0
  34. package/specdacular/workflows/status.md +17 -17
  35. package/commands/specd/blueprint.md +0 -64
  36. package/commands/specd/feature/continue.md +0 -84
  37. package/commands/specd/feature/new.md +0 -67
  38. package/commands/specd/feature/toolbox.md +0 -49
  39. package/specdacular/templates/blueprint/index.html +0 -110
  40. package/specdacular/templates/blueprint/scripts.js +0 -71
  41. package/specdacular/templates/blueprint/styles.css +0 -429
  42. package/specdacular/templates/features/DECISIONS.md +0 -109
  43. package/specdacular/templates/features/DEPENDENCIES.md +0 -47
  44. package/specdacular/templates/features/PLAN.md +0 -180
  45. package/specdacular/templates/features/RESEARCH.md +0 -183
  46. package/specdacular/templates/features/STATE.md +0 -110
  47. package/specdacular/templates/features/config.json +0 -20
  48. package/specdacular/workflows/blueprint-diagrams.md +0 -273
  49. package/specdacular/workflows/blueprint-wireframes.md +0 -312
  50. package/specdacular/workflows/blueprint.md +0 -372
  51. package/specdacular/workflows/continue-feature.md +0 -621
  52. package/specdacular/workflows/discuss-feature.md +0 -382
  53. package/specdacular/workflows/execute-plan.md +0 -636
  54. package/specdacular/workflows/insert-phase.md +0 -246
  55. package/specdacular/workflows/new-feature.md +0 -760
  56. package/specdacular/workflows/plan-feature.md +0 -691
  57. package/specdacular/workflows/plan-phase.md +0 -355
  58. package/specdacular/workflows/prepare-phase.md +0 -745
  59. package/specdacular/workflows/renumber-phases.md +0 -273
  60. package/specdacular/workflows/research-feature.md +0 -252
  61. package/specdacular/workflows/research-phase.md +0 -576
  62. package/specdacular/workflows/review-feature.md +0 -316
  63. package/specdacular/workflows/review-phase.md +0 -545
@@ -1,621 +0,0 @@
1
- <purpose>
2
- Smart state machine that reads current feature state and drives the entire lifecycle. After each action, loops back and offers the next step. User can stop at any natural boundary.
3
-
4
- **One command for the entire lifecycle:** discussion, research, planning, phase preparation, phase planning, phase execution, phase review.
5
-
6
- **Multi-project:** In orchestrator mode, aggregates state across all sub-projects and uses the dependency graph to schedule work. Users can also work directly in sub-projects for single-project changes (DEC-001).
7
-
8
- **Core loop:**
9
- ```
10
- read state → show status → determine next action → execute → loop
11
- ```
12
-
13
- The user only needs to remember `/specd:feature:continue`. The state machine figures out what to do next.
14
- </purpose>
15
-
16
- <philosophy>
17
-
18
- ## Guide, Don't Force
19
-
20
- Show the user where they are and what the natural next step is. Always offer alternatives and a "stop for now" option. The user controls the rhythm.
21
-
22
- ## DRY — Delegate to Existing Workflows
23
-
24
- This workflow is a dispatcher. It reads state, determines the next action, then delegates to existing workflow files for the actual work. It does NOT duplicate logic from other workflows.
25
-
26
- ## Natural Boundaries
27
-
28
- After each significant action (discussion session, research, planning, phase completion), offer the user a chance to stop. These are natural context-window boundaries too.
29
-
30
- ## Feature Selection
31
-
32
- When no argument is given, scan for in-progress features and let the user pick. Always show the picker, even for a single feature — it confirms intent.
33
-
34
- </philosophy>
35
-
36
- <process>
37
-
38
- <step name="select_feature">
39
- @~/.claude/specdacular/references/select-feature.md
40
-
41
- Continue to read_state.
42
- </step>
43
-
44
- <step name="read_state">
45
- Load all feature context to determine current position.
46
-
47
- **Read:**
48
- - `.specd/features/{name}/config.json` — Stage, phases info
49
- - `.specd/features/{name}/STATE.md` — Detailed progress
50
- - `.specd/features/{name}/CONTEXT.md` — Discussion context, gray areas
51
- - `.specd/features/{name}/ROADMAP.md` — If exists, phase overview
52
- - `.specd/features/{name}/FEATURE.md` — Requirements summary
53
-
54
- **Parse from config.json:**
55
- - `stage` — discussion | research | planned | execution | complete
56
- - `phases.total` — Number of phases (if planned)
57
- - `phases.current` — Current phase number (if in execution)
58
- - `phases.completed` — Number of completed phases
59
-
60
- **Parse from CONTEXT.md:**
61
- - Gray areas remaining (from "Gray Areas Remaining" section)
62
-
63
- **Parse from ROADMAP.md (if exists):**
64
- - Phase list with status
65
-
66
- **Parse from STATE.md:**
67
- - Execution progress (which plans are complete)
68
- - Review cycles
69
-
70
- **Determine phase status (if in planned/execution stage):**
71
- For the current/next phase, check:
72
- ```bash
73
- # Check if phase directory has CONTEXT.md (prepared)
74
- [ -f ".specd/features/{name}/plans/phase-{NN}/CONTEXT.md" ] && echo "prepared"
75
-
76
- # Check if phase has PLAN.md files (planned)
77
- ls .specd/features/{name}/plans/phase-{NN}/*-PLAN.md 2>/dev/null | head -1
78
-
79
- # Check STATE.md for completed plans in this phase
80
- ```
81
-
82
- **Check for orchestrator mode:**
83
-
84
- Read feature's `config.json`. If `"orchestrator": true`:
85
-
86
- Set mode = "orchestrator".
87
-
88
- **Aggregate cross-project state:**
89
- 1. Read orchestrator DEPENDENCIES.md — cross-project phase dependency graph
90
- 2. For each project in feature config.json `"projects"` array:
91
- - Read `{project-path}/.specd/features/{feature-name}/config.json` — stage, phases
92
- - Read `{project-path}/.specd/features/{feature-name}/STATE.md` — detailed progress
93
-
94
- **Build combined state:**
95
- For each project phase, determine status:
96
- - **complete** — All plans executed for this phase
97
- - **in_progress** — Some plans executed
98
- - **ready** — All cross-project dependencies satisfied, phase can start
99
- - **blocked** — Waiting on another project's phase to complete
100
- - **not_started** — Phase exists but not yet prepared/planned
101
-
102
- **Check for optional project argument:**
103
- If arguments contain a second token after feature name (e.g., `/specd:feature:continue feature-name project-name`):
104
-
105
- - Set target_project = project name
106
- - Validate project exists in feature config.json
107
-
108
- ```
109
- Orchestrator mode: aggregating state across {N} projects.
110
- ```
111
-
112
- Continue to show_status (orchestrator variant).
113
-
114
- **If not orchestrator:**
115
- Set mode = "project".
116
-
117
- Continue to show_status.
118
- </step>
119
-
120
- <step name="show_status">
121
- Present a concise status summary.
122
-
123
- ```
124
- ## {feature-name}
125
-
126
- **Stage:** {stage}
127
- **Last updated:** {date}
128
-
129
- {Stage-specific summary — see below}
130
- ```
131
-
132
- **If stage=discussion:**
133
- ```
134
- **Discussion sessions:** {N}
135
- **Decisions made:** {N}
136
- **Gray areas remaining:** {count}
137
- {If count > 0: list them}
138
- ```
139
-
140
- **If stage=research:**
141
- ```
142
- **Research:** Complete
143
- **Key findings:** {2-3 bullet points from RESEARCH.md}
144
- ```
145
-
146
- **If stage=planned:**
147
- ```
148
- **Phases:** {total}
149
- {List phases with one-liner goals}
150
- ```
151
-
152
- **If stage=execution:**
153
- ```
154
- **Phases:** {completed}/{total}
155
- **Current phase:** {N} — {name}
156
- **Phase status:** {from config.json phases.current_status: pending | executing | executed}
157
- ```
158
-
159
- **If mode = "project":**
160
- Continue to determine_action.
161
-
162
- **If mode = "orchestrator":**
163
-
164
- ```
165
- ## {feature-name} (Multi-Project)
166
-
167
- **Stage:** {stage}
168
- **Overall progress:** {total completed phases}/{total phases} across {N} projects
169
-
170
- ### Per-Project Status
171
-
172
- {For each project:}
173
- **{project-name}** — {completed}/{total} phases
174
- {For each phase: status indicator + name}
175
- ✓ Phase 1: {name} — complete
176
- ▶ Phase 2: {name} — ready
177
- ○ Phase 3: {name} — blocked by {dep}
178
-
179
- ### Cross-Project Dependencies
180
-
181
- {Summary of key dependencies and their status}
182
-
183
- **Note:** One orchestrator session at a time (DEC-011). State re-read fresh each time.
184
- ```
185
-
186
- Continue to orchestrator_schedule.
187
- </step>
188
-
189
- <step name="orchestrator_schedule">
190
- Determine next work based on cross-project dependencies.
191
-
192
- **Compute unblocked work:**
193
- From the combined state and dependency graph:
194
- 1. Find all phases with status "ready" (dependencies satisfied, not started/in-progress)
195
- 2. Among "ready" phases, prioritize by:
196
- - Phases that unblock the most downstream work
197
- - Earlier phases within a project
198
- - Projects with less progress (balance workload)
199
-
200
- **If target_project specified (from argument):**
201
- Filter to only that project's unblocked work.
202
-
203
- **If no unblocked work:**
204
- ```
205
- All available phases are blocked or complete.
206
-
207
- {If all complete:}
208
- All phases across all projects are complete! Feature is implemented.
209
-
210
- {If blocked:}
211
- Waiting on:
212
- {List blocked phases and what they're waiting on}
213
- ```
214
-
215
- → Go to action_complete (if all done) or action_stop (if blocked).
216
-
217
- **If one phase unblocked:**
218
- Auto-suggest:
219
- ```
220
- Next: {project-name}/Phase {N} — {phase-name}
221
- {Brief description of what this phase does}
222
- ```
223
-
224
- Use AskUserQuestion:
225
- - header: "Next Step"
226
- - question: "Execute {project-name} Phase {N}?"
227
- - options:
228
- - "Execute (Recommended)" — Run this phase
229
- - "Stop for now" — Come back later
230
-
231
- **If multiple phases unblocked:**
232
- ```
233
- Multiple phases are ready:
234
-
235
- {For each ready phase:}
236
- - **{project-name}/Phase {N}** — {phase-name} ({brief description})
237
- ```
238
-
239
- Use AskUserQuestion:
240
- - header: "Next Step"
241
- - question: "Which phase should we work on next?"
242
- - options: List each ready phase as an option + "Stop for now"
243
-
244
- **After selection:**
245
- Set the target project and phase.
246
-
247
- **Determine phase readiness:**
248
- Check if the target phase is prepared and planned:
249
- - If not prepared: → delegate to prepare-phase workflow
250
- - If prepared but not planned: → delegate to plan-phase workflow
251
- - If planned: → delegate to execute-plan workflow
252
-
253
- Pass feature name and project context to the delegated workflow.
254
-
255
- After delegated workflow completes, loop back to read_state.
256
- </step>
257
-
258
- <step name="determine_action">
259
- Based on current state, determine and offer the next action.
260
-
261
- Route to the appropriate sub-step based on state:
262
-
263
- **stage=discussion, gray areas remain:**
264
- → Go to action_discuss
265
-
266
- **stage=discussion, no gray areas (or user wants to skip):**
267
- → Go to action_research_offer
268
-
269
- **stage=research (RESEARCH.md exists):**
270
- → Go to action_plan_offer
271
-
272
- **stage=planned or stage=execution, current_status == "pending", phase not prepared:**
273
- → Go to action_phase_prepare
274
-
275
- **stage=planned or stage=execution, current_status == "pending", phase prepared but not planned:**
276
- → Go to action_phase_plan
277
-
278
- **stage=execution, current_status == "executing":**
279
- → Go to action_phase_execute
280
-
281
- **stage=execution, current_status == "executed":**
282
- → Go to action_phase_review
283
-
284
- **stage=execution, phases.completed == phases.total:**
285
- → Go to action_complete
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
-
290
- </step>
291
-
292
- <step name="action_discuss">
293
- Offer discussion when gray areas remain.
294
-
295
- ```
296
- ### Open Areas
297
-
298
- These areas could use more clarity:
299
-
300
- {List gray areas from CONTEXT.md}
301
- ```
302
-
303
- Use AskUserQuestion:
304
- - header: "Next Step"
305
- - question: "Want to discuss these areas, or skip ahead?"
306
- - options:
307
- - "Discuss" — Probe open areas (recommended if gray areas exist)
308
- - "Skip to research" — Move to researching implementation patterns
309
- - "Skip to planning" — Jump to creating the roadmap (only if enough context)
310
- - "Stop for now" — Save progress, come back with /specd:feature:continue
311
-
312
- **If Discuss:**
313
- Execute the discuss-feature workflow logic:
314
- @~/.claude/specdacular/workflows/discuss-feature.md
315
-
316
- After discussion completes (commit done), loop back to read_state.
317
-
318
- **If Skip to research:**
319
- → Go to action_research_offer
320
-
321
- **If Skip to planning:**
322
- → Go to action_plan_execute
323
-
324
- **If Stop for now:**
325
- → Go to action_stop
326
- </step>
327
-
328
- <step name="action_research_offer">
329
- Offer research when discussion is sufficient.
330
-
331
- **If RESEARCH.md already exists:**
332
- ```
333
- Research has already been conducted.
334
- ```
335
- → Go to action_plan_offer
336
-
337
- **If no RESEARCH.md:**
338
- ```
339
- ### Discussion Looks Solid
340
-
341
- You've resolved the key gray areas. Next step is usually research — investigating implementation patterns, libraries, and pitfalls.
342
- ```
343
-
344
- Use AskUserQuestion:
345
- - header: "Next Step"
346
- - question: "Research implementation patterns?"
347
- - options:
348
- - "Research" — Spawn parallel agents to investigate patterns (recommended)
349
- - "Skip to planning" — Jump straight to roadmap creation
350
- - "Discuss more" — Go back to discussion
351
- - "Stop for now" — Come back with /specd:feature:continue
352
-
353
- **If Research:**
354
- Execute the research-feature workflow logic:
355
- @~/.claude/specdacular/workflows/research-feature.md
356
-
357
- After research completes (commit done), loop back to read_state.
358
-
359
- **If Skip to planning:**
360
- → Go to action_plan_offer
361
-
362
- **If Discuss more:**
363
- → Go to action_discuss
364
-
365
- **If Stop for now:**
366
- → Go to action_stop
367
- </step>
368
-
369
- <step name="action_plan_offer">
370
- Offer roadmap creation.
371
-
372
- ```
373
- ### Ready to Plan
374
-
375
- {If RESEARCH.md exists: "Research is complete. "}Time to create the roadmap — breaking the feature into ordered phases.
376
- ```
377
-
378
- Use AskUserQuestion:
379
- - header: "Next Step"
380
- - question: "Create the roadmap?"
381
- - options:
382
- - "Create roadmap" — Derive phases and write ROADMAP.md (recommended)
383
- - "Discuss more" — Go back to discussion
384
- - "Stop for now" — Come back with /specd:feature:continue
385
-
386
- **If Create roadmap:**
387
- → Go to action_plan_execute
388
-
389
- **If Discuss more:**
390
- → Go to action_discuss
391
-
392
- **If Stop for now:**
393
- → Go to action_stop
394
- </step>
395
-
396
- <step name="action_plan_execute">
397
- Execute the plan-feature workflow.
398
-
399
- Execute the plan-feature workflow logic:
400
- @~/.claude/specdacular/workflows/plan-feature.md
401
-
402
- After planning completes (commit done), loop back to read_state.
403
- </step>
404
-
405
- <step name="action_phase_prepare">
406
- Offer to prepare the next phase.
407
-
408
- **Determine next phase:** First phase without a CONTEXT.md in its directory (not yet prepared), or phase 1 if none started.
409
-
410
- ```
411
- ### Roadmap Ready
412
-
413
- {total} phases planned. Time to prepare Phase {N}: {phase-name}.
414
-
415
- Phase preparation involves discussing phase-specific gray areas and optionally researching implementation patterns.
416
- ```
417
-
418
- Use AskUserQuestion:
419
- - header: "Next Step"
420
- - question: "Prepare Phase {N}?"
421
- - options:
422
- - "Prepare phase" — Discuss gray areas + optional research (recommended)
423
- - "Skip to planning" — Jump to creating detailed plans
424
- - "Stop for now" — Come back with /specd:feature:continue
425
-
426
- **If Prepare phase:**
427
- Execute the prepare-phase workflow logic:
428
- @~/.claude/specdacular/workflows/prepare-phase.md
429
-
430
- Pass feature name and phase number as arguments.
431
-
432
- After preparation completes (commit done), loop back to read_state.
433
-
434
- **If Skip to planning:**
435
- → Go to action_phase_plan
436
-
437
- **If Stop for now:**
438
- → Go to action_stop
439
- </step>
440
-
441
- <step name="action_phase_plan">
442
- Offer to create detailed plans for the current phase.
443
-
444
- **Determine phase:** Current phase that has been prepared (or not) but doesn't have PLAN.md files yet.
445
-
446
- ```
447
- ### Phase {N} Ready for Planning
448
-
449
- Time to create detailed, executable plans for Phase {N}: {phase-name}.
450
- ```
451
-
452
- Use AskUserQuestion:
453
- - header: "Next Step"
454
- - question: "Create detailed plans for Phase {N}?"
455
- - options:
456
- - "Create plans" — Write executable PLAN.md files (recommended)
457
- - "Prepare first" — Go back to phase preparation
458
- - "Stop for now" — Come back with /specd:feature:continue
459
-
460
- **If Create plans:**
461
- Execute the plan-phase workflow logic:
462
- @~/.claude/specdacular/workflows/plan-phase.md
463
-
464
- Pass feature name and phase number as arguments.
465
-
466
- After planning completes (commit done), loop back to read_state.
467
-
468
- **If Prepare first:**
469
- → Go to action_phase_prepare
470
-
471
- **If Stop for now:**
472
- → Go to action_stop
473
- </step>
474
-
475
- <step name="action_phase_execute">
476
- Offer to execute plans for the current phase.
477
-
478
- **Determine:** Which plans exist and which are not yet executed.
479
-
480
- ```
481
- ### Phase {N} Has Plans Ready
482
-
483
- {count} plan(s) ready to execute for Phase {N}: {phase-name}.
484
- ```
485
-
486
- Use AskUserQuestion:
487
- - header: "Next Step"
488
- - question: "Execute Phase {N} plans?"
489
- - options:
490
- - "Execute" — Run the next plan with progress tracking (recommended)
491
- - "Stop for now" — Come back with /specd:feature:continue
492
-
493
- **If Execute:**
494
- Execute the execute-plan workflow logic:
495
- @~/.claude/specdacular/workflows/execute-plan.md
496
-
497
- Pass feature name as argument (it finds the next incomplete plan).
498
-
499
- After execution completes (commit done), loop back to read_state.
500
-
501
- **If Stop for now:**
502
- → Go to action_stop
503
- </step>
504
-
505
- <step name="action_phase_review">
506
- Offer user-guided review for the executed phase (DEC-003, DEC-009).
507
-
508
- ```
509
- ### Phase {N} Executed — Pending Review
510
-
511
- All plans for Phase {N}: {phase-name} have been executed.
512
- Review shows what was built and lets you approve or request revisions.
513
- ```
514
-
515
- Use AskUserQuestion:
516
- - header: "Next Step"
517
- - question: "Review Phase {N}?"
518
- - options:
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
522
-
523
- **If Review:**
524
- Execute the review-feature workflow logic:
525
- @~/.claude/specdacular/workflows/review-feature.md
526
-
527
- Pass feature name as argument.
528
-
529
- After review completes (phase approved and marked completed), loop back to read_state.
530
-
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`
537
-
538
- Update STATE.md: mark phase as complete.
539
-
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.
547
-
548
- **If Stop for now:**
549
- → Go to action_stop
550
- </step>
551
-
552
- <step name="action_complete">
553
- Feature is complete.
554
-
555
- ```
556
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
557
- FEATURE COMPLETE
558
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
559
-
560
- **Feature:** {feature-name}
561
- **Phases completed:** {total}
562
- **Decisions made:** {count}
563
-
564
- All phases have been executed{and reviewed, if applicable}.
565
- ```
566
-
567
- **Update config.json:**
568
- Set `stage` to `"complete"`.
569
-
570
- **Update STATE.md:**
571
- Set stage to `complete`.
572
-
573
- @~/.claude/specdacular/references/commit-docs.md
574
-
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`
578
-
579
- End workflow.
580
- </step>
581
-
582
- <step name="action_stop">
583
- Clean exit with resume instructions.
584
-
585
- ```
586
- ───────────────────────────────────────────────────────
587
-
588
- Progress saved. Resume anytime with:
589
-
590
- /specd:feature:continue {feature-name}
591
- ```
592
-
593
- End workflow.
594
- </step>
595
-
596
- </process>
597
-
598
- <success_criteria>
599
-
600
- ## Single-Project Mode
601
- - Feature selected (from argument or picker)
602
- - Current state accurately read and displayed
603
- - Correct next action determined from state
604
- - Delegated to appropriate workflow for execution
605
- - Looped back after action completion
606
- - User could stop at any natural boundary
607
- - Clean exit with resume instructions
608
-
609
- ## Multi-Project Mode (Orchestrator)
610
- - Orchestrator mode detected from feature config.json
611
- - Cross-project state aggregated from all sub-projects
612
- - Dependency graph read from DEPENDENCIES.md
613
- - Per-project progress dashboard displayed
614
- - Unblocked work computed from dependency graph
615
- - Auto-suggests when one phase ready, asks when multiple
616
- - Optional project argument: `/specd:feature:continue feature project`
617
- - Delegates to prepare/plan/execute based on phase readiness
618
- - One-session-at-a-time constraint documented (DEC-011)
619
- - Direct sub-project access always works (DEC-001)
620
-
621
- </success_criteria>