orchestr8 2.7.1 → 3.0.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 (34) hide show
  1. package/.blueprint/agents/AGENT_BA_CASS.md +18 -34
  2. package/.blueprint/agents/AGENT_DEVELOPER_CODEY.md +21 -28
  3. package/.blueprint/agents/AGENT_SPECIFICATION_ALEX.md +6 -0
  4. package/.blueprint/agents/AGENT_TESTER_NIGEL.md +5 -3
  5. package/.blueprint/agents/WHAT_WE_STAND_FOR.md +0 -0
  6. package/.blueprint/features/feature_interactive-alex/FEATURE_SPEC.md +263 -0
  7. package/.blueprint/features/feature_interactive-alex/IMPLEMENTATION_PLAN.md +69 -0
  8. package/.blueprint/features/feature_interactive-alex/handoff-alex.md +19 -0
  9. package/.blueprint/features/feature_interactive-alex/handoff-cass.md +21 -0
  10. package/.blueprint/features/feature_interactive-alex/handoff-nigel.md +19 -0
  11. package/.blueprint/features/feature_interactive-alex/story-flag-routing.md +54 -0
  12. package/.blueprint/features/feature_interactive-alex/story-iterative-drafting.md +65 -0
  13. package/.blueprint/features/feature_interactive-alex/story-pipeline-integration.md +66 -0
  14. package/.blueprint/features/feature_interactive-alex/story-session-lifecycle.md +75 -0
  15. package/.blueprint/features/feature_interactive-alex/story-system-spec-creation.md +57 -0
  16. package/.blueprint/features/feature_parallel-abort/FEATURE_SPEC.md +117 -0
  17. package/.blueprint/features/feature_parallel-confirm/FEATURE_SPEC.md +90 -0
  18. package/.blueprint/features/feature_parallel-features/FEATURE_SPEC.md +291 -0
  19. package/.blueprint/features/feature_parallel-features/IMPLEMENTATION_PLAN.md +73 -0
  20. package/.blueprint/features/feature_parallel-lock/FEATURE_SPEC.md +119 -0
  21. package/.blueprint/features/feature_parallel-logging/FEATURE_SPEC.md +105 -0
  22. package/.blueprint/features/feature_parallel-preflight/FEATURE_SPEC.md +141 -0
  23. package/.blueprint/prompts/codey-implement-runtime.md +1 -1
  24. package/.blueprint/prompts/nigel-runtime.md +1 -1
  25. package/.blueprint/ways_of_working/DEVELOPMENT_RITUAL.md +4 -4
  26. package/README.md +249 -0
  27. package/SKILL.md +35 -1
  28. package/bin/cli.js +187 -0
  29. package/package.json +2 -2
  30. package/src/index.js +61 -1
  31. package/src/init.js +21 -3
  32. package/src/interactive.js +338 -0
  33. package/src/parallel.js +1544 -0
  34. package/src/stack.js +320 -0
@@ -0,0 +1,141 @@
1
+ # Feature Specification — Parallel Pre-flight Validation
2
+
3
+ ## 1. Feature Intent
4
+
5
+ Validate that a batch of features is safe to run in parallel before execution begins. This prevents wasted resources from features that would fail due to conflicts, missing specs, or dependencies.
6
+
7
+ **Problem:** Users can queue features for parallel execution without knowing if they'll conflict. Discovering issues mid-execution wastes time and creates cleanup work.
8
+
9
+ **Solution:** Pre-flight validation that checks feature readiness, detects conflicts, and estimates scope before any worktrees are created.
10
+
11
+ ---
12
+
13
+ ## 2. Scope
14
+
15
+ ### In Scope
16
+ - Check feature specs exist and are complete
17
+ - Detect dependencies between features in batch
18
+ - Detect file overlap from implementation plans
19
+ - Estimate scope and warn about timeout risk
20
+ - Integrate with existing dry-run flow
21
+
22
+ ### Out of Scope
23
+ - Automatic dependency resolution
24
+ - Automatic batching suggestions
25
+ - Cross-repo validation
26
+
27
+ ---
28
+
29
+ ## 3. Behaviour Overview
30
+
31
+ ### Pre-flight Check Output
32
+
33
+ ```
34
+ $ orchestr8 parallel feat-a feat-b feat-c --dry-run
35
+
36
+ Pre-flight Validation
37
+ =====================
38
+
39
+ ✓ feat-a: Spec complete, plan exists
40
+ ✓ feat-b: Spec complete, plan exists
41
+ ✗ feat-c: Missing FEATURE_SPEC.md
42
+
43
+ Conflict Analysis
44
+ =================
45
+
46
+ ⚠ File overlap detected:
47
+ • src/utils.js: feat-a, feat-b both modify
48
+ • bin/cli.js: feat-a, feat-c both modify
49
+
50
+ Recommendation: Run feat-a alone, then feat-b + feat-c
51
+
52
+ Scope Estimation
53
+ ================
54
+
55
+ Feature | Stories | Tests | Est. Time
56
+ ----------|---------|-------|----------
57
+ feat-a | 3 | 12 | ~15 min
58
+ feat-b | 2 | 8 | ~10 min
59
+ feat-c | 1 | 4 | ~5 min
60
+
61
+ Total estimated: ~30 min (parallel: ~15 min)
62
+
63
+ Proceed? [y/N]
64
+ ```
65
+
66
+ ### Validation Failures Block Execution
67
+
68
+ ```
69
+ $ orchestr8 parallel feat-a feat-b
70
+
71
+ Pre-flight Validation
72
+ =====================
73
+
74
+ ✗ feat-a: Missing FEATURE_SPEC.md
75
+ ✗ feat-b: Missing user stories
76
+
77
+ Cannot proceed. Run these commands first:
78
+ /implement-feature feat-a --pause-after=alex
79
+ /implement-feature feat-b --pause-after=cass
80
+ ```
81
+
82
+ ### Override with --skip-preflight
83
+
84
+ ```
85
+ $ orchestr8 parallel feat-a feat-b --skip-preflight
86
+
87
+ ⚠ Skipping pre-flight validation (not recommended)
88
+
89
+ Starting parallel pipelines...
90
+ ```
91
+
92
+ ---
93
+
94
+ ## 4. Implementation Notes
95
+
96
+ ### Validation Checks
97
+
98
+ 1. **Spec Completeness**
99
+ - FEATURE_SPEC.md exists and has required sections
100
+ - At least one story-*.md file exists
101
+ - Test file exists (optional - may be created by pipeline)
102
+
103
+ 2. **Dependency Detection**
104
+ - Parse feature specs for "depends_on" or similar markers
105
+ - Scan for references to other feature slugs
106
+ - Warn if features reference each other
107
+
108
+ 3. **File Overlap Detection**
109
+ - Parse IMPLEMENTATION_PLAN.md for "Files to Create/Modify" section
110
+ - Extract file paths from each feature's plan
111
+ - Flag any files that appear in multiple features
112
+
113
+ 4. **Scope Estimation**
114
+ - Count stories and acceptance criteria
115
+ - Count existing tests
116
+ - Use history averages to estimate duration
117
+
118
+ ### Integration Points
119
+
120
+ - Called from `runParallel()` before worktree creation
121
+ - Results displayed in dry-run output
122
+ - Blocking by default, override with `--skip-preflight`
123
+
124
+ ---
125
+
126
+ ## 5. Test Themes
127
+
128
+ - Detects missing feature specs
129
+ - Detects missing stories
130
+ - Detects file overlap from plans
131
+ - Allows override with flag
132
+ - Integrates with dry-run
133
+ - Scope estimation uses history
134
+
135
+ ---
136
+
137
+ ## 6. Change Log
138
+
139
+ | Date | Change | Reason |
140
+ |------|--------|--------|
141
+ | 2026-02-25 | Initial spec | Upfront validation for parallel safety |
@@ -11,7 +11,7 @@ Implement the feature according to the plan. Work incrementally, making tests pa
11
11
 
12
12
  ## Process (INCREMENTAL - one file at a time)
13
13
 
14
- 1. Run tests first: node --test {TEST_FILE}
14
+ 1. Run tests using the project's test command (see `.claude/stack-config.json`)
15
15
  2. For each failing test group:
16
16
  a. Identify the minimal code needed
17
17
  b. Write or edit ONE file
@@ -17,7 +17,7 @@ Step 1: Write {TEST_DIR}/test-spec.md containing:
17
17
  - Key assumptions (bullet list)
18
18
 
19
19
  Step 2: Write {TEST_FILE} containing:
20
- - Executable tests (Jest or Node test runner)
20
+ - Executable tests using the project's test runner (see `.claude/stack-config.json`)
21
21
  - One describe block per story
22
22
  - One test per acceptance criterion
23
23
 
@@ -41,7 +41,7 @@ Before writing tests:
41
41
  [ ] Ambiguities identified
42
42
  [ ] Assumptions written down
43
43
 
44
- Before handover to Steve to pass to Claude:
44
+ Before handover to the human to pass to Claude:
45
45
  [ ] Understanding summary written
46
46
  [ ] Test plan created
47
47
  [ ] Happy path tests written
@@ -50,7 +50,7 @@ Before handover to Steve to pass to Claude:
50
50
  [ ] Traceability table complete
51
51
  [ ] Open questions listed
52
52
 
53
- If any box is unchecked → raise it with Steve that its not ready to hand over. If all boxes are checked, let Steve know that its ready to handover to Claude.
53
+ If any box is unchecked → raise it with the human that its not ready to hand over. If all boxes are checked, let the human know that its ready to handover to Claude.
54
54
 
55
55
  🧑‍💻 Developer CLI Ritual (Claude)
56
56
  Before coding:
@@ -64,7 +64,7 @@ During coding:
64
64
  [ ] Ran relevant tests after each change
65
65
  [ ] Did not weaken or delete tests
66
66
 
67
- Before handover to Steve:
67
+ Before handover to the human:
68
68
  [ ] All tests passing
69
69
  [ ] Lint passing
70
70
  [ ] No unexplained skip/todo
@@ -139,4 +139,4 @@ Outcome:
139
139
  ❗ Green builds are necessary, not sufficient
140
140
  ❗ Assumptions must be written down
141
141
  ❗ No silent changes
142
- ❗ When in doubt, slow down and ask Steve
142
+ ❗ When in doubt, slow down and ask the human
package/README.md CHANGED
@@ -19,6 +19,32 @@ npx orchestr8 init
19
19
 
20
20
  This installs the `.blueprint/` directory, `.business_context/`, and the `/implement-feature` skill to `.claude/commands/`. If files already exist, you'll be prompted before overwriting. It also adds the workflow queue to `.gitignore`.
21
21
 
22
+ During initialization, orchestr8 **auto-detects your project's tech stack** from manifest files (`package.json`, `pyproject.toml`, `go.mod`, etc.) and writes the result to `.claude/stack-config.json`. The agents (Nigel and Codey) read this file at runtime to adapt their testing and implementation approach to your stack.
23
+
24
+ ```bash
25
+ # Review what was detected
26
+ npx orchestr8 stack-config
27
+
28
+ # Adjust if needed
29
+ npx orchestr8 stack-config set language TypeScript
30
+ npx orchestr8 stack-config set frameworks '["next","react"]'
31
+ npx orchestr8 stack-config set testRunner vitest
32
+ npx orchestr8 stack-config set testCommand "npx vitest run"
33
+ ```
34
+
35
+ If you're working with a non-JavaScript project, set the stack config before running the pipeline:
36
+
37
+ ```bash
38
+ # Python/Django example
39
+ npx orchestr8 stack-config set language Python
40
+ npx orchestr8 stack-config set runtime "Python 3.12"
41
+ npx orchestr8 stack-config set packageManager pip
42
+ npx orchestr8 stack-config set frameworks '["django"]'
43
+ npx orchestr8 stack-config set testRunner pytest
44
+ npx orchestr8 stack-config set testCommand "pytest"
45
+ npx orchestr8 stack-config set linter ruff
46
+ ```
47
+
22
48
  ## Keeping Up to Date
23
49
 
24
50
  **Modules** (history, insights, feedback, retry, validate) are part of the npm package and update automatically when you use `npx` - no action needed.
@@ -55,15 +81,31 @@ This updates `.blueprint/agents/`, `.blueprint/templates/`, `.blueprint/ways_of_
55
81
  | `npx orchestr8 insights --bottlenecks` | View bottleneck analysis |
56
82
  | `npx orchestr8 insights --failures` | View failure pattern analysis |
57
83
 
84
+ ### Parallel Execution
85
+
86
+ | Command | Description |
87
+ |---------|-------------|
88
+ | `npx orchestr8 parallel <slugs...>` | Run multiple features in parallel |
89
+ | `npx orchestr8 parallel <slugs...> --dry-run` | Preview execution plan |
90
+ | `npx orchestr8 parallel status` | Show status of running pipelines |
91
+ | `npx orchestr8 parallel cleanup` | Remove completed worktrees |
92
+ | `npx orchestr8 parallel-config` | View parallel configuration |
93
+ | `npx orchestr8 parallel-config set <key> <value>` | Modify parallel settings |
94
+
58
95
  ### Configuration
59
96
 
60
97
  | Command | Description |
61
98
  |---------|-------------|
99
+ | `npx orchestr8 stack-config` | View detected tech stack |
100
+ | `npx orchestr8 stack-config set <key> <value>` | Modify stack settings (language, frameworks, testRunner, etc.) |
101
+ | `npx orchestr8 stack-config reset` | Reset to empty defaults |
62
102
  | `npx orchestr8 retry-config` | View retry configuration |
63
103
  | `npx orchestr8 retry-config set <key> <value>` | Modify retry settings |
64
104
  | `npx orchestr8 retry-config reset` | Reset to defaults |
65
105
  | `npx orchestr8 feedback-config` | View feedback thresholds |
66
106
  | `npx orchestr8 feedback-config set <key> <value>` | Modify feedback settings |
107
+ | `npx orchestr8 parallel-config` | View parallel pipeline configuration |
108
+ | `npx orchestr8 parallel-config set <key> <value>` | Modify parallel settings |
67
109
 
68
110
  ## Usage
69
111
 
@@ -183,6 +225,8 @@ orchestr8 includes these built-in modules for observability and self-improvement
183
225
  | **handoff** | Structured summaries between agents for token efficiency |
184
226
  | **business-context** | Lazy loading of business context based on feature needs |
185
227
  | **tools** | Tool schemas and validation for Claude native features |
228
+ | **parallel** | Parallel pipeline execution using git worktrees |
229
+ | **stack** | Configurable tech stack detection and configuration |
186
230
 
187
231
  ### How They Work Together
188
232
 
@@ -239,9 +283,14 @@ your-project/
239
283
  ├── .claude/
240
284
  │ ├── commands/
241
285
  │ │ └── implement-feature.md # The /implement-feature skill
286
+ │ ├── worktrees/ # Git worktrees for parallel execution
287
+ │ │ └── feat-{slug}/ # Isolated worktree per feature
242
288
  │ ├── pipeline-history.json # Execution history (gitignored)
243
289
  │ ├── retry-config.json # Retry configuration (gitignored)
244
290
  │ ├── feedback-config.json # Feedback thresholds (gitignored)
291
+ │ ├── parallel-config.json # Parallel execution config (gitignored)
292
+ │ ├── parallel-queue.json # Parallel pipeline state (gitignored)
293
+ │ ├── stack-config.json # Tech stack configuration (gitignored)
245
294
  │ └── implement-queue.json # Pipeline queue state (gitignored)
246
295
  └── test/
247
296
  ├── artifacts/ # Test specs per feature
@@ -308,6 +357,206 @@ Version 2.7 introduces several optimizations to reduce token usage:
308
357
 
309
358
  **Total estimated savings: 10,000+ tokens per pipeline run** (more for technical features)
310
359
 
360
+ ## Parallel Execution with Git Worktrees
361
+
362
+ Run multiple feature pipelines simultaneously using git worktrees for isolation. Each feature gets its own worktree and branch, allowing true parallel development without conflicts.
363
+
364
+ ### How It Works
365
+
366
+ ```
367
+ orchestr8 parallel user-auth dashboard notifications
368
+
369
+
370
+ ┌───────────────────────────────────────┐
371
+ │ Pre-flight Validation │
372
+ │ • Git repository check │
373
+ │ • Clean working tree required │
374
+ │ • Git 2.5+ for worktree support │
375
+ │ • Feature specs exist & complete │
376
+ │ • File overlap detection │
377
+ │ • Dependency detection │
378
+ │ • Scope estimation │
379
+ └───────────────────────────────────────┘
380
+
381
+
382
+ ┌───────────────────────────────────────┐
383
+ │ Create Isolated Worktrees │
384
+ │ │
385
+ │ .claude/worktrees/feat-user-auth/ │
386
+ │ └─ branch: feature/user-auth │
387
+ │ │
388
+ │ .claude/worktrees/feat-dashboard/ │
389
+ │ └─ branch: feature/dashboard │
390
+ │ │
391
+ │ .claude/worktrees/feat-notifications/│
392
+ │ └─ branch: feature/notifications│
393
+ └───────────────────────────────────────┘
394
+
395
+
396
+ ┌───────────────────────────────────────┐
397
+ │ Spawn Parallel Pipelines │
398
+ │ (max 3 concurrent by default) │
399
+ │ │
400
+ │ Each runs: Alex → Nigel → Codey │
401
+ │ in its isolated worktree │
402
+ └───────────────────────────────────────┘
403
+
404
+
405
+ ┌───────────────────────────────────────┐
406
+ │ Merge on Completion │
407
+ │ • First finished = first merged │
408
+ │ • Conflicts preserved for resolution │
409
+ │ • Successful worktrees cleaned up │
410
+ └───────────────────────────────────────┘
411
+ ```
412
+
413
+ ### Usage
414
+
415
+ ```bash
416
+ # Run 3 features in parallel (default concurrency)
417
+ npx orchestr8 parallel user-auth dashboard notifications
418
+
419
+ # Preview what would happen without executing
420
+ npx orchestr8 parallel user-auth dashboard --dry-run
421
+
422
+ # Limit concurrent pipelines
423
+ npx orchestr8 parallel feat-a feat-b feat-c feat-d --max-concurrency=2
424
+
425
+ # Check status of running pipelines
426
+ npx orchestr8 parallel status
427
+
428
+ # Skip pre-flight feature validation
429
+ npx orchestr8 parallel user-auth dashboard --skip-preflight
430
+
431
+ # Clean up completed/aborted worktrees
432
+ npx orchestr8 parallel cleanup
433
+ ```
434
+
435
+ ### Pre-flight Batch Validation (v2.8)
436
+
437
+ Before parallel execution, the system validates the batch to prevent wasted resources:
438
+
439
+ ```
440
+ $ npx orchestr8 parallel feat-a feat-b feat-c --dry-run
441
+
442
+ Pre-flight Validation
443
+ =====================
444
+
445
+ ✓ feat-a: Spec complete, 3 stories, Plan exists
446
+ ✓ feat-b: Spec complete, 2 stories
447
+ ✗ feat-c: Not ready
448
+ ✗ Missing FEATURE_SPEC.md
449
+
450
+ Conflict Analysis
451
+ =================
452
+
453
+ ⚠ File overlap detected:
454
+ • src/utils.js: feat-a, feat-b both modify
455
+
456
+ Scope Estimation
457
+ ================
458
+
459
+ Feature | Stories | Files | Est. Time
460
+ ----------|---------|-------|----------
461
+ feat-a | 3 | 4 | ~27 min
462
+ feat-b | 2 | 2 | ~24 min
463
+ feat-c | 0 | 0 | ~10 min
464
+
465
+ Total estimated: ~61 min (parallel: ~27 min)
466
+ ```
467
+
468
+ **Validation checks:**
469
+ - Feature specs exist and have required sections
470
+ - User stories present (warns if missing)
471
+ - Implementation plans scanned for file overlap
472
+ - Dependencies between features detected
473
+ - Scope estimated from story/file counts
474
+
475
+ **On validation failure:**
476
+ ```
477
+ Cannot proceed. Fix issues above or use --skip-preflight to override.
478
+
479
+ Suggested commands:
480
+ /implement-feature "feat-c" --pause-after=alex
481
+ ```
482
+
483
+ ### Configuration
484
+
485
+ The parallel module is **CLI-agnostic** — configure it to work with different AI coding tools:
486
+
487
+ ```bash
488
+ # View current configuration
489
+ npx orchestr8 parallel-config
490
+
491
+ # Output:
492
+ # cli: npx claude
493
+ # skill: /implement-feature
494
+ # skillFlags: --no-commit
495
+ # worktreeDir: .claude/worktrees
496
+ # maxConcurrency: 3
497
+ # queueFile: .claude/parallel-queue.json
498
+ ```
499
+
500
+ #### Configuration Options
501
+
502
+ | Option | Default | Description |
503
+ |--------|---------|-------------|
504
+ | `cli` | `npx claude` | The CLI tool to invoke |
505
+ | `skill` | `/implement-feature` | The command/skill to run |
506
+ | `skillFlags` | `--no-commit` | Additional flags for the skill |
507
+ | `worktreeDir` | `.claude/worktrees` | Where to create worktrees |
508
+ | `maxConcurrency` | `3` | Maximum parallel pipelines |
509
+ | `maxFeatures` | `10` | Maximum features per batch |
510
+ | `timeout` | `30` | Timeout per pipeline (minutes) |
511
+ | `minDiskSpaceMB` | `500` | Minimum disk space warning threshold |
512
+ | `queueFile` | `.claude/parallel-queue.json` | State persistence file |
513
+
514
+ #### Examples for Different CLIs
515
+
516
+ ```bash
517
+ # Claude Code (default)
518
+ npx orchestr8 parallel-config set cli "npx claude"
519
+ npx orchestr8 parallel-config set skill "/implement-feature"
520
+
521
+ # Cursor
522
+ npx orchestr8 parallel-config set cli "cursor"
523
+ npx orchestr8 parallel-config set skill "composer"
524
+ npx orchestr8 parallel-config set skillFlags ""
525
+
526
+ # Aider
527
+ npx orchestr8 parallel-config set cli "aider"
528
+ npx orchestr8 parallel-config set skill "--message"
529
+ npx orchestr8 parallel-config set skillFlags "implement feature:"
530
+
531
+ # Custom agent script
532
+ npx orchestr8 parallel-config set cli "./my-agent.sh"
533
+ npx orchestr8 parallel-config set skill "run"
534
+
535
+ # Reset to defaults
536
+ npx orchestr8 parallel-config reset
537
+ ```
538
+
539
+ ### State Management
540
+
541
+ Each feature progresses through these states:
542
+
543
+ ```
544
+ parallel_queued → worktree_created → parallel_running → merge_pending → parallel_complete
545
+ │ │
546
+ ▼ ▼
547
+ parallel_failed merge_conflict
548
+ ```
549
+
550
+ - **Successful features**: Merged to main, worktree cleaned up
551
+ - **Failed pipelines**: Worktree preserved for debugging
552
+ - **Merge conflicts**: Branch preserved, manual resolution required
553
+
554
+ ### Requirements
555
+
556
+ - **Git 2.5+** (worktree support)
557
+ - **Clean working tree** (no uncommitted changes)
558
+ - **Sufficient disk space** (each worktree is a full checkout)
559
+
311
560
  ## License
312
561
 
313
562
  MIT
package/SKILL.md CHANGED
@@ -28,8 +28,9 @@ description: Run the Alex → Cass → Nigel → Codey pipeline using Task tool
28
28
  ## Invocation
29
29
 
30
30
  ```bash
31
- /implement-feature # Interactive
31
+ /implement-feature # Interactive slug prompt
32
32
  /implement-feature "user-auth" # New feature
33
+ /implement-feature "user-auth" --interactive # Force interactive spec creation
33
34
  /implement-feature "user-auth" --pause-after=alex|cass|nigel|codey-plan
34
35
  /implement-feature "user-auth" --no-commit
35
36
  /implement-feature "user-auth" --no-feedback # Skip feedback collection
@@ -113,6 +114,39 @@ If not provided: Ask user, convert to slug format (lowercase, hyphens), confirm.
113
114
  ### Step 3: System Spec Gate
114
115
  Check `{SYS_SPEC}` exists. If not: run Alex to create it, then **stop for review**.
115
116
 
117
+ ### Step 3a: Interactive Mode Detection
118
+
119
+ **Module:** `src/interactive.js`
120
+
121
+ The pipeline automatically enters interactive mode when:
122
+ 1. `--interactive` flag is explicitly passed
123
+ 2. System spec (`{SYS_SPEC}`) is missing - creates system spec interactively
124
+ 3. Feature spec (`{FEAT_SPEC}`) is missing - creates feature spec interactively
125
+
126
+ **Interactive Session Flow:**
127
+ ```
128
+ idle → gathering → questioning → drafting → finalizing
129
+ ```
130
+
131
+ **Available Commands During Session:**
132
+ | Command | Action |
133
+ |---------|--------|
134
+ | `/approve` or `yes` | Mark section complete, proceed to next |
135
+ | `/change <feedback>` | Revise current section with feedback |
136
+ | `/skip` | Mark section TBD, proceed to next |
137
+ | `/restart` | Discard draft, restart current section |
138
+ | `/abort` | Exit without writing spec |
139
+ | `/done` | Finalize spec (if min sections complete) |
140
+
141
+ **Minimum Required Sections:**
142
+ - Feature spec: Intent, Scope, Actors
143
+ - System spec: Purpose, Actors, Boundaries
144
+
145
+ **On Interactive Completion:**
146
+ - Writes spec to appropriate path
147
+ - Generates `handoff-alex.md` with session metrics
148
+ - Records `mode: "interactive"` in history entry
149
+
116
150
  ### Step 3.5: Insights Preview (NEW)
117
151
 
118
152
  **Module:** `src/insights.js`