buildline 0.5.1 → 0.7.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/README.md +4 -1
- package/bin/buildline.js +7 -3
- package/package.json +1 -1
- package/src/cli.js +17 -1
- package/src/features.js +77 -1
- package/src/install.js +12 -4
- package/src/server.js +6 -3
- package/src/sound.js +29 -0
- package/src/tui.js +69 -15
- package/src/ui/index.html +73 -7
- package/templates/AGENTS.block.md +4 -2
- package/templates/bin/feature.mjs +260 -0
- package/templates/bin/hook.mjs +88 -3
- package/templates/stations/autopilot.md +1 -1
- package/templates/stations/build.md +14 -5
- package/templates/stations/design.md +2 -2
- package/templates/stations/new.md +6 -8
- package/templates/stations/plan.md +9 -14
- package/templates/stations/review.md +1 -1
- package/templates/stations/ship.md +1 -1
- package/templates/stations/spec.md +4 -3
- package/templates/stations/verify.md +2 -2
|
@@ -24,16 +24,14 @@ State the type and the reason in one line. The person can override.
|
|
|
24
24
|
|
|
25
25
|
## 3. Create the feature
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
Run `node .buildline/bin/feature.mjs new "<title>" --type <type>` (add `--owner "<name>"` if the person told you who owns it). It creates `.buildline/features/<id>-<slug>/` with `feature.json`, `spec.md` and `progress.md`, and sets the starting status: `build` for a fix, `spec` otherwise.
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
Then fill in `spec.md → ## Brief` (problem, who, outcome, open questions) and set `owner` in `feature.json` if the person told you who owns it.
|
|
29
|
+
Then fill in `spec.md → ## Brief` (problem, who, outcome, open questions).
|
|
32
30
|
|
|
33
31
|
## 4. Route
|
|
34
32
|
|
|
35
|
-
- `fix` →
|
|
36
|
-
- `feature` →
|
|
37
|
-
- `epic` →
|
|
33
|
+
- `fix` → it starts at `build`. In `spec.md`, also fill `## Acceptance` with a single scenario that reproduces the bug (it must fail before the fix). Next: `/buildline-build <id>`.
|
|
34
|
+
- `feature` → it starts at `spec`. Next: `/buildline-spec <id>`.
|
|
35
|
+
- `epic` → it starts at `spec`. Next: `/buildline-spec <id>`, which will end by proposing the split into child features.
|
|
38
36
|
|
|
39
|
-
|
|
37
|
+
Record why: `node .buildline/bin/feature.mjs log <id> "<type and one-line reason>"`.
|
|
@@ -6,19 +6,14 @@ Resolve the feature from `$ARGUMENTS`, or use the most recent feature with statu
|
|
|
6
6
|
|
|
7
7
|
## Write the tasks
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
"id": "T1",
|
|
14
|
-
"title": "Add `saved_carts` table and model",
|
|
15
|
-
"covers": ["R1", "A2"],
|
|
16
|
-
"verify": "`npm test -- saved-cart.model` passes; migration runs up and down",
|
|
17
|
-
"passes": false,
|
|
18
|
-
"notes": ""
|
|
19
|
-
}
|
|
9
|
+
Add them in order, one command per task (ids T1, T2, … are assigned for you):
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
node .buildline/bin/feature.mjs task <id> add "Add saved_carts table and model" --covers R1,A2 --verify "npm test -- saved-cart.model passes; migration runs up and down"
|
|
20
13
|
```
|
|
21
14
|
|
|
15
|
+
Add `--parallel` to tasks that could run alongside the previous one.
|
|
16
|
+
|
|
22
17
|
Rules:
|
|
23
18
|
|
|
24
19
|
- **Small**: each task fits in one focused session and one commit, usually under ~200 changed lines.
|
|
@@ -26,7 +21,7 @@ Rules:
|
|
|
26
21
|
- **Verifiable**: `verify` says exactly what to run or observe. "Works" is not a verification.
|
|
27
22
|
- **Traceable**: `covers` lists the requirement and acceptance ids it moves forward. Every `A*` scenario must be covered by at least one task.
|
|
28
23
|
- **Test-first where it's cheap**: when a task introduces logic, its first step is a failing test for the acceptance scenario.
|
|
29
|
-
- **Ordered**: dependencies come first. Mark tasks that could run in parallel with
|
|
24
|
+
- **Ordered**: dependencies come first. Mark tasks that could run in parallel with `--parallel`.
|
|
30
25
|
- Include the boring tasks: migrations, feature flags, docs, analytics events, cleanup of temporary code.
|
|
31
26
|
|
|
32
27
|
Then write a one-paragraph `## Plan` summary in `spec.md` (approach, order, risks) so humans don't have to read JSON.
|
|
@@ -39,6 +34,6 @@ Then write a one-paragraph `## Plan` summary in `spec.md` (approach, order, risk
|
|
|
39
34
|
|
|
40
35
|
## Handoff
|
|
41
36
|
|
|
42
|
-
-
|
|
43
|
-
-
|
|
37
|
+
- **Approval:** at autonomy ≤ 2, ask the person to approve the plan and record it only on an explicit yes: `node .buildline/bin/feature.mjs approve <id> plan --by "<their name>"`. Until then the feature stays at `plan`. At L3+, continue without waiting.
|
|
38
|
+
- Then `node .buildline/bin/feature.mjs move <id> build --note "<n> tasks"`.
|
|
44
39
|
- Next: `/buildline-build <id>`, or `/buildline-autopilot <id>` to run build → verify → review unattended.
|
|
@@ -34,4 +34,4 @@ Write `## Review` in `spec.md`: a summary of what changed and why, risk areas to
|
|
|
34
34
|
|
|
35
35
|
## 5. Route
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
Blockers and should-fix findings become tasks (`node .buildline/bin/feature.mjs task <id> add "…"`) and the feature goes back with `node .buildline/bin/feature.mjs move <id> build --note "<n> findings"`. When there are none: `node .buildline/bin/feature.mjs move <id> ship --note "review clean"`, next `/buildline-ship <id>`. A human still approves the merge at every autonomy level.
|
|
@@ -27,6 +27,6 @@ Specs are written for one change; the context files carry what lasts. Update the
|
|
|
27
27
|
|
|
28
28
|
## 4. Close
|
|
29
29
|
|
|
30
|
-
-
|
|
30
|
+
- `node .buildline/bin/feature.mjs move <id> done --note "<PR link>"` (this records the ship date).
|
|
31
31
|
- Append a final `progress.md` entry.
|
|
32
32
|
- Suggest the next feature in the queue (`/buildline`).
|
|
@@ -41,6 +41,7 @@ If `type` is `epic`, end by proposing 2–6 child features, each a thin, shippab
|
|
|
41
41
|
|
|
42
42
|
## 6. Approval and handoff
|
|
43
43
|
|
|
44
|
-
-
|
|
45
|
-
-
|
|
46
|
-
-
|
|
44
|
+
- **Approval:** the spec needs human approval when autonomy ≤ 3. Ask: "Approve this spec?" Only when the person explicitly approves, record it: `node .buildline/bin/feature.mjs approve <id> spec --by "<their name>"`. Never record an approval on someone's behalf. They can also approve in `npx buildline ui` or `npx buildline watch`. Until then the feature stays at `spec` and the board shows it waiting on them.
|
|
45
|
+
- Once approved (or at L4), move on: `node .buildline/bin/feature.mjs move <id> design --note "<one line>"`, or `plan` if the change has no UX or architecture decisions (say why). The script refuses the move while a required approval is missing.
|
|
46
|
+
- Record what happened: `node .buildline/bin/feature.mjs log <id> "spec drafted, waiting for approval"` (or what changed).
|
|
47
|
+
- Suggest the next command.
|
|
@@ -40,5 +40,5 @@ Save screenshots and logs to `.buildline/features/<id>-<slug>/evidence/`.
|
|
|
40
40
|
|
|
41
41
|
## 4. Route
|
|
42
42
|
|
|
43
|
-
- All pass →
|
|
44
|
-
- Any fail →
|
|
43
|
+
- All pass → `node .buildline/bin/feature.mjs move <id> review --note "A1–A<n> pass"`. Next: `/buildline-review <id>`.
|
|
44
|
+
- Any fail → for each failure, `node .buildline/bin/feature.mjs task <id> add "Fix A3: empty state copy" --covers A3`, then `node .buildline/bin/feature.mjs move <id> build --note "<n> scenarios fail"` (this counts a rework). Next: `/buildline-build <id>`.
|