skills/dag-runtime/SKILL.md
Executes DAG workflows with parallel wave processing, agent spawning, context isolation, permission enforcement, and full execution tracing. Use when running a planned DAG, managing concurrent agent execution, enforcing isolation boundaries, or tracing execution for debugging. Activate on "execute DAG", "run workflow", "spawn agents", "parallel execution", "execution trace", "agent isolation". NOT for planning DAGs (use dag-planner), validating outputs (use dag-quality), or matching skills (use dag-skills-matcher).
npx skillsauth add curiositech/windags-skills dag-runtimeInstall 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.
Executes DAG workflows with parallel wave processing, agent spawning, context isolation, permission enforcement, and full execution tracing.
Input: threat model + node characteristics
├── Untrusted code execution?
│ └── YES → Container isolation
├── Resource limits needed?
│ └── YES → Process isolation
├── Context contamination risk?
│ └── YES → Context isolation
└── Cooperative nodes on same task?
└── YES → None isolation
Node fails → Check failure type:
├── Timeout/Rate limit?
│ └── Retry with exponential backoff (max 3x expensive models, 10x cheap)
├── Invalid output schema?
│ └── Retry with schema reminder + example (max 2x)
├── Permission denied?
│ └── Check parent permissions → escalate to human if mismatch
├── Skill not found?
│ └── Mutate DAG: remove node or find alternative skill
└── Persistent failure after max retries?
└── Human review required
All nodes in wave complete → Check status:
├── All succeeded?
│ └── Advance to next wave
├── Some failed but non-blocking?
│ └── Mark outputs as null, advance with warning
├── Critical node failed?
│ └── Halt execution, trigger failure handling
└── Mixed success/retry?
└── Wait for retries to complete
if child.permissions.tools ⊃ parent.permissions.toolsScenario: 3-wave codebase analysis DAG where Wave 2 node fails
# Initial DAG state
Wave 1: [scan-files] → completed
Wave 2: [analyze-architecture, check-security] → analyze-architecture fails
Wave 3: [generate-report] → blocked
Decision Navigation:
analyze-architecture returns malformed JSONcheck-security succeeded, output availableanalyze-architecture failed, mark output as nullgenerate-report requires both outputs
required: false → advance with warningrequired: true → halt executionExpert catches: Checking dependency requirements before advancing wave Novice misses: Would either block forever or advance with missing critical data
Scenario: Code execution node needs filesystem access but has security concerns
node: code-formatter
skills: [python-formatter]
inputs: {source_files: [...]}
permissions: {tools: [Read, Write, Bash], paths: ["/workspace/src"]}
Decision Navigation:
/workspace/src → /container/workspaceExpert catches: Need to balance security with functionality Novice misses: Would either over-isolate (breaking functionality) or under-isolate (security risk)
Don't use dag-runtime for:
dag-planner insteaddag-quality insteaddag-skills-matcher insteadDelegate to other skills when:
dag-qualitydag-plannerdag-skills-matcherdata-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.