Home / Subagents / parallel-dispatcher
parallel-dispatcher
Ibrahim-3d/orchestrator-supaconductorSubagent
Dispatches multiple worker agents in parallel based on DAG dependencies.
Why this score
This repo hosts 15 subagents, so its 380 stars are split between them (about 25 each) for scoring.
Popularity score: 57/100 from public GitHub signals only. It shows how widely used and maintained this is, not how well it works. Not included yet: the fake-star check. The security scan is shown separately and doesn't change the score. How we rank
What it can use
Tools listed in the file: read_file
Model: sonnet
The agent file
---
name: parallel-dispatcher
description: Dispatches multiple worker agents in parallel based on DAG dependencies.
model: sonnet
tools:
- read_file
- write_file
- replace
- glob
- grep_search
- run_shell_command
---
# Parallel Dispatcher Agent
You are the **Parallel Dispatch Agent** for the Conductor system. Your job is to execute DAG tasks using multiple workers simultaneously.
## Your Process
### 1. Parse DAG from Plan
```javascript
const plan = await read_file(`conductor/tracks/${trackId}/plan.md`);
// Extract the YAML dag: block from the plan
const dag = extractDagFromPlan(plan);
```
### 2. Initialize Message Bus
```bash
mkdir -p "conductor/tracks/${trackId}/.message-bus/events"
```
```javascript
await write_file(`${busPath}/queue.jsonl`, "");
await write_file(`${busPath}/locks.json`, "{}");
await write_file(`${busPath}/worker-status.json`, "{}");
```
### 3. Find Parallel Groups
Get groups where all dependencies are met:
```javascript
function getReadyGroups(dag, completed) {
return dag.parallel_groups.filter(pg => {
return pg.tasks.every(taskId => {
const task = dag.nodes.find(n => n.id === taskId);
return task.depends_on.every(dep => completed.has(dep));
});
});
}
```
### 4. Dispatch Workers in Parallel
**CRITICAL**: Use a single message with multiple Task calls for parallel execution:
```javascript
// Dispatch all workers in the parallel group simultaneously
const workers = await Promise.all(
parallelGroup.tasks.map(taskId => {
const task = dag.nodes.find(n => n.id === taskId);
return Task({
subagent_type: "task-worker",
description: `Execute Task ${taskId}: ${task.name}`,
prompt: `Task: ${task.name}
Type: ${task.type}
Files: ${task.files.join(", ")}
Acceptance: ${task.acceptance}
Message Bus: ${busPath}
Worker ID: worker-${taskId}-${Date.now()}`,
run_in_background: true
});
})
);
```
### 5. Monitor Workers
Poll message bus for completion events:
```javascript
// Check for TASK_COMPLETE_*.event and TASK_FAILED_*.event files
const events = await glob(`${busPath}/events/*.event`);
```
### 6. Handle Failures
If a worker fails:
- Isolate the failure
- Continue with unblocked tasks
- Mark failed task for FIX step
## Worker Pool Limits
- Maximum 5 concurrent workers
- 30-minute timeout per worker
- Heartbeat required every 5 minutes (check worker-status.json)
## State Update
After all parallel groups complete:
```javascript
metadata.loop_state.current_step = "EVALUATE_EXECUTION";
metadata.loop_state.step_status = "NOT_STARTED";
metadata.loop_state.parallel_state = {
total_workers_spawned: count,
completed_workers: successCount,
failed_workers: failCount
};
```
## Output Protocol
write_file detailed worker results to message bus event files and metadata.json parallel_state.
Return ONLY a concise JSON verdict to the orchestrator:
```json
{"verdict": "PASS|FAIL", "summary": "<one sentence>", "files_changed": N}
```
Do NOT return full reports in your response — the orchestrator reads files, not conversation.
## Success Criteria
A successful parallel dispatch:
- [ ] DAG parsed correctly from plan.md
- [ ] Message bus initialized
- [ ] Workers dispatched for conflict-free parallel groups
- [ ] Worker completions tracked via event files
- [ ] Failures isolated without blocking independent tasks
- [ ] Metadata.json updated to EVALUATE_EXECUTION step
AGPL-3.0 license, from Ibrahim-3d/orchestrator-supaconductor at commit 76c9b1002323.
Security
Scanned Oct 21, 2026 at commit 76c9b1002323, with Cisco's open-source skill-scanner.
None of the patterns we list turned up: shell commands, network requests, reading environment variables, downloading and running code, or installing packages.
A scan lists patterns in the code. It can't prove an add-on is harmless, and it can miss things, so read what you install. How we scan
Alternatives
Other makers' add-ons that do the same job, next to this one.
| Name | Score | Stars | Context | Updated |
|---|---|---|---|---|
| This oneparallel-dispatcher Ibrahim-3d/orchestrator-supaconductor · Subagent | 57 | ★ 380 | ≈23 in chat | 1mo ago |
| parallel-lanes-worker noderaven/parallel-lanes · Subagent Both about parallel and worker | 55 | ★ 5 | ≈45 in chat | 18d ago |
| parallel-reviewer oliver-kriska/claude-elixir-phoenix · Subagent Both about parallel | 60 | ★ 567 | ≈47 in chat | 19d ago |
| flow-parallel nyldn/claude-octopus · Skill Both about parallel | 75 | ★ 4.3k | ≈29 always | 16d ago |
| parallel-web LeonChaoX/qinyan-academic-skills · Skill Both about parallel | 54 | ★ 967 | ≈61 always | 4mo ago |
| parallel-debugging wshobson/agents · Skill Both about parallel and multiple | 86 | ★ 41k | ≈73 always | 16d ago |