You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
execute handles exactly one plan per invocation today, and each invocation provisions its own worktree. Executing a six-plan backlog means six dispatches babysat by the operator and six toolchain warm-ups, with the full done-criteria suite re-run per plan. Yet the skill already writes plans/README.md with a dependency-ordered queue — everything needed to run the backlog end-to-end is already on disk.
Related appetite: #15 (several plans in flight at once) and the economics half of #24.
Proposed design
execute all / execute <range> (e.g. execute 001-004): one shared batch worktree instead of a worktree per plan.
Setup, once — git worktree add <path> -b advisor/batch-<slug> from the user's HEAD, provision it, then run the repo's full verification gate as a baseline. Red baseline → stop and report: pre-existing failures poison every subsequent review, and "restore the baseline" is the real plan Reword security audit guidance for defensive remediation #1.
Dispatch, per plan — executors run serially in the batch worktree in plans/README.md order (dependencies enforced), one commit per plan, commit SHA in the report. Plans whose Scope sections are pairwise disjoint may still fan out to parallel per-plan worktrees; any overlap forces serial.
Layered verification — so the expensive gate doesn't run twice per plan:
per plan: scope compliance, the plan's scoped done criteria (cheap by construction), full-diff read, test audit — as today;
at checkpoints: the repo's full gate every 3–5 approved plans, after any HIGH-risk plan, and always at batch end. On failure, bisect the per-plan commits since the last green checkpoint — that's what commit-per-plan is for.
Rollback — a BLOCK verdict rolls the batch worktree back (git reset --hard <last-good>) and continues with the next plan that doesn't depend on the blocked one. A dead executor (stale IN PROGRESS, dirty worktree) gets the same treatment before the next dispatch.
plan-template — Done criteria split into a Scoped layer (run on every execution) and a Full gate layer (owned by the dispatcher at checkpoints), sized to the plan's blast radius.
What this preserves
Every existing guarantee, verbatim. The advisor never edits code; executors edit only inside a disposable worktree; the user's checkout is never touched; merging stays the user's decision. This changes worktree count, not the isolation model.
PR to follow — happy to adjust the shape either way.
executehandles exactly one plan per invocation today, and each invocation provisions its own worktree. Executing a six-plan backlog means six dispatches babysat by the operator and six toolchain warm-ups, with the full done-criteria suite re-run per plan. Yet the skill already writesplans/README.mdwith a dependency-ordered queue — everything needed to run the backlog end-to-end is already on disk.Related appetite: #15 (several plans in flight at once) and the economics half of #24.
Proposed design
execute all/execute <range>(e.g.execute 001-004): one shared batch worktree instead of a worktree per plan.git worktree add <path> -b advisor/batch-<slug>from the user's HEAD, provision it, then run the repo's full verification gate as a baseline. Red baseline → stop and report: pre-existing failures poison every subsequent review, and "restore the baseline" is the real plan Reword security audit guidance for defensive remediation #1.plans/README.mdorder (dependencies enforced), one commit per plan, commit SHA in the report. Plans whose Scope sections are pairwise disjoint may still fan out to parallel per-plan worktrees; any overlap forces serial.git reset --hard <last-good>) and continues with the next plan that doesn't depend on the blocked one. A dead executor (stale IN PROGRESS, dirty worktree) gets the same treatment before the next dispatch.What this preserves
Every existing guarantee, verbatim. The advisor never edits code; executors edit only inside a disposable worktree; the user's checkout is never touched; merging stays the user's decision. This changes worktree count, not the isolation model.
PR to follow — happy to adjust the shape either way.
🤖 Generated with Claude Code