skills/task-decomposer/SKILL.md
Breaks natural-language problem descriptions into sub-tasks suitable for DAG nodes. The entry point of the meta-DAG. Identifies phases, dependencies, parallelization opportunities, and vague/pluripotent nodes that can't yet be specified. Uses domain meta-skills when available. Activate on "decompose task", "break down problem", "plan workflow", "what are the steps", "sub-tasks", "task breakdown". NOT for executing the decomposed tasks (use dag-runtime), building the DAG structure (use dag-planner), or matching skills to nodes (use dag-skills-matcher).
npx skillsauth add curiositech/windags-skills task-decomposerInstall 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.
Breaks natural-language problems into sub-tasks suitable for DAG nodes. The first step of the meta-DAG: before you can build or execute a DAG, you need to understand what the pieces are.
1. DOMAIN CLASSIFICATION
├─ Contains {"build", "implement", "code", "app"} → Use software-project-decomposition
├─ Contains {"research", "analyze", "report"} → Use research-synthesis-decomposition
├─ Contains {"design", "UI", "prototype"} → Use product-design-decomposition
├─ Contains {"data", "model", "train", "ML"} → Use ml-project-decomposition
└─ No clear domain signals → Zero-shot decomposition
2. SUB-TASK GRANULARITY
├─ Can one agent complete in one call? → Correct granularity
├─ Requires multiple agent calls/skills? → Split into smaller sub-tasks
└─ Too trivial (open file, read line)? → Merge with adjacent sub-task
3. DEPENDENCY DETECTION
├─ B needs A's output data? → Create data dependency A→B
├─ B needs A's knowledge/decisions? → Create knowledge dependency A→B
├─ A and B share no inputs/outputs? → Mark as parallelizable
└─ Circular reference detected? → Invalid, restructure phases
4. VAGUENESS CLASSIFICATION
├─ Can specify concrete steps now? → Create concrete sub-task
├─ Depends on upstream discoveries? → Create vague node with 3+ potential paths
└─ Requires human decision? → Mark as human-gate candidate
5. COMPLEXITY ESTIMATION
├─ Single skill, clear inputs/outputs? → Mark as "simple" (Tier 1 model)
├─ 2-3 skills, moderate reasoning? → Mark as "moderate" (Tier 2 model)
└─ Complex reasoning, multiple domains? → Mark as "complex" (Tier 3 model)
| Anti-Pattern | Symptom | Diagnosis | Fix | |-------------|---------|-----------|-----| | Sequential Fallacy | All tasks form single chain, no parallelism | Missed independent work streams | Identify tasks with no shared inputs/outputs, mark parallelizable | | Premature Specification | Concrete details for tasks depending on undone research | Forcing certainty where none exists | Convert to vague nodes with potential paths | | Granularity Mismatch | Sub-tasks either trivial (1-line) or massive (whole project) | Wrong decomposition level | Apply one-agent-one-call rule for sizing | | Circular Dependencies | Task A needs B's output, B needs A's output | Invalid dependency graph | Restructure into sequential phases or split conflated tasks | | Domain Blindness | Generic decomposition for specialized domain (e.g., treating ML project like web app) | Missed domain-specific phase patterns | Re-classify domain, apply appropriate meta-skill |
Step 1: Domain Classification
Step 2: Phase Application
Step 3: Sub-task Creation
phase_1_requirements:
- id: "api-spec"
type: concrete
description: "Define REST endpoints, request/response schemas"
complexity: simple
phase_2_design:
- id: "data-model"
type: concrete
description: "Design database schema for URLs, clicks, users"
complexity: moderate
- id: "system-architecture"
type: concrete
description: "Choose tech stack, define service boundaries"
complexity: moderate
phase_3_implement:
- id: "core-logic"
type: vague
depends_on: ["data-model", "system-architecture"]
potential_paths:
- "Microservices with Redis cache"
- "Monolith with in-memory cache"
- "Serverless with DynamoDB"
Step 4: Dependency Mapping
Expert insight: Novice would make implementation concrete too early. Expert keeps it vague until design completes.
Step 1: Domain Classification
Step 2: Critical Decisions
Step 3: Decomposition
phase_1_scope:
- id: "research-questions"
type: concrete
description: "Define 3-5 specific research questions about remote work productivity"
phase_2_gather:
- id: "data-collection"
type: vague
depends_on: ["research-questions"]
potential_paths:
- "Academic papers + industry reports"
- "Survey new dataset of remote workers"
- "Interview case studies from companies"
phase_3_analyze:
- id: "statistical-analysis"
type: vague
depends_on: ["data-collection"]
potential_paths:
- "Quantitative analysis if numerical data"
- "Qualitative coding if interview data"
- "Meta-analysis if literature review"
Expert insight: Research decomposition keeps analysis methods vague until data characteristics are known. Novice would prematurely commit to statistical methods.
Task decomposition is complete when:
This skill should NOT be used for:
dag-planner to create node/edge graphdag-runtime to actually run the decomposed tasksdag-skills-matcher to assign specific skills to each nodeDelegation rules:
dag-plannerdag-skills-matcherdag-runtimedata-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.