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.
Install with Tessl CLI
npx tessl i github:Demerzels-lab/elsamultiskillagent --skill task-decomposer75
Does it follow best practices?
If you maintain this skill, you can automatically optimize it using the tessl CLI to improve its score:
npx tessl skill review --optimize ./path/to/skillEvaluation — 90%
↑ 2.43xAgent success when using this skill
Validation for skill structure
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.
User Request → Task Decomposition → Capability Identification → Skill Search → Gap Analysis → Skill Creation → Execution PlanWhen receiving a user request, follow these steps:
Analyze the request to identify:
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)Break down the complex task into minimal executable units:
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]Map each subtask to a capability type from the universal capability taxonomy.
| 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 |
For each subtask:
Example:
Task: "Send message to Slack"
Capability: message_delivery
Search Keywords: ["slack", "notification", "message", "webhook"]Use the Skills CLI to search for existing skills at https://skills.sh/
For each capability need, search using relevant keywords:
# 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 apiWhen results are returned:
Install with npx skills add <owner/repo@skill>
owner/repo@skill-name
└ https://skills.sh/owner/repo/skill-nameEvaluate each result for:
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"Identify tasks without matching skills:
These capabilities are typically handled by the agent's native abilities:
content_generation - LLM's native text generationdata_transformation - Basic data manipulation via codecode_execution - Direct script executionscheduling - System-level cron/scheduler configurationFor capabilities without built-in support, determine:
When no existing skill matches a required capability, create a new skill.
---
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}{More complex examples and options.}
{Any configuration options or environment variables.}
{Step-by-step example with code.}
{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)Compile all information into a structured execution plan:
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}"Each subtask should be the minimal executable unit with clear input and output.
Minimize dependencies between tasks to allow parallel execution where possible.
Each task should have a clear way to verify successful completion.
Identify reusable patterns and prefer creating general-purpose skills.
Each task should do one thing well.
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}
════════════════════════════════════════════════════════════════User Request:
Create a workflow that monitors GitHub issues, summarizes new issues, and posts notifications to DiscordDecomposition:
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)User Request:
Search for AI research papers, download PDFs, extract key findings, and save to NotionDecomposition:
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"This skill works in conjunction with the find-skills skill for discovering existing solutions:
# 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/45f9fac
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.