feat(v5): chief-loop parallel ticket execution via isolated worktrees - #29
Open
mildronize wants to merge 2 commits into
Open
mildronize wants to merge 2 commits into
mildronize wants to merge 2 commits into
Conversation
User asked whether chief-loop could build multiple tickets at once. Went through a full /grilling session before implementing; decisions made there, now built: - Default stays sequential — today's behavior, unchanged, zero risk for existing users. - Opt in via `parallel` (asks the concurrency limit at Entry Confirmation, same gate mode already uses) or `parallel:<N>` (skips asking). Combines freely with the standard/strict mode argument, e.g. `/chief-loop strict parallel:3`. - chief-build stays caller-agnostic: it gained a "Working directory" note (normally its own checkout; chief-loop can tell it to operate and commit in a specific git worktree instead) but the build recipe itself never changes based on where it runs. Worktree lifecycle (create/merge/remove) is entirely chief-loop's job, never chief-build's — matches chief-build's existing "no different behavior between invocation surfaces" principle. - Parallel builds run in a streaming pool, not batches: a ticket's worktree branches off the story branch's current tip at the moment it starts (picking up whatever earlier parallel tickets already merged), and the instant a pooled ticket finishes and merges back, the freed slot is immediately refilled from the recomputed frontier — never waiting for the rest of the pool. Waiting for a whole cohort before refilling would have quietly reintroduced the fixed-size batching v5 deliberately dropped from v4. - Merge conflicts while reconciling a worktree branch back route through the same "Handling Ambiguity" mechanism chief-loop already uses for /chief-build blockers, rather than inventing a second parallel mechanism — a throwaway agent looks at both sides, chief- loop decides, the resolution is documented in that ticket's report. chief-explain's skill-family table updated to mention the new argument. chief-autopilot untouched — out of scope, it stays standard-only/sequential-only per its existing "no argument to change this" design from the previous PR. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Experimental snapshot for the chief-loop parallel-execution feature (PR #29) — this branch is not being merged into design/v5-ai-workflow for now, tagged separately as its own experimental line. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
User asked whether
chief-loopcould build multiple tickets at once. Went through afull
/grillingsession before implementing — decisions made there, now built.Design (from the grill)
users.
parallel(asks the concurrency limit at Entry Confirmation, samegate mode already uses) or
parallel:<N>(skips asking). Combines freely with thestandard/strict mode argument:
/chief-loop,/chief-loop strict,/chief-loop parallel:3,/chief-loop strict parallel:3.chief-buildstays caller-agnostic. It gained a "Working directory" note(normally its own checkout;
chief-loopcan tell it to operate and commit in aspecific git worktree instead) but the build recipe itself never changes based on
where it runs. Worktree lifecycle (create/merge/remove) is entirely
chief-loop'sjob, never
chief-build's — matcheschief-build's existing "no different behaviorbetween invocation surfaces" principle.
current tip at the moment it starts (picking up whatever earlier parallel tickets
already merged, reducing conflict odds as a round progresses). The instant a pooled
ticket finishes and merges back, the freed slot is immediately refilled from the
recomputed frontier — never waiting for the rest of the pool. Waiting for a whole
cohort before refilling would have quietly reintroduced the fixed-size batching v5
deliberately dropped from v4.
and hitting a conflict routes through the same mechanism
chief-loopalready usesfor
/chief-buildblockers, rather than a second parallel mechanism — a throwawayagent looks at both sides,
chief-loopdecides, the resolution is documented inthat ticket's report.
Changes
chief-loop: new Concurrency argument axis,#### Parallel Executionsubsectionunder The Loop with the full pool mechanics, Handling Ambiguity extended to cover
merge conflicts, Rules extended.
chief-build: new "Working directory" note — accepts an optional directory overridefrom its caller; nothing else about its behavior changes.
chief-explain: skill-family table row updated to mention the new argument.Out of scope
chief-autopilotuntouched — it stays standard-only/sequential-only per its existing"no argument to change this" design from the previous PR. Not asked for here.
🤖 Generated with Claude Code