examples/reference-agent/skills/parallel-execute/SKILL.md
Use when executing a plan where independent tasks can run concurrently. Triggers on "run in parallel", "parallelize", "fan out", "concurrent execution", "run simultaneously", "at the same time", "dispatch subagents", "batch execute", or when a plan has 3+ tasks with no dependency overlap. For sequential task-by-task execution, use executing-plans instead.
npx skillsauth add adrozdenko/soleri parallel-executeInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Execute plan tasks in parallel by dispatching independent tasks to separate subagents. The controller agent (you) never implements — you dispatch, review, and integrate.
Announce at start: "I'm using the parallel-execute skill to run independent tasks concurrently."
<HARD-GATE> You MUST have an approved, split plan before using this skill. If no plan exists or it has no tasks, stop and use the writing-plans skill first. </HARD-GATE>Do NOT use when:
salvador_core op:get_plan
salvador_core op:plan_list_tasks params:{ planId: "<id>" }
Map out which tasks are independent by checking dependsOn for each task. Group tasks into waves — sets of tasks that can run in parallel:
Present the wave plan to the user before starting:
## Execution Waves
| Wave | Tasks | Parallel? |
|------|-------|-----------|
| 1 | task-1, task-3, task-5 | Yes (3 subagents) |
| 2 | task-2 (depends on task-1) | Solo |
| 3 | task-4 (depends on task-2, task-3) | Solo |
For each task in the current wave:
Check readiness:
salvador_core op:plan_dispatch params:{ planId: "<id>", taskId: "<taskId>" }
Only dispatch tasks where ready: true.
Mark as in_progress:
salvador_core op:update_task params:{ planId: "<id>", taskIndex: <n>, status: "in_progress" }
Gather vault context for the task:
salvador_core op:search params:{ query: "<task topic>", mode: "scan" }
Launch all ready tasks as parallel Agent calls in a single message. Each subagent gets:
You are implementing a single task from a plan. Work autonomously.
## Task
- **ID**: {taskId}
- **Title**: {title}
- **Description**: {description}
- **Acceptance Criteria**: {criteria}
## Context
- **Plan Objective**: {planObjective}
- **Vault Patterns to Follow**: {relevantPatterns}
- **Files Likely Involved**: {fileHints}
## Rules
- Implement ONLY this task — do not touch files outside your scope
- Run tests after implementation
- If blocked, report the blocker and stop — do not guess
- Do not commit — the controller handles commits
- When done, report: files changed, tests passing, any concerns
## Self-Review Checklist
Before reporting completion, verify:
- [ ] All acceptance criteria met
- [ ] Tests pass
- [ ] No files modified outside task scope
- [ ] No console.log or debug code left behind
- [ ] No raw colors or hardcoded values (use semantic tokens)
Use the Agent tool with isolation: "worktree" when tasks touch nearby files to prevent conflicts.
As subagents complete, collect their results. For each completed task:
Run spec review — spawn a reviewer subagent:
salvador_core op:plan_review_spec params:{ planId: "<id>", taskId: "<taskId>" }
Use the returned prompt to launch a spec-review Agent that reads the ACTUAL code changes (not the implementer's self-report).
Record spec review outcome:
salvador_core op:plan_review_outcome params:{
planId: "<id>", taskId: "<taskId>",
reviewType: "spec", reviewer: "spec-reviewer",
outcome: "approved|rejected|needs_changes",
comments: "<specific file:line references>"
}
If spec passes, run quality review:
salvador_core op:plan_review_quality params:{ planId: "<id>", taskId: "<taskId>" }
Launch a quality-review Agent with the returned prompt.
Record quality review outcome:
salvador_core op:plan_review_outcome params:{
planId: "<id>", taskId: "<taskId>",
reviewType: "quality", reviewer: "quality-reviewer",
outcome: "approved|rejected|needs_changes",
comments: "<severity-tagged feedback>"
}
Handle outcomes:
| Spec | Quality | Action | | ---- | ----------------- | ----------------------------------------------------------- | | Pass | Pass | Mark task completed | | Fail | — | Dispatch fix subagent with failure feedback (max 2 retries) | | Pass | Critical issues | Dispatch targeted fix subagent (max 2 retries) | | Pass | Minor issues only | Mark completed, note issues for later |
salvador_core op:update_task params:{ planId: "<id>", taskIndex: <n>, status: "completed" }
After all tasks in a wave are complete (or failed after retries):
Report wave results to the user:
## Wave N Complete
| Task | Status | Review | Notes |
|------|--------|--------|-------|
| task-1 | Completed | Spec: Pass, Quality: Pass | — |
| task-3 | Completed | Spec: Pass, Quality: Minor issues | Noted for cleanup |
| task-5 | Failed | Spec: Fail (2 retries exhausted) | Escalated |
Wait for user acknowledgment before proceeding to the next wave.
Check which tasks in the next wave are now ready (dependencies met).
Repeat from Step 2.
After all waves complete:
Spawn a final review subagent that checks cross-cutting concerns:
Report to user with full execution summary.
Same as executing-plans — reconcile, capture knowledge, archive:
salvador_core op:plan_reconcile params:{
planId: "<id>",
actualOutcome: "<what happened>",
driftItems: [{ type: "...", description: "...", impact: "...", rationale: "..." }]
}
salvador_core op:plan_complete_lifecycle params:{
planId: "<id>",
patterns: ["<patterns discovered>"],
antiPatterns: ["<anti-patterns discovered>"]
}
salvador_core op:session_capture params:{
summary: "<execution summary with parallel metrics>"
}
| Situation | Isolation |
| -------------------------------------------- | ----------------------------------------- |
| Tasks touch completely different directories | No isolation needed |
| Tasks touch files in the same package | Use isolation: "worktree" |
| Tasks modify the same file | Do NOT parallelize — run sequentially |
When using worktree isolation, the controller must merge worktree changes back after review passes.
| Failure | Response |
| ---------------------------- | ----------------------------------------------- |
| Subagent reports blocker | Pause that task, continue others in the wave |
| Spec review fails | Dispatch fix subagent with feedback (retry 1/2) |
| Second retry fails | Mark task as failed, escalate to user |
| Merge conflict from worktree | Resolve manually, then re-run quality review |
| All tasks in wave fail | Stop execution, report to user |
During execution, capture insights about parallelization:
salvador_core op:capture_quick params:{
title: "<what you learned about parallel execution>",
description: "<context: which tasks parallelized well, which conflicted>"
}
Switch to executing-plans skill mid-execution when:
| Op | When to Use |
| ------------------------- | ------------------------------------------- |
| get_plan | Load tracked plan |
| plan_list_tasks | List all tasks with dependencies |
| plan_dispatch | Check task readiness (dependencies met?) |
| update_task | Mark tasks in_progress / completed / failed |
| plan_review_spec | Generate spec compliance review prompt |
| plan_review_quality | Generate code quality review prompt |
| plan_review_outcome | Record review pass/fail result |
| plan_reconcile | Post-execution drift analysis |
| plan_complete_lifecycle | Extract knowledge, archive |
| session_capture | Save session context |
| capture_quick | Capture mid-execution learnings |
| search | Vault lookup for task context |
Required skills:
testing
Triggers: "terse mode", "be brief", "less tokens", "fewer tokens", "compress output", "caveman", or invokes /terse. Token-efficient responses with full technical accuracy.
tools
Triggers: "compress this file", "compress CLAUDE.md", "compress memory", "shrink this", "reduce tokens in file", or invokes /compress. Compresses natural language files to save input tokens.
testing
Triggers: "release", "bump version", "publish packages", "cut a release", "version bump", "npm publish". Bumps monorepo versions, commits, tags, pushes to trigger CI release. Use deliver-and-ship for quality gates.
development
Triggers: "implement X", "build Y", "fix Z", "add feature", or any work task needing planning + execution. Full orchestration loop: plan, execute, complete with vault context and brain recs.