substrate-ai 0.1.7 → 0.1.9
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 +14 -12
- package/README.npm.md +13 -11
- package/dist/cli/index.js +9 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<img src="assets/
|
|
2
|
+
<img src="https://github.com/user-attachments/assets/622dd577-2814-4657-bb28-112ed272486d" alt="Substrate — Autonomous Software Development Pipeline" />
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
5
|
# Substrate
|
|
@@ -38,6 +38,8 @@ npx substrate --version # project install
|
|
|
38
38
|
substrate --version # global install
|
|
39
39
|
```
|
|
40
40
|
|
|
41
|
+
> Examples below use `[npx] substrate` — include `npx` for project installs, omit for global.
|
|
42
|
+
|
|
41
43
|
## Quick Start
|
|
42
44
|
|
|
43
45
|
### Autonomous Pipeline (recommended)
|
|
@@ -47,19 +49,19 @@ Got an idea? Substrate can take it from concept to working code.
|
|
|
47
49
|
1. **Brainstorm** — explore your idea with a multi-persona AI session:
|
|
48
50
|
|
|
49
51
|
```bash
|
|
50
|
-
substrate brainstorm
|
|
52
|
+
[npx] substrate brainstorm
|
|
51
53
|
```
|
|
52
54
|
|
|
53
55
|
2. **Initialize the pipeline** — set up the methodology pack and decision store:
|
|
54
56
|
|
|
55
57
|
```bash
|
|
56
|
-
substrate auto init
|
|
58
|
+
[npx] substrate auto init
|
|
57
59
|
```
|
|
58
60
|
|
|
59
61
|
3. **Run the full pipeline** — analysis, planning, solutioning, and implementation:
|
|
60
62
|
|
|
61
63
|
```bash
|
|
62
|
-
substrate auto run
|
|
64
|
+
[npx] substrate auto run
|
|
63
65
|
```
|
|
64
66
|
|
|
65
67
|
Substrate walks through the entire software development lifecycle autonomously:
|
|
@@ -71,9 +73,9 @@ Substrate walks through the entire software development lifecycle autonomously:
|
|
|
71
73
|
You can start from any phase or resume an interrupted run:
|
|
72
74
|
|
|
73
75
|
```bash
|
|
74
|
-
substrate auto run --from solutioning # Skip to a specific phase
|
|
75
|
-
substrate auto resume # Pick up where you left off
|
|
76
|
-
substrate auto status # Check pipeline progress
|
|
76
|
+
[npx] substrate auto run --from solutioning # Skip to a specific phase
|
|
77
|
+
[npx] substrate auto resume # Pick up where you left off
|
|
78
|
+
[npx] substrate auto status # Check pipeline progress
|
|
77
79
|
```
|
|
78
80
|
|
|
79
81
|
### Pick Up an Existing BMAD Project
|
|
@@ -93,8 +95,8 @@ Already have a project with BMAD artifacts (vanilla BMAD or the Beads-based ai-t
|
|
|
93
95
|
|
|
94
96
|
```bash
|
|
95
97
|
npm install substrate-ai
|
|
96
|
-
substrate auto init # Seeds context from _bmad-output/
|
|
97
|
-
substrate auto run --stories 5-3,5-4,6-1 # Only the unfinished story keys
|
|
98
|
+
[npx] substrate auto init # Seeds context from _bmad-output/
|
|
99
|
+
[npx] substrate auto run --stories 5-3,5-4,6-1 # Only the unfinished story keys
|
|
98
100
|
```
|
|
99
101
|
|
|
100
102
|
For each story, Substrate runs: **create-story** (skipped if story file exists) → **dev-story** (implement) → **code-review** (adversarial review). Non-conflicting stories run in parallel automatically.
|
|
@@ -139,7 +141,7 @@ Substrate does not read `sprint-status.yaml` or `.beads/` — you decide what's
|
|
|
139
141
|
|
|
140
142
|
## Configuration
|
|
141
143
|
|
|
142
|
-
Substrate reads configuration from `.substrate/config.yaml` in your project root. Run `substrate init` to generate a default config.
|
|
144
|
+
Substrate reads configuration from `.substrate/config.yaml` in your project root. Run `[npx] substrate init` to generate a default config.
|
|
143
145
|
|
|
144
146
|
## Development
|
|
145
147
|
|
|
@@ -193,8 +195,8 @@ tasks:
|
|
|
193
195
|
```
|
|
194
196
|
|
|
195
197
|
```bash
|
|
196
|
-
substrate start --graph tasks.yaml # Execute the graph
|
|
197
|
-
substrate plan --graph tasks.yaml # Preview without running
|
|
198
|
+
[npx] substrate start --graph tasks.yaml # Execute the graph
|
|
199
|
+
[npx] substrate plan --graph tasks.yaml # Preview without running
|
|
198
200
|
```
|
|
199
201
|
|
|
200
202
|
Tasks without dependencies run in parallel. Each agent gets its own isolated git worktree.
|
package/README.npm.md
CHANGED
|
@@ -38,6 +38,8 @@ npx substrate --version # project install
|
|
|
38
38
|
substrate --version # global install
|
|
39
39
|
```
|
|
40
40
|
|
|
41
|
+
> Examples below use `[npx] substrate` — include `npx` for project installs, omit for global.
|
|
42
|
+
|
|
41
43
|
## Quick Start
|
|
42
44
|
|
|
43
45
|
### Autonomous Pipeline (recommended)
|
|
@@ -47,19 +49,19 @@ Got an idea? Substrate can take it from concept to working code.
|
|
|
47
49
|
1. **Brainstorm** — explore your idea with a multi-persona AI session:
|
|
48
50
|
|
|
49
51
|
```bash
|
|
50
|
-
substrate brainstorm
|
|
52
|
+
[npx] substrate brainstorm
|
|
51
53
|
```
|
|
52
54
|
|
|
53
55
|
2. **Initialize the pipeline** — set up the methodology pack and decision store:
|
|
54
56
|
|
|
55
57
|
```bash
|
|
56
|
-
substrate auto init
|
|
58
|
+
[npx] substrate auto init
|
|
57
59
|
```
|
|
58
60
|
|
|
59
61
|
3. **Run the full pipeline** — analysis, planning, solutioning, and implementation:
|
|
60
62
|
|
|
61
63
|
```bash
|
|
62
|
-
substrate auto run
|
|
64
|
+
[npx] substrate auto run
|
|
63
65
|
```
|
|
64
66
|
|
|
65
67
|
Substrate walks through the entire software development lifecycle autonomously:
|
|
@@ -71,9 +73,9 @@ Substrate walks through the entire software development lifecycle autonomously:
|
|
|
71
73
|
You can start from any phase or resume an interrupted run:
|
|
72
74
|
|
|
73
75
|
```bash
|
|
74
|
-
substrate auto run --from solutioning # Skip to a specific phase
|
|
75
|
-
substrate auto resume # Pick up where you left off
|
|
76
|
-
substrate auto status # Check pipeline progress
|
|
76
|
+
[npx] substrate auto run --from solutioning # Skip to a specific phase
|
|
77
|
+
[npx] substrate auto resume # Pick up where you left off
|
|
78
|
+
[npx] substrate auto status # Check pipeline progress
|
|
77
79
|
```
|
|
78
80
|
|
|
79
81
|
### Pick Up an Existing BMAD Project
|
|
@@ -93,8 +95,8 @@ Already have a project with BMAD artifacts (vanilla BMAD or the Beads-based ai-t
|
|
|
93
95
|
|
|
94
96
|
```bash
|
|
95
97
|
npm install substrate-ai
|
|
96
|
-
substrate auto init # Seeds context from _bmad-output/
|
|
97
|
-
substrate auto run --stories 5-3,5-4,6-1 # Only the unfinished story keys
|
|
98
|
+
[npx] substrate auto init # Seeds context from _bmad-output/
|
|
99
|
+
[npx] substrate auto run --stories 5-3,5-4,6-1 # Only the unfinished story keys
|
|
98
100
|
```
|
|
99
101
|
|
|
100
102
|
For each story, Substrate runs: **create-story** (skipped if story file exists) → **dev-story** (implement) → **code-review** (adversarial review). Non-conflicting stories run in parallel automatically.
|
|
@@ -139,7 +141,7 @@ Substrate does not read `sprint-status.yaml` or `.beads/` — you decide what's
|
|
|
139
141
|
|
|
140
142
|
## Configuration
|
|
141
143
|
|
|
142
|
-
Substrate reads configuration from `.substrate/config.yaml` in your project root. Run `substrate init` to generate a default config.
|
|
144
|
+
Substrate reads configuration from `.substrate/config.yaml` in your project root. Run `[npx] substrate init` to generate a default config.
|
|
143
145
|
|
|
144
146
|
## Development
|
|
145
147
|
|
|
@@ -193,8 +195,8 @@ tasks:
|
|
|
193
195
|
```
|
|
194
196
|
|
|
195
197
|
```bash
|
|
196
|
-
substrate start --graph tasks.yaml # Execute the graph
|
|
197
|
-
substrate plan --graph tasks.yaml # Preview without running
|
|
198
|
+
[npx] substrate start --graph tasks.yaml # Execute the graph
|
|
199
|
+
[npx] substrate plan --graph tasks.yaml # Preview without running
|
|
198
200
|
```
|
|
199
201
|
|
|
200
202
|
Tasks without dependencies run in parallel. Each agent gets its own isolated git worktree.
|
package/dist/cli/index.js
CHANGED
|
@@ -8,7 +8,7 @@ import { fileURLToPath } from "url";
|
|
|
8
8
|
import { dirname, extname, isAbsolute, join, relative, resolve } from "path";
|
|
9
9
|
import { access, mkdir, readFile, readdir, stat, writeFile } from "fs/promises";
|
|
10
10
|
import { execFile } from "child_process";
|
|
11
|
-
import { existsSync, mkdirSync, readFileSync, readdirSync, renameSync, statSync, unlinkSync, writeFileSync } from "fs";
|
|
11
|
+
import { existsSync, mkdirSync, readFileSync, readdirSync, realpathSync, renameSync, statSync, unlinkSync, writeFileSync } from "fs";
|
|
12
12
|
import yaml, { dump, load } from "js-yaml";
|
|
13
13
|
import { z } from "zod";
|
|
14
14
|
import { fileURLToPath as fileURLToPath$1 } from "node:url";
|
|
@@ -14633,7 +14633,14 @@ async function main() {
|
|
|
14633
14633
|
}
|
|
14634
14634
|
}
|
|
14635
14635
|
const __cli_filename = fileURLToPath(import.meta.url);
|
|
14636
|
-
|
|
14636
|
+
const isMainModule = (() => {
|
|
14637
|
+
try {
|
|
14638
|
+
return realpathSync(process.argv[1]) === realpathSync(__cli_filename);
|
|
14639
|
+
} catch {
|
|
14640
|
+
return false;
|
|
14641
|
+
}
|
|
14642
|
+
})();
|
|
14643
|
+
if (isMainModule) main();
|
|
14637
14644
|
|
|
14638
14645
|
//#endregion
|
|
14639
14646
|
export { createProgram };
|