Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
1a20808
fix: the 1.6.3 deferred minors
noderaven Oct 15, 2026
733ae16
test: load the ledger module without writing bytecode
noderaven Oct 15, 2026
3adaab1
fix: refuse SHA-256 repositories in setup
noderaven Oct 15, 2026
ac57df5
feat: autopsy lists background checks never waited on
noderaven Oct 15, 2026
3e021b1
fix: a widen path naming a directory without a trailing slash covers it
noderaven Oct 15, 2026
9281c31
fix: task-checks caps the paths it prints and keeps them all in the e…
noderaven Oct 15, 2026
80ba3cc
fix: run-report prints a summary when it writes the report to a file
noderaven Oct 15, 2026
304394c
docs: the post-integrate repair reserve applies in the full profile only
noderaven Oct 15, 2026
8548c5a
fix: reviewers read only the evidence files whose policy.unit is thei…
noderaven Oct 15, 2026
320aa07
fix: final lenses need no ruling for an earlier task's file
noderaven Oct 15, 2026
cbd817d
fix: autopsy counts check-procedure waits as explained time
noderaven Oct 15, 2026
cfb948d
feat: agents read a file right before editing it
noderaven Oct 15, 2026
9604acc
feat: task-checks counts files an adjudicator ruling permits as declared
noderaven Oct 15, 2026
8e8bb02
feat: implementers list the files a ruling explains
noderaven Oct 15, 2026
016eab3
test: raise the SKILL.md word limit to 4000
noderaven Oct 15, 2026
34bccf2
docs: a contents list for reference.md and a skill description that s…
noderaven Oct 15, 2026
4cdbfbe
feat: shared run figures for history and worth-it
noderaven Oct 15, 2026
610f439
feat: worth-it compares a layout's saving with a run's fixed phases
noderaven Oct 15, 2026
4170a73
feat: autopsy reports check time per command and widened calls
noderaven Oct 15, 2026
074c764
feat: history --runs compares two runs and says whether they are comp…
noderaven Oct 15, 2026
f58b9a6
feat: doctor warns when lanes at once exceed the CPUs
noderaven Oct 15, 2026
1320043
docs: the worth-it check in the Assessment and the Offer
noderaven Oct 15, 2026
2b6ef5e
test: the worth-it back-test
noderaven Oct 15, 2026
0fd575d
fix: a ruling permit names files only and never another task's folder
noderaven Oct 15, 2026
af5f25f
fix: a malformed archived run never changes the worth-it recommendation
noderaven Oct 15, 2026
67eecf7
fix: history --runs notes partial tokens instead of calling every rea…
noderaven Oct 15, 2026
a794544
docs: a worth-it usage error leaves the Offer as it was
noderaven Oct 15, 2026
d8f3396
fix: the permit folder guard reads a declared directory as its folder…
noderaven Oct 15, 2026
3195cb9
fix: history --runs names the remedy for a stale autopsy and takes a …
noderaven Oct 15, 2026
e338ace
docs: the run history note on autopsy refreshes avoids the lock secti…
noderaven Oct 15, 2026
233d031
fix: autopsy says an unwaited check had no await-checks wait, not tha…
noderaven Oct 15, 2026
87d4f74
fix: worth-it's scale note names every skip cause; the /c/x path form…
noderaven Oct 15, 2026
e24fce3
test: load ledger with exec_module; the back-test is executable
noderaven Oct 15, 2026
27fca7d
fix: doctor shares its lanes-at-once count and says host_budget is ex…
noderaven Oct 15, 2026
61bcf61
chore: release 1.6.4
noderaven Oct 15, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -269,7 +269,9 @@ session lists it, and you can resume with one word. Finished tasks are skipped.
1. **Assess.** `scripts/derive-lanes` groups the tasks into lanes (at most
`min(5, CPU cores + 2)`), a *prelude* (shared groundwork that runs first), and a *join*
(tasks that need the merged result). Plans with only 1-2 tasks are handed back to
Superpowers.
Superpowers. `scripts/worth-it` then counts how many task-times running the lanes in
parallel saves; when that is 1 or less (always for a single lane), a direct build is
recommended first, and you can still pick parallel lanes.
2. **Manifest.** Claude writes a JSON manifest covering lanes, model tier per task
(`standard`, `sonnet`, or `light`; security-sensitive tasks are always `standard`),
project commands, commit rules taken from your CLAUDE.md, and budgets.
Expand Down Expand Up @@ -365,7 +367,7 @@ Other things to know:
| `reference.md` | Manifest fields, lane building, tiers, budgets, recovery details |
| `adopt.md` | Adopting earlier work from a hand-run attempt, with a worked example |
| `run.workflow.js` | The orchestrator, built from `src/` by `scripts/build` |
| `scripts/` | derive-lanes, setup, ledger, shadow, run-report, active-run, task-checks, run-checks, await-checks, audit, tool-outcomes, stop-cause, and other helpers |
| `scripts/` | derive-lanes, worth-it, setup, ledger, shadow, run-report, active-run, task-checks, run-checks, await-checks, audit, tool-outcomes, stop-cause, and other helpers |
| `hooks/` | The SessionStart and notice hooks |
| `agents/` | The `parallel-lanes-worker` agent definition |
| `tests/` | `node tests/run-tests.mjs` runs every `tests/*.test.mjs`, four files at a time (`--concurrency N` or `PL_TEST_CONCURRENCY` to change) |
Expand Down
33 changes: 29 additions & 4 deletions SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: parallel-lanes
description: Use when an approved implementation plan is about to be executed (at the execution-method handoff), or when resuming a stopped parallel-lanes run.
description: Runs an approved implementation plan as parallel lanes of tasks in separate git worktrees, each task implemented and reviewed by its own agents, then integrated, checked and reviewed as a whole. Use when an approved implementation plan is about to be executed (at the execution-method handoff), or when resuming a stopped parallel-lanes run.
---

# Parallel lanes
Expand Down Expand Up @@ -36,6 +36,7 @@ after the marker is fixed).
|---|---|
| The skill fires (first output) | `parallel-lanes invoked: evaluating <plan> for parallel execution` |
| Stepping aside | `parallel-lanes: not a fit (<reason>); recommending <method>` |
| The worth-it check favours a direct build | `parallel-lanes: running in parallel saves about <saved> task-times, less than a run's fixed phases; recommending <method>` |
| Launching a new run | `parallel-lanes: launching run <run_id>: <N> lanes, <M> agents` |
| Launching with tasks already done | `parallel-lanes: resuming run <run_id>: <K> tasks already committed` |
| Relaunch after a transient stop | `parallel-lanes: relaunching run <run_id> after a transient stop` |
Expand Down Expand Up @@ -67,17 +68,26 @@ lanes, prelude, and join per reference.md "Building lanes" (exit 3: no parseable
headings; step aside). Runnable tasks exclude ones the plan marks after-merge, operator, or
manual.

- Parallel lanes is the default executor: run as Parallel for any approved plan of 3+
runnable tasks, a single lane included.
- Parallel lanes is the default executor for any approved plan of 3+ runnable tasks, unless
the worth-it check below recommends a direct build.
- Step aside only for a 1-2 task plan or an explicit request for Subagent-driven or Native:
print `not a fit (<reason>)` (e.g. `2 tasks`), recommending Native when the tasks edit the
same files in sequence, else Subagent-driven. Then present the plan's normal execution
choices with that recommendation and stop. Run nothing.
- Worth-it check, only when the Offer will be shown (not when the user already chose Parallel
lanes by name, never on Resume): with the layout just built, run
`<python> <skill_dir>/scripts/worth-it <plan> --max-lanes <cap> --prelude <ids> --lane <ids>
[--lane <ids> ...] --join <ids> --project <project folder>` (comma-separated task ids, one
`--lane` per lane in lane order; an empty prelude or join is `''`). It prints JSON:
`recommend` is `direct` when running in parallel saves 1 task-time or less (always for a
single-lane plan), else `parallel`; a non-zero exit or any `status` other than `ok` leaves the Offer as it was.
The rule, its evidence and the output: reference.md "Worth it".

## Offer

Skip this only if the user already chose parallel lanes by name. Otherwise present these
choices in order, recommend the first, and wait for the pick:
choices, recommend one, and wait for the pick. With `recommend: parallel`, or the worth-it
check unavailable, keep this order and recommend the first:

1. Parallel lanes (recommended) - <N> lanes in separate worktrees, superpowers implementer +
reviewer per task, then integration, project checks, and final reviews. ~<X> agents.
Expand All @@ -87,6 +97,21 @@ choices in order, recommend the first, and wait for the pick:
X is about 2 x runnable tasks + 10; the table gives the exact number. "Go ahead" or
"execute the plan" is not a choice of option 1; ask.

Under the choices print `Worth it: these lanes run <N> tasks in about <S> task-slots, saving
about <saved> task-times; a run's fixed phases cost about 1-2.` and, when the result has a
`scale`, `For scale: this project's past runs took about <T> min per task (<min>-<max>).`
(minutes, rounded). When the check is unavailable print `Worth it: unavailable (<reason>).`
instead.

With `recommend: direct`: print the worth-it notice first, then put the direct method first and
recommend it (Native when the tasks edit the same files in sequence, else Subagent-driven, as
for a step-aside), Parallel lanes second and the other method third. Under them print the
Worth it line, the scale line if any, and `A direct build still ends with a whole-branch
review; it gives up the run's worktree isolation, integration and delivery checks, E2E and the
multi-lens final review with its verify gate.` This is not a step-aside: if the user picks
Parallel lanes, continue as usual; if they pick the direct method, stop and leave the plan to
that method, as after a step-aside.

## Building the manifest

Fields: reference.md "Manifest fields". In order:
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.6.3
1.6.4
2 changes: 1 addition & 1 deletion hooks/bootstrap.md
Original file line number Diff line number Diff line change
@@ -1 +1 @@
This applies to the main session at the execution-method handoff, never an agent executing a single task. There, parallel-lanes is the default plan executor: when an approved implementation plan is about to be executed, or a stopped parallel-lanes run is to be resumed, invoke the parallel-lanes skill FIRST. It takes precedence over the superpowers Subagent-driven and Native execution options. Superpowers still governs brainstorming, specs, plans, TDD, and debugging, and supplies the per-task review prompts. Use a superpowers execution mode only when parallel-lanes steps aside or the user explicitly asks for one. A multi-agent run still needs the user's explicit yes to the dry-run table.
This applies to the main session at the execution-method handoff, never an agent executing a single task. There, parallel-lanes is the default plan executor: when an approved implementation plan is about to be executed, or a stopped parallel-lanes run is to be resumed, invoke the parallel-lanes skill FIRST. It takes precedence over the superpowers Subagent-driven and Native execution options. Superpowers still governs brainstorming, specs, plans, TDD, and debugging, and supplies the per-task review prompts. Use a superpowers execution mode only when parallel-lanes steps aside, recommends a direct build and the user picks it, or the user explicitly asks for one. A multi-agent run still needs the user's explicit yes to the dry-run table.
Loading
Loading