Skip to content

Finish experiment pool: forced fan-out, list, deliver-back (#629) - #647

Merged
justrach merged 1 commit into
mainfrom
cursor/experiment-fanout-629-4ffc
Aug 28, 2026
Merged

Finish experiment pool: forced fan-out, list, deliver-back (#629)#647
justrach merged 1 commit into
mainfrom
cursor/experiment-fanout-629-4ffc

Conversation

@justrach

Copy link
Copy Markdown
Owner

Finishes the #629 items that were still open after the first slice.

What landed

  • Mint/reuse against a real git repo. arm creates .graff/worktrees/exp-{id}/{i} on graff/exp/{id}/{i}, then reuses the directories on a second arm. Proven in a tmp repo (not a path-string test).
  • Forced fan-out. While a pool is armed, the root system prompt says it MUST spawn one subagent per independent arm and must not edit the caller tree. --experiment appends that line to the prompt base; /experiment N pins it through setSystemPrompts so a playbook refresh cannot drop it.
  • graff worktree list tags the pool. Paths under .graff/worktrees/exp- and branches graff/exp/… show as (experiment pool).
  • Deliver-back, no delete. A child that claimed a seat reports path, branch, keep-reason (dirty / committed / unverifiable / clean-left-in-pool), and git diff --stat vs the mint HEAD. Pool trees are never worktree remove’d (ADR 0037). Per-spawn isolation: worktree cleanup is unchanged.

#295 (dependent stages) and #554 (Docker snapshots) stay out of scope.

Verification

Tier 1 green: 1726 unit tests (including the live git mint/reuse + deliver-back case), 448 TUI tests, 17 PTY probes.

Open in Web Open in Cursor 

Mint/reuse is proven against a real git repo. While a pool is armed the
root system prompt says it MUST spawn and must not edit the caller tree.
graff worktree list tags exp-* trees. Child finish reports path, branch,
keep-reason, and diffstat and never deletes a pool seat.
@justrach
justrach merged commit d52ae9f into main Aug 28, 2026
6 checks passed
@justrach
justrach deleted the cursor/experiment-fanout-629-4ffc branch August 28, 2026 09:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants