Final rebrand: rename remaining Rust source file to complete the gsd → forge transition. All parser references already use forge_parser after earlier commits. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
3 KiB
Parallel Orchestration
Run multiple milestones simultaneously in isolated git worktrees. Each milestone gets its own worker process, branch, and context window.
{% hint style="info" %}
Parallel mode is off by default. Enable it in preferences to use /sf parallel commands.
{% endhint %}
Quick Start
-
Enable parallel mode:
parallel: enabled: true max_workers: 2 -
Start parallel execution:
/sf parallel startSF scans milestones, checks dependencies and file overlap, shows an eligibility report, and spawns workers.
-
Monitor:
/sf parallel status -
Stop:
/sf parallel stop
How It Works
Each worker is a separate SF process with complete isolation:
| Resource | Isolation |
|---|---|
| Filesystem | Own git worktree |
| Git branch | milestone/<MID> |
| Context window | Separate process |
| Metrics | Own metrics.json |
| Crash recovery | Own auto.lock |
Workers communicate with the coordinator through file-based IPC — heartbeat files and signal files in .sf/parallel/.
Eligibility
Before starting, SF checks which milestones can run concurrently:
- Not complete — finished milestones are skipped
- Dependencies satisfied — all
dependsOnentries must be complete - File overlap — milestones touching the same files get a warning (but are still eligible since they run in separate worktrees)
Configuration
parallel:
enabled: false # master toggle (default: false)
max_workers: 2 # concurrent workers (1-4)
budget_ceiling: 50.00 # aggregate cost limit
merge_strategy: "per-milestone" # when to merge back
auto_merge: "confirm" # "auto", "confirm", or "manual"
Commands
| Command | Description |
|---|---|
/sf parallel start |
Analyze and start workers |
/sf parallel status |
Show all workers with progress and cost |
/sf parallel stop [MID] |
Stop all or a specific worker |
/sf parallel pause [MID] |
Pause all or a specific worker |
/sf parallel resume [MID] |
Resume paused workers |
/sf parallel merge [MID] |
Merge completed milestones to main |
Merge Reconciliation
When milestones complete, their changes merge back to main:
.sf/state files are auto-resolved- Code conflicts halt the merge — resolve manually and retry with
/sf parallel merge <MID>
Budget Management
When budget_ceiling is set, aggregate cost across all workers is tracked. When the ceiling is reached, workers are signaled to stop.
Troubleshooting
| Problem | Fix |
|---|---|
| "Parallel mode is not enabled" | Set parallel.enabled: true |
| "No eligible milestones" | All milestones are complete or blocked; check /sf queue |
| Worker crashed | Run /sf doctor --fix, then /sf parallel start |
| Merge conflicts | Resolve in .sf/worktrees/<MID>/, then /sf parallel merge <MID> |
| Workers seem stuck | Check if budget ceiling was reached via /sf parallel status |