Install
openclaw skills install find-skills-comboDiscover and recommend **combinations** of agent skills to complete complex, multi-faceted tasks. Provides two recommendation strategies — **Maximum Quality** (best skill per subtask) and **Minimum Dependencies** (fewest installs). Use this skill whenever the user wants to find skills, asks "how do I do X", "find a skill for X", or describes a task that likely requires multiple capabilities working together. Also use when the user mentions composing workflows, building pipelines, or needs help across several domains at once — even if they only say "find me a skill". This skill supersedes simple single-skill search by decomposing the task into subtasks and assembling an optimal skill portfolio.
openclaw skills install find-skills-comboDiscover and install skill combinations from the open agent skills ecosystem. Unlike single-skill search, this skill decomposes complex tasks into subtasks, searches for candidates per subtask, evaluates coverage, and recommends two strategies: Maximum Quality (best skill per subtask, highest output quality) and Minimum Dependencies (fewest installs, lean setup). Users pick the strategy that fits their priorities.
Use this skill when the user:
Fallback: If the task is genuinely single-domain and simple (one clear capability), skip the decomposition — run a single npx skills find query, present results, and offer to install. Don't over-engineer simple requests.
The Skills CLI (npx skills) is the package manager for the open agent skills ecosystem.
Key commands:
npx skills find [query] — Search for skills by keywordnpx skills add <package> — Install a skill from GitHub or other sourcesnpx skills add <package> -g -y — Install globally, skip confirmationnpx skills check — Check for skill updatesnpx skills update — Update all installed skillsBrowse skills at: https://skills.sh/
For complex tasks, follow all five phases in order. For simple tasks, see the Fallback section above.
Break the user's request into independent subtasks. Each subtask represents a distinct capability needed to complete the overall task.
Step 1: Extract Task-Specific Constraints
Before decomposing, scan the user's request for task-specific constraints — these are requirements that narrow the problem space and must be preserved in the subtasks. Look for:
Collect these into a Constraints List — a flat list of non-negotiable requirements extracted verbatim (or near-verbatim) from the user's request. Every subtask you create must trace back to at least one constraint, and no constraint should be orphaned.
Step 2: Decompose into Subtasks
Constraints:
Output format (present this to the user for confirmation):
Constraints List:
[verbatim constraint from user][verbatim constraint from user]| ID | Subtask | Completion Criteria | Constraints |
|---|---|---|---|
| S1 | ... | ... | C1, C3 |
| S2 | ... | ... | C2 |
Before proceeding to Phase 2, briefly show the user the decomposition and constraints list: "I've identified N constraints and broken this into M subtasks — does this look right?" If they want to adjust, iterate. Don't spend too long here — a reasonable decomposition is better than a perfect one.
For each subtask, the goal is precision over recall — find the skills that most closely match the subtask's specific requirements, not just loosely related ones.
Step 1: Subtask Intent Analysis
Before generating keywords, write a one-sentence intent statement for each subtask that captures:
This intent statement is the anchor for keyword generation — every keyword group must map back to it. Constraints ensure the intent stays grounded in the user's actual context rather than drifting to generic descriptions.
| ID | Subtask | Constraints | Intent Statement |
|---|---|---|---|
| S1 | ... | C1, C3 | "Calculate portfolio risk metrics (Sharpe, beta, drawdown) under GAAP standards and output a summary table" |
| S2 | ... | C2 | "Generate interactive Mermaid-based charts from time-series data in a Svelte SPA" |
Step 2: Keyword Generation (Precision-First)
For each subtask, generate 2–3 keyword groups using different precision levels:
sharpe ratio beta drawdown calculator)portfolio risk analysis metrics)quantitative finance)Priority rule: Always run exact-match first. Only fall back to broader keywords if the precise search returns too few results (< 3 candidates).
Step 3: Search Execution
| Subtask | Exact-Match | Functional-Match | Domain-Match (if needed) |
|---|---|---|---|
| S1 | sharpe ratio beta drawdown | portfolio risk metrics | quantitative finance |
| S2 | interactive chart time-series dashboard | data visualization web | — |
npx skills find "<exact-match-keywords>"
Check result counts. For any subtask with < 3 candidates from exact-match, run the functional-match search. If still < 3, run domain-match.
Merge and deduplicate results. For each candidate, record:
Step 4: Relevance Pre-Filter
Before passing candidates to Phase 3, do a quick relevance check per candidate:
Keep the top 3–5 candidates per subtask after filtering. Fewer but more precise candidates produce better evaluations in Phase 3.
Build a Subtask × Candidate coverage matrix with two extra columns for combination planning.
For each candidate skill:
Output the matrix:
| Candidate | S1 | S2 | S3 | Breadth | Peak |
|---|---|---|---|---|---|
| Skill A | High: ... | Low | High: ... | 2 | 1 |
| Skill B | Medium: ... | High: ... | Low | 2 | 1 |
| Skill C | Low | High: ... | Medium: ... | 2 | 1 |
| Skill D | Low | Low | High: ... | 1 | 1 |
Pruning: Drop candidates that are Low across all subtasks — they are noise.
Produce exactly two recommended strategies targeting different user priorities.
Strategy A — Maximum Quality (追求最强效果)
Goal: Every subtask gets its best-fit skill. Accept more installs to maximize output quality.
Algorithm:
This strategy is for users who want the highest-quality result and don't mind installing several skills.
Strategy B — Minimum Dependencies (最少外部依赖)
Goal: Cover all subtasks with as few skills as possible. Accept Medium coverage where it avoids adding an extra skill.
Algorithm:
This strategy is for users who want to keep their environment lean and are comfortable with "good enough" coverage on some subtasks.
For both strategies, document:
Coverage gap check: If any subtask has no High or Medium candidate in either strategy, flag it: "⚠ Subtask SX has no strong skill coverage — you may need to handle this manually or create a custom skill."
Conflict detection: If two skills in Strategy A overlap significantly on the same subtask, note it: "Skills X and Y both cover S2 — you only need one; keeping the higher-rated one."
Structure the final output with these sections:
1. Task Decomposition Summary
Show the subtask table from Phase 1 (brief, since the user already confirmed it).
2. Side-by-Side Comparison
Start with a quick comparison table so the user can choose a strategy immediately:
| | Strategy A: Maximum Quality | Strategy B: Minimum Dependencies |
|---|---|---|
| Skills to install | N skills | M skills |
| All-High coverage | X of Y subtasks | P of Y subtasks |
| Trade-offs | More installs | Some subtasks at Medium |
| Best for | Critical/production tasks | Quick exploration, lean setup |
3. Strategy A — Maximum Quality (Recommended for critical tasks)
Every subtask gets its best-fit skill for the highest-quality output.
| Subtask | Handled By | Coverage |
|---------|-----------|----------|
| S1 | skill-name-a | High |
| S2 | skill-name-b | High |
| S3 | skill-name-c | High |
### Install (N skills)
```bash
npx skills add owner/repo@skill-a -g -y
npx skills add owner/repo@skill-b -g -y
npx skills add owner/repo@skill-c -g -y
```
4. Strategy B — Minimum Dependencies (Recommended for lean setup)
Cover all subtasks with the fewest skills possible.
| Subtask | Handled By | Coverage | vs Strategy A |
|---------|-----------|----------|---------------|
| S1 | skill-name-a | High | Same |
| S2 | skill-name-a | Medium | ↓ High → Medium |
| S3 | skill-name-a | Medium | ↓ High → Medium |
### Install (M skills)
```bash
npx skills add owner/repo@skill-a -g -y
```
The vs Strategy A column makes the trade-off transparent — users see exactly what they give up by installing fewer skills.
5. Coverage Gaps & Risks
npx skills init)6. Next Steps
Ask the user:
When the task is straightforward (single domain, one clear capability):
npx skills find [query] with 1–2 relevant keyword setsThis is the same behavior as the basic find-skills workflow — no decomposition needed.
When generating keywords, draw from these domains:
| Category | Example Keywords |
|---|---|
| Web Development | react, nextjs, typescript, css, tailwind |
| Testing | testing, jest, playwright, e2e |
| DevOps | deploy, docker, kubernetes, ci-cd |
| Documentation | docs, readme, changelog, api-docs |
| Code Quality | review, lint, refactor, best-practices |
| Design | ui, ux, design-system, accessibility |
| Data & Analytics | data, visualization, charts, analysis |
| Finance | portfolio, trading, risk, investment |
| Productivity | workflow, automation, git |
https://skills.sh/<owner>/<repo>/<skill-name> for descriptions.vs Strategy A column in Strategy B is the most important part of the output. It turns an abstract choice into a concrete comparison.If a subtask has no relevant skills:
npx skills init my-custom-skill