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.
- package/.blueprint/agents/AGENT_BA_CASS.md +18 -34
- package/.blueprint/agents/AGENT_DEVELOPER_CODEY.md +21 -28
- package/.blueprint/agents/AGENT_SPECIFICATION_ALEX.md +6 -0
- package/.blueprint/agents/AGENT_TESTER_NIGEL.md +5 -3
- package/.blueprint/agents/WHAT_WE_STAND_FOR.md +0 -0
- package/.blueprint/features/feature_interactive-alex/FEATURE_SPEC.md +263 -0
- package/.blueprint/features/feature_interactive-alex/IMPLEMENTATION_PLAN.md +69 -0
- package/.blueprint/features/feature_interactive-alex/handoff-alex.md +19 -0
- package/.blueprint/features/feature_interactive-alex/handoff-cass.md +21 -0
- package/.blueprint/features/feature_interactive-alex/handoff-nigel.md +19 -0
- package/.blueprint/features/feature_interactive-alex/story-flag-routing.md +54 -0
- package/.blueprint/features/feature_interactive-alex/story-iterative-drafting.md +65 -0
- package/.blueprint/features/feature_interactive-alex/story-pipeline-integration.md +66 -0
- package/.blueprint/features/feature_interactive-alex/story-session-lifecycle.md +75 -0
- package/.blueprint/features/feature_interactive-alex/story-system-spec-creation.md +57 -0
- package/.blueprint/features/feature_parallel-abort/FEATURE_SPEC.md +117 -0
- package/.blueprint/features/feature_parallel-confirm/FEATURE_SPEC.md +90 -0
- package/.blueprint/features/feature_parallel-features/FEATURE_SPEC.md +291 -0
- package/.blueprint/features/feature_parallel-features/IMPLEMENTATION_PLAN.md +73 -0
- package/.blueprint/features/feature_parallel-lock/FEATURE_SPEC.md +119 -0
- package/.blueprint/features/feature_parallel-logging/FEATURE_SPEC.md +105 -0
- package/.blueprint/features/feature_parallel-preflight/FEATURE_SPEC.md +141 -0
- package/.blueprint/prompts/codey-implement-runtime.md +1 -1
- package/.blueprint/prompts/nigel-runtime.md +1 -1
- package/.blueprint/ways_of_working/DEVELOPMENT_RITUAL.md +4 -4
- package/README.md +249 -0
- package/SKILL.md +35 -1
- package/bin/cli.js +187 -0
- package/package.json +2 -2
- package/src/index.js +61 -1
- package/src/init.js +21 -3
- package/src/interactive.js +338 -0
- package/src/parallel.js +1544 -0
- 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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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`
|