Back to Skills
    šŸ¦ž

    task-decomposer

    Decomposes complex user requests into executable subtasks

    By @10e9928a
    View on GitHub
    SKILL.md
    ---
    name: task-decomposer
    description: 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.
    ---
    
    # 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 nam
    
    ... (truncated)