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
{{ message }}
Repository navigation
feat(#525): Architecture decision: worktree vs checkout heuristic #531
Issue:#531 — feat(#525): Architecture decision: worktree vs checkout heuristic Assigned to: Flight (Lead) Reason: No specific domain match — assigned to Lead for further analysis
@copilot evaluation: No strong capability match — routed to squad member.
✅ Zero breaking changes — all existing workflows continue using git checkout -b
✅ Teams opt-in by adding worktrees: true to config when ready
✅ New teams can enable during init if they expect parallel work
Activity
github-actions commentedon Mar 22, 2026
📋 Assigned to Flight (Lead)
Issue: #531 — feat(#525): Architecture decision: worktree vs checkout heuristic
Flight will pick this up in the next Copilot session.
github-actions commentedon Mar 22, 2026
🏗️ Squad Triage — Flight (Lead)
Issue: #531 — feat(#525): Architecture decision: worktree vs checkout heuristic
Assigned to: Flight (Lead)
Reason: No specific domain match — assigned to Lead for further analysis
@copilot evaluation: No strong capability match — routed to squad member.
Team roster:
squad:flightsquad:proceduressquad:eecomsquad:fidosquad:paosquad:capcomsquad:controlsquad:surgeonsquad:boostersquad:gncsquad:networksquad:retrosquad:incosquad:guidosquad:telemetrysquad:voxsquad:dskysquad:simssquad:handbooksquad:ralphsquad:copilotbradygaster commentedon Mar 22, 2026
Architecture Decision Complete
📋 Decision document:
.squad/decisions/inbox/flight-worktree-heuristic.md🔀 Branch:
squad/531-worktree-heuristicKey Decisions
1. Opt-in configuration (not heuristic-based)
worktrees: false(backward compatible — all existing workflows usegit checkout -b)squad.config.ts:worktrees: true.squad/config.json→{ "worktrees": true }SQUAD_WORKTREES=1env var (highest precedence)Rationale: Heuristics (parallel spawn detection) are brittle and unpredictable. Configuration is explicit and user-controlled.
2. Worktree path convention
{repo-parent}/{repo-name}-{issue}C:\src\squad\→ Issue chore: remove internal team-docs from main #42 worktreeC:\src\squad-42worktreePathpattern in config (optional)3. Dependency management
mklink /J) or symlink (Unixln -s) fornode_modulesfrom main reponpm installin worktree if junction/symlink failsgit worktree add4. All 3 platform adapters get identical worktree support
createWorktree/removeWorktreecommandscreateWorktree:git worktree add {path} -b {branch} {base}removeWorktree:git worktree remove {path} && git worktree pruneImplications for Sibling Issues
#528 (ralph-commands.ts):
createWorktree?andremoveWorktree?fields toRalphCommandsinterface (optional — only present when worktrees enabled)createBranchcommand#529 (coordinator pre-spawn):
worktreesconfig at session startcreateWorktree, disabled →createBranchWORKTREE_PATHin spawn prompt when worktrees enabled#530 (post-merge cleanup):
removeWorktreeafter PR merge (via Ralph idle-watch or coordinator)Config Schema
typescript export interface TeamConfig { worktrees?: boolean; // Default: false worktreePath?: string; // Default: '{repo-parent}/{repo-name}-{issue}' }Precedence:
SQUAD_WORKTREESenv var >squad.config.ts>.squad/config.json> default (false)Migration Path
✅ Zero breaking changes — all existing workflows continue using
git checkout -b✅ Teams opt-in by adding
worktrees: trueto config when ready✅ New teams can enable during init if they expect parallel work
Next Steps
ralph-commands.tsworktrees.md,parallel-work.md,squad.agent.mdDecision approved by: Flight (as architect + owner of #531)
feat(sdk): add worktree branch creation variant to ralph-commands (#528)
docs(decisions): architecture decision for worktree heuristic (#531) (#…
feat(sdk): add worktree branch creation variant to ralph-commands (#528…
feat(observability): add OTel shell metrics — session, latency, errors (