skills/dag-executor/SKILL.md
ALIAS for dag-orchestrator. The original DAG execution skill, now unified with orchestrator into dag-orchestrator. Use dag-orchestrator for the full HTDAG experience.
npx skillsauth add curiositech/windags-skills dag-executorInstall 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.
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.
haiku
sonnet
opus
parallelizable: true → Execute all tasks in single message
// Make BOTH calls simultaneously
Task({...}); Task({...});
parallelizable: false → Execute sequentially
// Wait for completion between calls
Task({...}); // wait → Task({...});
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
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
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
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
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
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", // Research task
prompt: "Analyze 20-30 SaaS landing pages for conversion patterns..."
});
Step 3 - Wave 2 Execution (Parallel): Since no file conflicts detected:
// Single message with both tasks
Task({
description: "Execute brand-identity",
subagent_type: "design-system-creator",
model: "sonnet", // Design task
prompt: "Create brand identity using research insights: [filtered context]"
});
Task({
description: "Execute wireframe-structure",
subagent_type: "interior-design-expert",
model: "sonnet", // Design task
prompt: "Design wireframe structure based on user research findings"
});
Expert catches: Using filtered context, not dumping full research output. Novice would pass everything.
Don't use DAG execution for:
Delegate to other skills:
task-decomposerfile-managercode-architectdata-ai
license: Apache-2.0 NOT for unrelated tasks outside this domain.
development
Use when designing caching strategies (cache-aside, write-through, write-behind), implementing distributed locks, building rate limiters, leaderboards, real-time streams (XADD/consumer groups), pub/sub, or tuning eviction policies. Triggers: thundering-herd on cache miss, dogpile on key expiry, Redlock vs SET-NX-PX choice, sliding-window rate limiter, hot-key on a single cluster slot, big-key blowup, MULTI/EXEC across slots, KEYS in production. NOT for Redis Cluster operations/admin (different domain), embedded KV (SQLite, leveldb), in-process LRU caches, or Memcached.
tools
Drawing the `'use client'` boundary correctly in React Server Components apps (Next.js App Router, RSC frameworks) — leaf-pushing, slot composition, serialization rules, and environment poisoning prevention. Grounded in react.dev and Next.js 16 docs.
development
Use when designing rate limiting for an API, choosing between token bucket / sliding window / leaky bucket / fixed window, implementing it in Redis, deciding edge (Cloudflare/Upstash) vs origin enforcement, sizing per-user vs per-IP vs per-endpoint quotas, returning the right 429 response with Retry-After, or fixing the boundary-burst bug in fixed-window limiters. Triggers: 429 too many requests, INCR + EXPIRE, ZADD + ZREMRANGEBYSCORE + ZCARD, X-RateLimit-Remaining header, Cloudflare WAF rate limiting rules, Upstash @upstash/ratelimit, leaky bucket shaping vs policing, distributed rate limiter consistency. NOT for DDoS mitigation specifically (different scale), CAPTCHA / bot management, full WAF design, or per-user quota billing.