MECE task decomposition, file ownership enforcement, DAG-based execution, and safe merge protocol for intra-domain parallel dispatch. The safety invariants that prevent merge chaos when multiple agents write in parallel. Applies recursively at every nesting depth.
Scanned 9/5/2026
Install to Claude Code
npx -y skills add irahardianto/antigravity-setup --skill parallel-dispatch --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Parallel Dispatch?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/irahardianto-parallel-dispatch)More formats (shields.io, HTML) on the badges page.
---
name: parallel-dispatch
description: >-
MECE task decomposition, file ownership enforcement, DAG-based execution,
and safe merge protocol for intra-domain parallel dispatch. The safety
invariants that prevent merge chaos when multiple agents write in parallel.
Applies recursively at every nesting depth.
---
# Parallel Dispatch
Safe parallel execution of multiple agents within the same domain. This skill defines the **safety invariants** — the constraints that, if maintained, guarantee conflict-free merges by construction.
> **Recursive by design.** These invariants apply at every nesting depth. A `@backend-engineer[auth]` that spawns sub-subagents for `[auth-login]` and `[auth-registration]` must apply the same decomposition, ownership, and merge rules internally.
## When to Invoke
- Before dispatching multiple instances of the same agent type within a primitive
- When any agent (at any depth) needs to parallelize its own workload across sub-subagents
- When re-planning after a sub-task failure
## 1. Decomposition
Break work into parallelizable, MECE sub-tasks. Each gets a **scope card**.
### Protocol
1. **Inventory** — List all concrete deliverables (files, modules, endpoints, tests)
2. **Cluster by feature** — Group by vertical feature slice, not technical layer
3. **MECE validate** — No file in two clusters. No deliverable unassigned.
4. **Dependency scan** — Mark `hard` (blocks) vs `soft` (beneficial but not blocking) dependencies
5. **Produce scope cards**
6. **Cap check** — >5 instances of same agent type → prompt user
**Critical anti-pattern:** Layer-based decomposition (`handlers/`, `services/`, `repos/`) creates cross-cutting dependencies. Always use feature-based clustering (`auth/`, `tasks/`, `notifications/`).
### Scope Card Format
```markdown
### Scope Card: @<agent-type>[<scope>]
- **Deliverables**: <list of concrete outputs>
- **Write Scope**: <glob pattern for exclusive write access>
- **Shared Reads**: <glob patterns for read-only access>
- **Hard Dependencies**: <scope cards that must complete first>
- **Soft Dependencies**: <scope cards that are beneficial but not blocking>
```
Rules:
- Every card has at least one concrete deliverable
- Every card has a write scope (glob pattern)
- Write scopes between agents MUST be disjoint
- Scope names use kebab-case: `[auth]`, `[task-crud]`, `[user-profile]`
- Empty scope cards are invalid — merge with adjacent cluster
### Recursive Decomposition
When an agent receives a scope card and the work is still too broad:
1. Further decompose the scope card into sub-scope cards
2. Apply the same MECE/ownership rules within the narrower boundary
3. The parent's write scope becomes the ceiling — children cannot write outside it
4. Children inherit shared reads from parent plus parent's own outputs
```
@backend-engineer[auth] ← scope card from orchestrator
└─ @backend-engineer[auth-login] ← sub-scope card (self-decomposed)
└─ @backend-engineer[auth-register] ← sub-scope card (self-decomposed)
└─ @backend-engineer[auth-integration] ← wires sub-features together
```
**Agent Spawn Protocol for sub-agents:** When spawning sub-agents that have role files in `.agents/agents/`, use `TypeName="self"` with a descriptive `Role` name and reference the role file in their system prompt: `"Your role, domain, skills, boundaries, and protocols are defined in file://{workspace}/.agents/agents/{agent-type}.md. Read this file FIRST."` Never paraphrase the role file from memory.
## 2. Ownership
The safety invariant: **one writer per file**. If ownership is valid, merges are conflict-free by construction.
### Three Zones
| Zone | Access | Mutability |
|---|---|---|
| **Exclusive Write** | Read + Write by exactly one sub-task | Mutable only by owner |
| **Shared Read** | Read by any sub-task | Immutable during BUILD |
| **Contracts Layer** | Read by all BUILD agents | Produced by DESIGN, frozen for BUILD |
> When contracts are authored using the `structured-spec` standard, the generated manifest (`specification.md` §7-8) provides machine-parseable work package partitioning by contract ID, contract type, requirement closure, or stack category. See `structured-spec/specification.md` §8 (Multi-Agent Slicing).
If a BUILD agent discovers a contract needs changes → **STOP and escalate** for DESIGN revision. Never silently modify frozen contracts.
### Integration Sub-Task
Aggregation files (routers, registries, main entry points, config) inherently collect contributions from multiple features. Handle with a dedicated `[integration]` sub-task:
- Runs **after** all parallel sub-tasks for its agent type
- Owns **only** aggregation files
- Merges **last**
This pattern applies recursively — a deeply nested agent that parallelizes can have its own integration sub-task.
### Ownership Matrix
Before dispatch, build a matrix from scope cards:
```markdown
| Sub-Task | Write Scope (exclusive) | Shared Reads |
|----------|------------------------|--------------|
| @agent[scope-1] | `features/<scope-1>/**` | `types/**`, `config/**` |
| @agent[scope-2] | `features/<scope-2>/**` | `types/**`, `config/**` |
| @agent[integration] | `router/**`, `main.*` | All feature dirs (read-only) |
```
Validate before dispatch:
- Write scopes are **disjoint** (zero file overlap between writers at same level)
- Write scopes are **exhaustive** (every file that needs modification is owned)
- No BUILD agent writes to contracts layer
- Integration sub-tasks are at a later DAG level than their parallel peers
## 3. Execution
### DAG Levels
Group scope cards into levels by dependency depth:
- **Level 0**: No dependencies — dispatch in parallel
- **Level N**: All dependencies satisfied by levels 0 through N-1
All nodes at the same level are independent — dispatch in parallel. Between levels: merge completed branches, run quality gate, then proceed to next level.
If a node fails: Retry once with failure context → re-assign to different specialist → escalate to parent coordinator. If failure changes scope, re-decompose the affected sub-tree only — already-completed nodes outside the failure are preserved.
### Merge Order
Within a level, merge in this priority:
1. **Dependency order** — merge nodes that downstream work depends on first
2. **Smallest diff first** — for independent nodes, merge smaller changes first (less conflict surface)
3. **Integration last** — `[integration]` sub-tasks always merge after feature branches
### Conflict Classification
| Type | Description | Resolution |
|---|---|---|
| **Textual** | Same line modified by two branches | Analyze intent, pick correct or combine |
| **Semantic** | Different changes that interact logically | Requires understanding both; may need new code |
| **Structural** | File reorganization conflicts | Re-apply changes on new structure |
| **Integration** | Both add routes/config entries | Combine additions, order by convention |
> If the same conflict pattern repeats across merges, the **decomposition was flawed** — re-decompose, don't keep patching conflicts.
## 4. Read-Only Agents
Read-only agents (scout, reviewer, security-engineer, ux-craftsman, incident-responder) use MECE scoping for **coverage guarantees**, not conflict prevention:
- Each instance covers a disjoint area
- Union covers 100% of relevant scope
- No merge step — they produce documents/findings passed as context to downstream agents
## Anti-Patterns
| Anti-Pattern | Why It Fails | Fix |
|---|---|---|
| Layer-based decomposition | Cross-cutting deps, every sub-task touches every feature | Feature-based clustering |
| Shared write access | Merge conflicts guaranteed | One writer per file, extract to contract layer |
| Scope too small (<1 file) | Overhead exceeds benefit | Merge into adjacent cluster |
| Scope too broad (entire domain) | No parallelism gained | Break into feature slices |
| Decomposing without DESIGN output | No contracts → incompatible assumptions | DESIGN before BUILD decomposition |
| Modifying frozen contracts in BUILD | Downstream agents built against wrong interface | STOP, escalate for DESIGN revision |
| Skipping MECE validation | Gaps → missed work, overlaps → conflicts | Always validate before dispatch |
## 5. Hierarchical Decomposition
When work spans multiple scope cards, decompose into coordinator subtrees — not a flat fan-out of executors.
### Decision: Flat vs. Hierarchical
| Signal | Dispatch Model |
|---|---|
| ≤5 scope cards, single domain | Flat (direct builder dispatch) |
| >5 scope cards OR multi-domain | Hierarchical (@tech-lead per domain) |
| Cross-cutting dependencies between domains | Hierarchical with @tech-lead[integration] |
### Coordinator Pattern
A coordinator agent (@overseer, @conductor, @tech-lead):
1. Owns a subtree of executors
2. Has its own `.agentwork/brief.md`, `.agentwork/handoff.md` lifecycle
3. Reports upward to its parent coordinator, not to the root
4. Never writes production code (Tech-Lead may write integration/wiring code)
### Nesting Budget — 4 Layers Max
| Layer | Role | Max Agents |
|---|---|---|
| 0 | @overseer (pipeline supervisor) | 1 |
| 1 | @conductor | 1 |
| 2 | @tech-lead / builders / @reviewer / @red-team-lead | As needed |
| 3 | Specialists within tech-lead or red-team-lead | As needed |
Total budget: **4 layers max** (L0 supervisor + 3 active layers). Recommended: **3** for typical features (Overseer → Conductor → Builders).
### Workspace Strategy by Layer
| Layer | Workspace Mode | Rationale |
|---|---|---|
| 0 | `inherit` | Overseer reads the main workspace |
| 1 | `inherit` | Conductor reads the main workspace |
| 2 (writers) | `inherit` or `share` | Tech-Lead and builders share workspace |
| 2 (readers) | `inherit` | Reviewer and scouts read the workspace |
| 3 | `inherit` | Specialists within tech-lead/red-team share workspace |
### Integration Between Scope Cards
After all scope cards pass their individual checks:
1. @conductor dispatches @tech-lead[integration] with all card handoffs
2. @tech-lead[integration] owns aggregation files (routers, registries, configs)
3. Integration runs on the main workspace
4. A final @reviewer runs cross-card verification before completion
## 6. Scope Sizing & Integration Points
### Scope Sizing Heuristics
| Signal | Action |
|---|---|
| Scope card requires **>4 workers** | Too large — split into sub-cards |
| Scope card is **1 worker editing ≤3 files** | Too small — merge with adjacent card |
| Scope card spans **>8 files** | Too broad — find a natural seam to split |
| Scope card touches **<1 file** | Phantom card — remove or merge |
**Sweet spot:** 3–8 files per scope card, 1–3 workers, completable by 1 tech-lead with ≤4 specialists.
### Integration Point Identification
Integration points are where scope cards touch each other:
- Shared API contracts (request/response types, proto files)
- Database schemas and migrations
- Event bus topics and message formats
- Configuration files and environment variables
Rules:
1. Identify ALL integration points **before** dispatch — never discover them mid-build
2. Assign integration work to `@tech-lead[integration]`, which runs **after** all scope cards pass
3. Shared contracts are **read-only during BUILD** — no scope card may modify a shared contract unilaterally
4. If a contract needs changes, **STOP and escalate** to the coordinator for re-planning
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!