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-runtimetools
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.