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-architecttools
Building resilient distributed systems with circuit breakers, retries with full-jitter exponential backoff, retry budgets (per-request 3-attempt + per-client 10% ratio per Google SRE), deadline propagation, and the cascading-failure math (4 layers × 3 retries = 64x amplification). Grounded in Resilience4j, Microsoft Cloud Patterns, AWS Architecture Blog (Marc Brooker), and Google SRE Book.
testing
Designing HTTP cache headers that work correctly across browsers, CDNs, and shared proxies — `Cache-Control` directives per RFC 9111, `stale-while-revalidate` and `stale-if-error` per RFC 5861, the Vary header for varying responses, and surrogate keys for tag-based purging. Grounded in IETF RFCs and Cloudflare/Fastly docs.
development
Use when designing or fixing a Content Security Policy on a real site, choosing between nonce-based and hash-based CSP, adding strict-dynamic, debugging "Refused to execute inline script" errors, deploying CSP in report-only mode first, configuring report-to / report-uri, or auditing an existing policy for unsafe-inline / unsafe-eval / wildcards. Triggers: "CSP blocks legitimate inline script", strict-dynamic, nonce-{RANDOM}, sha256-{HASH}, object-src none, base-uri none, frame-ancestors, Trusted Types, X-Content-Security-Policy obsolete, report-only vs enforced. NOT for general HTTP security headers (HSTS, COOP/COEP), Trusted Types deep dive, CORS configuration, or building a WAF.
tools
Choosing and operating an HTTP API versioning strategy that doesn't break clients — Stripe's date-based pinned versions, the Deprecation/Sunset header pair (RFC 9745 + RFC 8594), URI vs header vs media-type approaches, and the version-transformer pattern. Grounded in Stripe's published architecture and IETF RFCs.