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
Scanned 9/6/2026
Install to Claude Code
npx -y skills add erichowens/some_claude_skills --skill task-decomposer --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Task Decomposer?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/erichowens-task-decomposer)More formats (shields.io, HTML) on the badges page.
---
name: task-decomposer
description: 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).
allowed-tools: Read,Grep,Glob
argument-hint: '[problem-description]'
metadata:
tags:
- task
- decomposer
- decompose-task
- break-down-problem
- plan-workflow
pairs-with:
- skill: output-contract-enforcer
reason: Decomposed tasks define output schemas that the enforcer validates between nodes
- skill: skillful-subagent-creator
reason: Decomposed tasks map to subagent specializations with curated skill sets
- skill: human-gate-designer
reason: Task decomposition identifies which stages need human review gates
---
# Task Decomposer
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.
---
## When to Use
✅ **Use for**:
- Breaking a vague problem into concrete sub-tasks
- Identifying phases, dependencies, and parallelization opportunities
- Determining which sub-tasks are concrete vs. vague (pluripotent)
- Selecting the appropriate domain meta-skill for decomposition
❌ **NOT for**:
- Building the DAG structure from sub-tasks (use `dag-planner`)
- Executing the tasks (use `dag-runtime`)
- Assigning skills to tasks (use `dag-skills-matcher`)
---
## Decomposition Process
```mermaid
flowchart TD
P[Problem description] --> M{Domain meta-skill available?}
M -->|Yes| L[Load meta-skill phase pattern]
M -->|No| R{Research needed?}
R -->|Yes| RA[Research standard decomposition]
R -->|No| Z[Zero-shot decomposition]
L --> D[Apply phase pattern to problem]
RA --> D
Z --> D
D --> C[Identify concrete sub-tasks]
D --> V[Identify vague/pluripotent sub-tasks]
D --> DEP[Map dependencies between sub-tasks]
D --> PAR[Identify parallelization opportunities]
C --> O[Ordered sub-task list with metadata]
V --> O
DEP --> O
PAR --> O
```
### Step 1: Domain Detection
Classify the problem into a domain to select the right meta-skill:
| Domain Signals | Meta-Skill |
|---------------|-----------|
| "build", "implement", "code", "app", "website" | `software-project-decomposition` |
| "research", "analyze", "report", "synthesize" | `research-synthesis-decomposition` |
| "design", "UI", "wireframe", "prototype" | `product-design-decomposition` |
| "strategy", "market", "business", "revenue" | `business-strategy-decomposition` |
| "data", "model", "train", "predict" | `ml-project-decomposition` |
If no meta-skill matches, fall back to zero-shot decomposition.
### Step 2: Phase Identification
Apply the meta-skill's phase pattern. Not all phases apply to every problem.
**Decision**: For each phase in the pattern, ask: "Does this problem need this phase?"
- **Yes, and I can specify it now** → Concrete sub-task
- **Yes, but I can't specify it until prior phases complete** → Vague/pluripotent node
- **No** → Skip this phase
### Step 3: Sub-Task Specification
For each concrete sub-task:
```yaml
sub_task:
id: unique-name
description: "What this sub-task produces (1-2 sentences)"
type: concrete | vague
depends_on: [upstream-sub-task-ids]
parallelizable_with: [sibling-sub-task-ids]
estimated_complexity: simple | moderate | complex
suggested_model_tier: 1 | 2 | 3
suggested_skills: [skill-names if known]
output_description: "What the output looks like"
```
For each vague/pluripotent sub-task:
```yaml
sub_task:
id: unique-name
description: "What this phase will address (1-2 sentences)"
type: vague
depends_on: [upstream-sub-task-ids]
potential_paths:
- "Path A: [exciting possibility 1]"
- "Path B: [exciting possibility 2]"
- "Path C: [exciting possibility 3]"
expansion_trigger: on_upstream_complete
```
### Step 4: Dependency Mapping
For each pair of sub-tasks, determine:
- **Data dependency**: Does B need A's output? → Edge from A to B
- **Knowledge dependency**: Does B need to know what A discovered? → Edge from A to B
- **No dependency**: A and B are independent → Parallelizable
### Step 5: Output
Produce a structured decomposition:
```yaml
decomposition:
problem: "original problem description"
domain: "detected domain"
meta_skill_used: "meta-skill name or 'zero-shot'"
phases:
- phase: 1
sub_tasks: [concrete tasks for this phase]
- phase: 2
sub_tasks: [mix of concrete and vague tasks]
total_concrete: 5
total_vague: 3
estimated_waves: 4
estimated_cost: "$0.08 - $0.25"
```
---
## Decomposition Heuristics
### Granularity
- **Too fine**: "Step 1: Open the file. Step 2: Read line 1." → Merge into one node
- **Too coarse**: "Step 1: Build the entire app." → Split into design, implement, test, deploy
- **Right**: Each sub-task is completable by one agent with 1-3 skills in one LLM call
### Dependency Minimization
Fewer dependencies = more parallelism = faster execution. Prefer:
- Independent parallel tracks over long sequential chains
- Fan-out patterns (one source, many consumers) over daisy chains
- Late merging (combine results at the end, not incrementally)
### Vagueness is OK
Don't force specificity where it doesn't exist yet. A vague node saying "Build the solution (details TBD after design phase)" is more honest and more useful than a fake-specific node that will be wrong.
---
## Anti-Patterns
### Premature Specificity
**Wrong**: Specifying exact implementation details for phases that depend on undone research.
**Right**: Mark dependent phases as vague/pluripotent. Show potential paths.
### Sequential Everything
**Wrong**: A linear chain of 10 tasks with no parallelism.
**Right**: Look for independent tracks. Research and content writing can often happen in parallel.
### Missing the Meta-Skill
**Wrong**: Decomposing a bridge design project like a software project.
**Right**: Detect the domain, load the appropriate meta-skill, follow its phase pattern.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!