Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Orchestrate parallel execution of batch tasks by splitting work into independent units and dispatching them to multiple subagents simultaneously. Use this sk...
Orchestrate parallel execution of batch tasks by splitting work into independent units and dispatching them to multiple subagents simultaneously. Use this sk...
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
When users present tasks that decompose into multiple independent work units, serial execution wastes time. This skill guides you to identify batch opportunities, construct self-contained prompts for each unit, and dispatch them as parallel subagents via the Task tool โ completing in minutes what would otherwise take much longer sequentially. The core insight: a single message can contain multiple Task tool calls, and they all execute concurrently. Your job is to make each subagent's prompt fully self-contained (they cannot see this conversation) and to coordinate the results.
Strong signals: User says "process all files in X folder" User provides a list: "do A, B, C, D for each of these..." User mentions "batch", "bulk", "every", "each", "all N files" A folder contains multiple files needing the same operation User wants multiple pages/components/reports generated Also consider using when: User describes repetitive work that you'd otherwise do in a loop The task involves 3+ independent units of similar type Processing time per unit is non-trivial (reading/transforming documents, generating code, etc.) Do NOT use when: Tasks have strict sequential dependencies (output of task N feeds into task N+1) There are fewer than 3 work units (overhead isn't worth it) The task is a single complex operation that can't be decomposed User explicitly asks for serial processing
Before dispatching anything, enumerate what needs to be done: List all work units โ files to process, pages to build, items to transform Identify the operation โ what happens to each unit (extract, convert, summarize, generate, etc.) Check for shared context โ do all units need the same template, config, or reference data? If so, read it once now and include it in every subagent prompt. Detect dependencies โ are any units dependent on others? If yes, read references/advanced-patterns.md for dependency handling strategies. If all units are independent (the common case), proceed directly. Count the units โ this determines your dispatch strategy: 3-10 units: single wave, all parallel 11-50 units: dispatch in waves of 8-10 50+ units: run 2-3 pilot tasks first to validate your prompt, then dispatch the rest in waves Present your analysis to the user: Found N work units: [brief list] Operation: [what will happen to each] Shared context: [any common dependencies] Dependencies: [none / description] Strategy: [single wave / M waves of ~K / pilot + waves] Wait for user confirmation before dispatching, especially for large batches.
For each work unit, define: task-ID: Sequential identifier (task-001, task-002, ...) input: Absolute path(s) to input file(s) or data operation: What the subagent should do output: Absolute path for results (ensure no path conflicts between tasks) recommended skill: If the task matches an installed skill (see Skill Matching below) Output path strategy: Create a dedicated output directory to keep results organized: <project-dir>/multi-task-output/ โโโ task-001/ โโโ task-002/ โโโ ... Use mkdir -p to create the output directory structure before dispatching.
The critical mechanism: Include multiple Task tool calls in a single message. This is what makes them parallel. If you send them in separate messages, they run serially. For 3-10 tasks: Send all in one message: [Single message containing:] Task(subagent_type="general-purpose", prompt="## Task task-001: ...", description="Process file-001") Task(subagent_type="general-purpose", prompt="## Task task-002: ...", description="Process file-002") Task(subagent_type="general-purpose", prompt="## Task task-003: ...", description="Process file-003") ... For 11-50 tasks: Dispatch in waves of 8-10. Wait for each wave to complete before starting the next: Wave 1: task-001 through task-010 (single message, all parallel) [Wait for completion, report progress] Wave 2: task-011 through task-020 (single message, all parallel) [Wait for completion, report progress] ... For 50+ tasks: Run a pilot first: Pick 2-3 representative tasks (include edge cases if possible) Dispatch them as a pilot wave Verify results are correct If issues found, fix the prompt template and re-pilot Once validated, dispatch the remaining tasks in waves of 8-10 Subagent type selection: Default: general-purpose (has access to all tools including Skill) For pure shell/git tasks: Bash For code exploration only: Explore Run tasks in background when appropriate: For large batches, use run_in_background: true so you can monitor progress and report to the user incrementally.
As results come back: Track completion โ maintain a mental tally: "Wave 1: 8/10 complete" Check for failures โ if a task fails: Analyze the error Fix the prompt if needed Retry up to 2 times automatically If still failing after 2 retries, mark as failed and continue with others Report progress to user after each wave: Wave 1 complete: 9/10 succeeded, 1 failed (task-007: [reason]) Starting wave 2... Failure isolation โ one task's failure must never block or affect other tasks
When planning tasks, match each work unit against installed skills. This dramatically improves subagent performance because skills provide specialized, tested instructions. Matching rules: Task involves...Recommend skillPDF files (read, create, merge, extract)/pdfWord documents (.docx read, create, edit)/docxPowerPoint files (.pptx)/pptxSpreadsheets (.xlsx, .csv, .tsv)/xlsxWeb pages, components, HTML/CSS/frontend-designVisual design, posters, art/canvas-designStyling artifacts with themes/theme-factory How to include skill recommendations in prompts: In each subagent's prompt, add the skill invocation instruction: ### Skill Recommendation You have access to the `/pdf` skill. Before starting work, invoke it using the Skill tool: Skill(skill="pdf"). This will load specialized instructions for PDF processing that will help you complete this task more effectively. If no installed skill matches, omit the skill recommendation section โ the subagent will use its general capabilities.
User: "Build 5 pages for our marketing site: Home, About, Pricing, Blog, Contact" Analysis: Found 5 work units: Home, About, Pricing, Blog, Contact pages Operation: Generate frontend code for each page Shared context: Brand guidelines, shared layout components, color scheme Dependencies: None (each page is independent) Strategy: Single wave, all 5 parallel Key considerations: Read any existing shared components/styles first Include the full shared context (brand colors, fonts, layout patterns) in each prompt Each subagent gets /frontend-design skill recommendation Output to separate directories: pages/home/, pages/about/, etc.
User: "Convert all CSV files in /data/raw/ to JSON format with proper types" Analysis: Found 25 CSV files in /data/raw/ Operation: Parse CSV, infer types, convert to JSON Shared context: Type inference rules (dates, numbers, booleans) Dependencies: None Strategy: 3 waves of ~8-9 Key considerations: Each subagent gets /xlsx skill recommendation (handles CSV) Include type inference rules in every prompt Standardize output format in the prompt template
ProblemCauseFixTasks run serially, not parallelTask calls sent in separate messagesPut ALL Task calls in a single messageSubagent says "I don't have context"Prompt references conversation historyMake prompt fully self-containedFile not found errorsRelative paths usedUse absolute paths everywhereOutput files overwrite each otherSame output path for multiple tasksUse task-ID in output directory pathSubagent doesn't use recommended skillSkill instruction unclearAdd explicit Skill(skill="name") call instructionToo many tasks overwhelm the systemDispatching 50+ at onceUse waves of 8-10Results arrive in wrong orderRelying on completion orderSort by task-ID, not completion timeOne failure cascades to othersShared state between tasksEnsure full isolation โ separate dirs, no shared files
For handling tasks with dependencies (linear chains, fan-in/fan-out, partial dependencies), dynamic batch sizing, and conditional dispatch, read references/advanced-patterns.md.
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.