skills/dag-mutation-strategist/SKILL.md
Decides HOW to mutate a DAG when a node fails, quality is below threshold, or new information changes the plan. Selects from mutation strategies (add node, replace agent, fork paths, loop back, downgrade model) based on failure type, cost budget, and execution history. Activate on "DAG failed how to fix", "mutation strategy", "replan on failure", "adaptive DAG", "recovery strategy", "what to do when node fails". NOT for detecting failures (use dag-quality), executing mutations (use dag-planner), or runtime execution (use dag-runtime).
npx skillsauth add curiositech/windags-skills dag-mutation-strategistInstall 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.
Decides HOW to mutate a DAG when things go wrong. Given a failure diagnosis from dag-quality or dag-ops, selects the optimal recovery strategy.
✅ Use for:
❌ NOT for:
dag-quality)dag-planner to rewire, dag-runtime to execute)flowchart TD
F[Failure detected] --> T{Failure type?}
T -->|Transient: API timeout, rate limit| R[Retry with backoff]
T -->|Model: wrong format, refusal| M{Budget allows upgrade?}
M -->|Yes| U[Replace with stronger model]
M -->|No| P[Rephrase prompt, same model]
T -->|Contract: output schema mismatch| C[Retry with explicit schema in prompt]
T -->|Quality: below threshold| Q{Iteration count?}
Q -->|< max| L[Loop back with feedback from dag-quality]
Q -->|≥ max| E{Challenger skill available?}
E -->|Yes| SW[Swap to challenger skill]
E -->|No| HG[Escalate to human gate]
T -->|Logic: wrong approach entirely| D{Cost of replan vs remaining budget?}
D -->|Replan < 30% of budget| RP[Replan affected subgraph]
D -->|Replan > 30%| HG
T -->|Cascade: upstream caused this| FIX[Fix root cause node first]
FIX --> R
| Strategy | When | Cost | Risk | |----------|------|------|------| | Retry with backoff | Transient failures (timeout, rate limit) | Same as original (~$0.001-0.01) | Low — usually works in 1-3 retries | | Rephrase prompt | Model refused or misunderstood | Same as original | Medium — may not fix the root cause | | Upgrade model | Cheap model failed on complex task | +$0.01-0.10 | Low — stronger model usually succeeds | | Downgrade + simplify | Expensive model failed, budget tight | -$0.01-0.10 | Medium — simpler approach may miss nuance | | Inject schema | Output didn't match contract | Same as original | Low — explicit schema usually works | | Loop with feedback | Quality below threshold | Same as original + eval cost | Medium — may plateau after 2-3 iterations | | Swap skill | Current skill isn't working for this task | Same as original | Medium — challenger may or may not be better | | Fork parallel paths | Ambiguous situation, multiple valid approaches | 2-3x original | Low — pick best result from parallel attempts | | Replan subgraph | Wrong approach for this section | Variable (Sonnet call for replanning) | Medium — new plan may also be wrong | | Insert validator node | Output needs additional checking | +$0.001 | Low — cheap verification step | | Escalate to human | All automated strategies exhausted or too risky | Human time | Zero technical risk — but blocks execution |
Wrong: Retrying every failure with the same prompt and model 10 times. Right: Retry once for transient failures. If it fails twice, the problem isn't transient — change strategy.
Wrong: Spawning an Opus replan call ($0.10) to recover from a Haiku formatting error ($0.001). Right: Just retry with explicit schema injection ($0.001).
Wrong: Fixing Node C when Node A was the root cause. Node C will fail again on the next run. Right: Trace backward through dependencies to find the first node that deviated. Fix that one.
data-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.