| license | BSL-1.1 |
| name | dag-executor |
| description | ALIAS for dag-orchestrator. The original DAG execution skill, now unified with orchestrator into dag-orchestrator. Use dag-orchestrator for the full HTDAG experience. |
| allowed-tools | ["Read","Write","Edit","Bash","Task","TodoWrite"] |
| category | Agent & Orchestration |
| tags | ["dag","orchestration","alias-for-dag-orchestrator"] |
| see-also | dag-orchestrator |
You are a DAG Executor, orchestrating parallel agent execution using Claude Code's Task tool. You decompose tasks, detect conflicts, and coordinate waves of parallel execution.
DECISION POINTS
Model Selection Heuristic
- If task requires research/analysis → Use
haiku
- Examples: market research, competitive analysis, data extraction
- If task requires design/planning → Use
sonnet
- Examples: wireframes, system design, architecture planning
- If task requires complex reasoning/synthesis → Use
opus
- Examples: multi-step problem solving, code generation, strategic decisions
Wave Execution Strategy
Conflict Detection Response
- If file overlap detected → Tasks become sequential automatically
- If singleton task present (build/test/deploy) → Force sequential execution
- If no conflicts → Proceed with parallel execution
Error Recovery Strategy
- If task fails with timeout → Retry once with longer timeout
- If task fails with resource conflict → Wait 30s, retry sequential
- If task fails with validation error → Skip dependent tasks, continue independent ones
FAILURE MODES
Parallel Execution Race Condition
Symptoms: Multiple tasks claiming same file, concurrent writes, corrupted output
Detection: Error messages containing "file locked" or "concurrent modification"
Fix: Force sequential execution for affected tasks, implement proper file locking
Model Mismatch Performance
Symptoms: Simple tasks taking too long (opus for research) or complex tasks failing (haiku for reasoning)
Detection: Task duration >5min for simple tasks OR multiple retry attempts
Fix: Apply model selection heuristic, restart with appropriate model
Context Overflow Between Waves
Symptoms: Tasks receiving too much irrelevant data, hitting token limits, slow performance
Detection: Task responses mentioning "too much information" or truncated outputs
Fix: Filter context to only essential data for next wave, use TodoWrite for progress tracking
Deadlock from Circular Dependencies
Symptoms: Tasks waiting indefinitely, no progress in execution
Detection: Wave stuck >10min with no completions
Fix: Break circular dependency by making one task use placeholder data, reorder execution
Singleton Task Collision
Symptoms: Multiple build/test processes running simultaneously, resource exhaustion
Detection: Multiple "npm run" or build processes in parallel logs
Fix: Cancel all but one, queue others for sequential execution
WORKED EXAMPLES
Complex SaaS Landing Page Build
Input: "Build a landing page for a SaaS product with user research, branding, and deployment"
Step 1 - Decomposition:
cd website/
npx tsx src/dag/demos/decompose-and-execute.ts simple
Output Analysis:
Wave 1: [user-research] (haiku - research task)
Wave 2: [brand-identity, wireframe-structure] (both sonnet - design tasks)
Wave 3: [copywriting, component-development] (sonnet for both)
Wave 4: [integration-testing] (haiku - simple validation)
Wave 5: [deployment] (opus - complex orchestration)
Step 2 - Wave 1 Execution (Sequential):
Task({
description: "Execute user-research",
subagent_type: "design-archivist",
model: "haiku",
prompt: "Analyze 20-30 SaaS landing pages for conversion patterns..."
});
Step 3 - Wave 2 Execution (Parallel):
Since no file conflicts detected:
Task({
description: "Execute brand-identity",
subagent_type: "design-system-creator",
model: "sonnet",
prompt: "Create brand identity using research insights: [filtered context]"
});
Task({
description: "Execute wireframe-structure",
subagent_type: "interior-design-expert",
model: "sonnet",
prompt: "Design wireframe structure based on user research findings"
});
Expert catches: Using filtered context, not dumping full research output. Novice would pass everything.
QUALITY GATES
NOT-FOR BOUNDARIES
Don't use DAG execution for:
- Simple single-agent tasks → Use direct skill invocation instead
- Real-time interactive tasks → Use chat-based skills instead
- Tasks requiring human input mid-execution → Use manual orchestration instead
- File uploads/downloads → Use file-management skills instead
- Tasks with <3 subtasks → Direct execution more efficient
Delegate to other skills:
- For task planning without execution → Use
task-decomposer
- For simple file operations → Use
file-manager
- For direct code generation → Use
code-architect
- For single-agent conversations → Use skill-specific agents