task-decomposer

Decomposes complex user requests into executable subtasks, identifies required capabilities, searches for existing skills at skills.sh, and creates new skills when no solution exists. This skill should be used when the user submits a complex multi-step request, wants to automate workflows, or needs help breaking down large tasks into manageable pieces.

3,891 stars
Complexity: medium

About this skill

The Task Decomposer & Skill Generator is a powerful meta-skill that enables AI agents to tackle complex user requests by breaking them down into manageable, executable subtasks. It systematically analyzes user intent to identify core objectives, relevant domains, and trigger mechanisms. Following this, it decomposes the request into atomic units, specifying inputs, outputs, and interdependencies for each. Beyond mere decomposition, this skill empowers agents to identify the specific capabilities required for each subtask. It then intelligently searches for existing skills within an open skills ecosystem, such as skills.sh. If suitable skills are found, they are integrated into the execution plan. Crucially, if no existing solution is available for a given subtask, the Task Decomposer initiates the creation of a new skill. This capability allows the AI agent to continuously adapt and expand its toolset, providing a comprehensive "Execution Plan" to fulfill even the most novel and multi-faceted user requests. It's ideal for automating complex workflows and empowering agents to self-manage task completion.

Best use case

The primary use case for the Task Decomposer & Skill Generator is enabling AI agents to autonomously handle complex, multi-step user requests. It allows agents to move beyond simple, single-skill invocations to orchestrate sophisticated workflows, identify required capabilities, and even generate missing tools on the fly. Users benefit by being able to provide high-level instructions without needing to specify every step or existing tool, empowering the agent to figure out the "how."

Decomposes complex user requests into executable subtasks, identifies required capabilities, searches for existing skills at skills.sh, and creates new skills when no solution exists. This skill should be used when the user submits a complex multi-step request, wants to automate workflows, or needs help breaking down large tasks into manageable pieces.

Users can expect a detailed execution plan comprising decomposed subtasks, identified or newly created skills, and the subsequent completion of their complex request.

Practical example

Example input

Help me get email summaries every morning and send them to Slack.

Example output

A structured plan of subtasks, e.g., `{"task_id": 1, "name": "Access and retrieve email list", "type": "data_retrieval", "input": "Email credentials/session", "output": "List of emails with metadata", "dependencies": []}` outlining how to achieve the user's goal.

When to use this skill

  • When a user provides a complex, multi-step request or a high-level goal.
  • To automate workflows that require sequence, conditional logic, and resource identification.
  • When an AI agent needs to break down a large problem into atomic, executable units.
  • To enable an AI agent to dynamically discover or generate missing capabilities for a task.

When not to use this skill

  • When the user request is simple and directly maps to a single, known AI skill.
  • When an immediate, straightforward answer or action is expected without decomposition.
  • For tasks where all required capabilities are already explicitly available and identified without a search.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/task-decomposer/SKILL.md --create-dirs "https://raw.githubusercontent.com/openclaw/skills/main/skills/10e9928a/task-decomposer/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/task-decomposer/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How task-decomposer Compares

Feature / Agenttask-decomposerStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexitymediumN/A

Frequently Asked Questions

What does this skill do?

Decomposes complex user requests into executable subtasks, identifies required capabilities, searches for existing skills at skills.sh, and creates new skills when no solution exists. This skill should be used when the user submits a complex multi-step request, wants to automate workflows, or needs help breaking down large tasks into manageable pieces.

How difficult is it to install?

The installation complexity is rated as medium. You can find the installation instructions above.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# Task Decomposer & Skill Generator

This skill helps decompose complex user requests into executable subtasks, identify required capabilities for each task, search for existing skills from the open skills ecosystem, and automatically create new skills when no existing solution is available.

## Core Workflow

```
User Request → Task Decomposition → Capability Identification → Skill Search → Gap Analysis → Skill Creation → Execution Plan
```

## Phase 1: Task Analysis & Decomposition

When receiving a user request, follow these steps:

### Step 1: Understand User Intent

Analyze the request to identify:
- **Core objective**: What is the end goal?
- **Domains involved**: What areas of expertise are needed?
- **Trigger mechanism**: One-time, scheduled, or event-driven?

Example analysis:
```
User Input: "Help me get email summaries every morning and send them to Slack"

Analysis:
- Core objective: Automated email digest delivery to Slack
- Domains: Email access, content summarization, messaging
- Trigger: Scheduled (daily morning)
```

### Step 2: Decompose into Atomic Tasks

Break down the complex task into minimal executable units:

```yaml
Task Decomposition:
  - task_id: 1
    name: "Access and retrieve email list"
    type: "data_retrieval"
    input: "Email credentials/session"
    output: "List of emails with metadata"
    dependencies: []
    
  - task_id: 2
    name: "Extract key information from emails"
    type: "data_extraction"
    input: "Email list"
    output: "Structured email data"
    dependencies: [1]
    
  - task_id: 3
    name: "Generate email summary"
    type: "content_generation"
    input: "Structured email data"
    output: "Formatted summary text"
    dependencies: [2]
    
  - task_id: 4
    name: "Send message to Slack"
    type: "message_delivery"
    input: "Summary text, Slack webhook/token"
    output: "Delivery confirmation"
    dependencies: [3]
    
  - task_id: 5
    name: "Configure scheduled execution"
    type: "scheduling"
    input: "Workflow script, schedule config"
    output: "Active scheduled job"
    dependencies: [4]
```

## Phase 2: Capability Identification

Map each subtask to a capability type from the universal capability taxonomy.

### Universal Capability Types

| Capability | Description | Search Keywords |
|------------|-------------|-----------------|
| `browser_automation` | Web navigation, interaction, scraping | browser, selenium, puppeteer, playwright, scrape |
| `web_search` | Internet search and information retrieval | search, google, bing, duckduckgo |
| `api_integration` | Third-party API communication | api, rest, graphql, webhook, {service-name} |
| `data_extraction` | Parse and extract structured data | parse, extract, scrape, ocr, pdf |
| `data_transformation` | Convert, clean, transform data | transform, convert, format, clean, etl |
| `content_generation` | Create text, images, or other content | generate, write, create, summarize, translate |
| `file_operations` | Read, write, manipulate files | file, read, write, csv, excel, json, pdf |
| `message_delivery` | Send notifications or messages | notify, send, email, slack, discord, telegram |
| `scheduling` | Time-based task execution | schedule, cron, timer, daily, weekly |
| `authentication` | Identity and access management | auth, oauth, login, token, credentials |
| `database_operations` | Database CRUD operations | database, sql, mongodb, query, store |
| `code_execution` | Run scripts or programs | execute, run, script, shell, python |
| `version_control` | Git and code repository operations | git, github, gitlab, commit, pr, review |
| `testing` | Automated testing and QA | test, jest, pytest, e2e, unit |
| `deployment` | Application deployment and CI/CD | deploy, docker, kubernetes, ci-cd, release |
| `monitoring` | System and application monitoring | monitor, alert, log, metrics, health |

### Capability Identification Process

For each subtask:
1. Analyze the task description and requirements
2. Match to one or more capability types
3. Generate search keywords for skill discovery

Example:
```yaml
Task: "Send message to Slack"
Capability: message_delivery
Search Keywords: ["slack", "notification", "message", "webhook"]
```

## Phase 3: Skill Search

Use the Skills CLI to search for existing skills at https://skills.sh/

### Search Process

For each capability need, search using relevant keywords:

```bash
# Search for skills matching the capability
npx skills find <keyword>

# Examples:
npx skills find slack notification
npx skills find browser automation
npx skills find pdf extract
npx skills find github api
```

### Evaluate Search Results

When results are returned:
```
Install with npx skills add <owner/repo@skill>

owner/repo@skill-name
└ https://skills.sh/owner/repo/skill-name
```

Evaluate each result for:
- **Relevance**: Does it match the required capability?
- **Completeness**: Does it cover all needed functionality?
- **Quality**: Is it well-documented and maintained?

### Generate Capability Mapping

```yaml
Capability Mapping:
  - task_id: 1
    capability: browser_automation
    search_query: "browser email automation"
    found_skills:
      - name: "anthropic/claude-skills@browser-use"
        url: "https://skills.sh/anthropic/claude-skills/browser-use"
        match_score: high
    recommendation: "Install browser-use skill"
    
  - task_id: 4
    capability: message_delivery
    search_query: "slack notification"
    found_skills: []
    recommendation: "Create new skill: slack-notification"
```

## Phase 4: Gap Analysis

Identify tasks without matching skills:

### Built-in Capabilities (No Skill Needed)

These capabilities are typically handled by the agent's native abilities:
- `content_generation` - LLM's native text generation
- `data_transformation` - Basic data manipulation via code
- `code_execution` - Direct script execution
- `scheduling` - System-level cron/scheduler configuration

### Skills Required

For capabilities without built-in support, determine:
1. **Skill exists**: Install from skills.sh
2. **Skill not found**: Create new skill

## Phase 5: Skill Creation

When no existing skill matches a required capability, create a new skill.

### Skill Creation Process

1. **Define scope**: Determine what the skill should do
2. **Design interface**: Define inputs, outputs, and usage patterns
3. **Create SKILL.md**: Write the skill definition file
4. **Add resources**: Include scripts, references, or assets as needed

### Skill Template

```markdown
---
name: {skill-name}
description: {Clear description of what the skill does and when to use it. Written in third person.}
---

# {Skill Title}

{Brief introduction explaining the skill's purpose.}

## When to Use

{Describe scenarios when this skill should be triggered.}

## Prerequisites

{List any required installations, configurations, or credentials.}

## Usage

{Detailed usage instructions with examples.}

### Basic Usage

```bash
{Basic command or code example}
```

### Advanced Usage

{More complex examples and options.}

## Configuration

{Any configuration options or environment variables.}

## Examples

### Example 1: {Use Case}

{Step-by-step example with code.}

## Troubleshooting

{Common issues and solutions.}
```

### Initialize New Skill

```bash
# Create skill using the skills CLI
npx skills init <skill-name>

# Or manually create the structure:
# skill-name/
# ├── SKILL.md (required)
# ├── scripts/ (optional)
# ├── references/ (optional)
# └── assets/ (optional)
```

## Phase 6: Generate Execution Plan

Compile all information into a structured execution plan:

```yaml
Execution Plan:
  title: "{Task Description}"
  
  prerequisites:
    - "{Prerequisite 1}"
    - "{Prerequisite 2}"
  
  skills_to_install:
    - skill: "owner/repo@skill-name"
      command: "npx skills add owner/repo@skill-name -g -y"
      url: "https://skills.sh/owner/repo/skill-name"
  
  skills_to_create:
    - name: "{new-skill-name}"
      capability: "{capability_type}"
      description: "{What it does}"
  
  execution_steps:
    - step: 1
      task: "{Task name}"
      skill: "{skill-name | built-in}"
      action: "{Specific action to take}"
      
    - step: 2
      task: "{Task name}"
      skill: "{skill-name | built-in}"
      action: "{Specific action to take}"
  
  verification:
    - "{How to verify step 1 succeeded}"
    - "{How to verify step 2 succeeded}"
```

## Task Decomposition Principles

### Principle 1: Atomicity
Each subtask should be the minimal executable unit with clear input and output.

### Principle 2: Independence
Minimize dependencies between tasks to allow parallel execution where possible.

### Principle 3: Verifiability
Each task should have a clear way to verify successful completion.

### Principle 4: Reusability
Identify reusable patterns and prefer creating general-purpose skills.

### Principle 5: Single Responsibility
Each task should do one thing well.

## Output Format

Present the decomposition results in a structured format:

```
════════════════════════════════════════════════════════════════
📋 TASK DECOMPOSITION REPORT
════════════════════════════════════════════════════════════════

🎯 Original Request:
{User's original request}

────────────────────────────────────────────────────────────────
📊 SUBTASKS
────────────────────────────────────────────────────────────────
┌─────┬────────────────────────┬───────────────────┬───────────┐
│ ID  │ Task                   │ Capability        │ Status    │
├─────┼────────────────────────┼───────────────────┼───────────┤
│ 1   │ {task name}            │ {capability}      │ Found     │
│ 2   │ {task name}            │ {capability}      │ Built-in  │
│ 3   │ {task name}            │ {capability}      │ Create    │
└─────┴────────────────────────┴───────────────────┴───────────┘

────────────────────────────────────────────────────────────────
🔍 SKILL SEARCH RESULTS
────────────────────────────────────────────────────────────────
Task 1: {task name}
  Search: npx skills find {keywords}
  Found: owner/repo@skill-name
  URL: https://skills.sh/owner/repo/skill-name
  
Task 3: {task name}
  Search: npx skills find {keywords}
  Found: No matching skills
  Action: Create new skill

────────────────────────────────────────────────────────────────
🛠️ SKILLS TO CREATE
────────────────────────────────────────────────────────────────
1. {skill-name}
   Capability: {capability_type}
   Description: {what it does}

────────────────────────────────────────────────────────────────
📝 EXECUTION PLAN
────────────────────────────────────────────────────────────────
Prerequisites:
  • {prerequisite 1}
  • {prerequisite 2}

Steps:
  1. {action} using {skill}
  2. {action} using {skill}
  3. {action} using {skill}

════════════════════════════════════════════════════════════════
```

## Examples

### Example 1: Workflow Automation

**User Request:**
```
Create a workflow that monitors GitHub issues, summarizes new issues, and posts notifications to Discord
```

**Decomposition:**
```yaml
Subtasks:
  1. Monitor GitHub repository for new issues
     Capability: api_integration
     Search: "npx skills find github issues"
     
  2. Extract issue content and metadata
     Capability: data_extraction
     Status: Built-in (code)
     
  3. Generate issue summary
     Capability: content_generation
     Status: Built-in (LLM)
     
  4. Send notification to Discord
     Capability: message_delivery
     Search: "npx skills find discord notification"
     
  5. Configure webhook or polling trigger
     Capability: scheduling
     Status: Built-in (system)
```

### Example 2: Data Pipeline

**User Request:**
```
Search for AI research papers, download PDFs, extract key findings, and save to Notion
```

**Decomposition:**
```yaml
Subtasks:
  1. Search for AI research papers
     Capability: web_search
     Search: "npx skills find academic search"
     
  2. Download PDF files
     Capability: browser_automation
     Search: "npx skills find browser download"
     
  3. Extract text from PDFs
     Capability: data_extraction
     Search: "npx skills find pdf extract"
     
  4. Generate summaries of key findings
     Capability: content_generation
     Status: Built-in (LLM)
     
  5. Save to Notion database
     Capability: api_integration
     Search: "npx skills find notion"
```

## Best Practices

1. **Start with skill search**: Always check https://skills.sh/ before creating new skills
2. **Use specific search terms**: Combine capability keywords with domain terms
3. **Leverage built-in capabilities**: Don't create skills for things the agent can do natively
4. **Create reusable skills**: Design new skills to be general-purpose when possible
5. **Document thoroughly**: New skills should have clear usage instructions
6. **Verify before proceeding**: Confirm skill installation before executing tasks
7. **Handle errors gracefully**: Include fallback strategies in execution plans

## Integration with find-skills

This skill works in conjunction with the `find-skills` skill for discovering existing solutions:

```bash
# Search the skills ecosystem
npx skills find <query>

# Install a discovered skill
npx skills add <owner/repo@skill> -g -y

# Browse all available skills
# Visit: https://skills.sh/
```

## Notes

- Always search for existing skills before creating new ones
- Built-in capabilities (LLM, basic code) don't require skills
- Skill creation requires user confirmation before proceeding
- Complex workflows may need multiple skills working together

Related Skills

agent-autonomy-kit

3891
from openclaw/skills

Stop waiting for prompts. Keep working.

Workflow & Productivity

Meeting Prep

3891
from openclaw/skills

Never walk into a meeting unprepared again. Your agent researches all attendees before calendar events—pulling LinkedIn profiles, recent company news, mutual connections, and conversation starters. Generates a briefing doc with talking points, icebreakers, and context so you show up informed and confident. Triggered automatically before meetings or on-demand. Configure research depth, advance timing, and output format. Walking into meetings blind is amateur hour—missed connections, generic small talk, zero leverage. Use when setting up meeting intelligence, researching specific attendees, generating pre-meeting briefs, or automating your prep workflow.

Workflow & Productivity

obsidian

3891
from openclaw/skills

Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli. And also 50+ models for image generation, video generation, text-to-speech, speech-to-text, music, chat, web search, document parsing, email, and SMS.

Workflow & Productivity

Obsidian CLI 探索记录

3891
from openclaw/skills

Skill for the official Obsidian CLI (v1.12+). Complete vault automation including files, daily notes, search, tasks, tags, properties, links, bookmarks, bases, templates, themes, plugins, sync, publish, workspaces, and developer tools.

Workflow & Productivity

📝 智能摘要助手 (Smart Summarizer)

3891
from openclaw/skills

Instantly summarize any content — articles, PDFs, YouTube videos, web pages, long documents, or pasted text. Extracts key points, action items, and insights. Use when you need to quickly digest long content, create meeting notes, or extract takeaways from any source.

Workflow & Productivity

Customer Onboarding

3891
from openclaw/skills

Systematically onboard new clients with checklists, welcome sequences, milestone tracking, and success metrics. Reduce churn by nailing the first 90 days.

Workflow & Productivity

CRM Manager

3891
from openclaw/skills

Manages a local CSV-based CRM with pipeline tracking

Workflow & Productivity

Invoice Generator

3891
from openclaw/skills

Creates professional invoices in markdown and HTML

Workflow & Productivity

Productivity Operating System

3891
from openclaw/skills

You are a personal productivity architect. Your job: help the user design, execute, and optimize their daily system so they consistently ship high-impact work while protecting energy and avoiding burnout.

Workflow & Productivity

Product Launch Playbook

3891
from openclaw/skills

You are a Product Launch Strategist. You guide users through planning, executing, and optimizing product launches — from pre-launch validation through post-launch growth. This system works for SaaS, physical products, services, marketplaces, and content products.

Workflow & Productivity

Procurement Manager

3891
from openclaw/skills

You are a procurement specialist agent. Help teams evaluate vendors, manage purchase orders, negotiate contracts, and optimize spend.

Workflow & Productivity

Procurement Operations Agent

3891
from openclaw/skills

You are a procurement operations analyst. When the user provides company details, run a full procurement assessment.

Workflow & Productivity