multiAI Summary Pending

parallel-agents

Dispatch multiple agents to work on independent problems concurrently. Use when facing 3+ independent failures or tasks.

231 stars

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/parallel-agents/SKILL.md --create-dirs "https://raw.githubusercontent.com/aiskillstore/marketplace/main/skills/dmjgilbert/parallel-agents/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/parallel-agents/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How parallel-agents Compares

Feature / Agentparallel-agentsStandard Approach
Platform SupportmultiLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Dispatch multiple agents to work on independent problems concurrently. Use when facing 3+ independent failures or tasks.

Which AI agents support this skill?

This skill is compatible with multi.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Dispatching Parallel Agents

Assign separate agents to independent problem domains simultaneously for faster resolution.

## When to Use

- 3+ test failures across different files/subsystems
- Multiple independent tasks that don't share state
- Investigations that won't interfere with each other
- Failures from unrelated root causes

## When NOT to Use

- Failures are interconnected
- Tasks share state or create conflicts
- Agents would modify the same files
- You lack context to properly scope tasks

## Implementation Steps

### 1. Group by Domain

Organize failures/tasks into independent categories:

```markdown
Group A: Authentication tests (3 failures)
Group B: API endpoint tests (2 failures)
Group C: UI component tests (4 failures)
```

### 2. Define Focused Tasks

Each agent receives:

| Field       | Description                      |
| ----------- | -------------------------------- |
| Scope       | Specific files/tests to focus on |
| Goal        | Clear success criteria           |
| Constraints | What NOT to change               |
| Output      | Expected deliverable             |

### 3. Dispatch Concurrently

**IMPORTANT**: Launch all tasks in a **single message** (no `run_in_background`). Multiple Task calls in the same message automatically run in parallel, and Claude waits for all to complete.

```
# All three tasks run in parallel automatically when in the same message
Task(test-engineer, prompt="Fix auth test failures in src/auth/*.test.ts")
Task(test-engineer, prompt="Fix API test failures in src/api/*.test.ts")
Task(frontend-developer, prompt="Fix UI test failures in src/components/*.test.tsx")
# Claude waits for all to complete, then continues
```

**Avoid `run_in_background: true`** unless you need to do other work while waiting. Task IDs must be captured and used within the same response.

### 4. Integrate Results

1. Review all agent outputs (available after parallel completion)
2. Verify no conflicts between changes
3. Run full test suite
4. Merge changes

## Effective Agent Prompts

**Good prompt:**

```
Fix the 3 failing tests in src/auth/login.test.ts:
- "should reject invalid email format"
- "should require password min length"
- "should handle network errors"

Error messages attached. Identify root causes - don't just increase timeouts.
Constraints: Don't modify src/api/* files.
Output: Summary of fixes with test results.
```

**Bad prompt:**

```
Fix all the tests
```

## Prompt Template

```markdown
## Task: [Specific description]

**Scope:** [Files/tests to focus on]

**Failures:**

- [Test name]: [Error message]
- [Test name]: [Error message]

**Goal:** [What success looks like]

**Constraints:**

- Don't modify [files]
- Preserve [behavior]

**Output:**

- Summary of root causes found
- Changes made
- Verification results
```

## Common Pitfalls

| Mistake         | Problem                   | Solution               |
| --------------- | ------------------------- | ---------------------- |
| Vague scope     | Agent changes wrong files | Specify exact paths    |
| Missing context | Agent can't diagnose      | Include error messages |
| No constraints  | Conflicting changes       | Define boundaries      |
| Unclear output  | Can't verify success      | Specify deliverables   |

## Benefits

- Reduces investigation time through parallelization
- Each agent maintains narrow focus
- Minimizes cross-agent interference
- Solves multiple problems concurrently

## Background Execution

For long-running tasks where you need to continue working, use `run_in_background: true`.

### Pattern: Background + Foreground

```
# Long-running audit in background
audit_task = Task(security-auditor,
  prompt="Full security audit",
  run_in_background: true)

# Continue with implementation work
Task(frontend-developer, prompt="Build login form")

# Later, get audit results
TaskOutput(audit_task.id, block: true)
```

### Pattern: Multiple Background Tasks

```
# Launch multiple background tasks
task1 = Task(test-engineer, prompt="...", run_in_background: true)
task2 = Task(code-reviewer, prompt="...", run_in_background: true)

# Do other work...

# Collect all results
result1 = TaskOutput(task1.id, block: true)
result2 = TaskOutput(task2.id, block: true)
```

### When to Use Background vs Foreground

| Scenario                   | Mode                      | Why                          |
| -------------------------- | ------------------------- | ---------------------------- |
| Quick tasks (< 1 min)      | Foreground                | Simpler, immediate results   |
| Long audit/analysis        | Background                | Continue working             |
| Multiple independent tasks | Foreground (parallel)     | Auto-waits for all           |
| Security + Implementation  | Background + Foreground   | Overlap work                 |

### Important Notes

- Task IDs are only valid within the same response
- Always use `block: true` when retrieving results with TaskOutput
- Prefer foreground parallel (single message, multiple Tasks) when possible
- Background tasks should be collected before the response ends