find-skills-combo
複雑なタスクを複数の段階に分け、各段階で最適なSkillを組み合わせたり、導入の手間が少ないSkillを選んだりすることで、ユーザーが求める作業を効率的に実現するSkill。
📜 元の英語説明(参考)
Discover 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.
🇯🇵 日本人クリエイター向け解説
複雑なタスクを複数の段階に分け、各段階で最適なSkillを組み合わせたり、導入の手間が少ないSkillを選んだりすることで、ユーザーが求める作業を効率的に実現するSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o find-skills-combo.zip https://jpskill.com/download/10340.zip && unzip -o find-skills-combo.zip && rm find-skills-combo.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/10340.zip -OutFile "$d\find-skills-combo.zip"; Expand-Archive "$d\find-skills-combo.zip" -DestinationPath $d -Force; ri "$d\find-skills-combo.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
find-skills-combo.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
find-skills-comboフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
スキルコンボを見つける
オープンなエージェントスキルエコシステムから、スキルコンビネーションを発見し、インストールします。単一スキルの検索とは異なり、このスキルは複雑なタスクをサブタスクに分解し、サブタスクごとに候補を検索し、カバレッジを評価し、2つの戦略を推奨します。最大品質(サブタスクごとに最適なスキル、最高の出力品質)と最小依存性(最小限のインストール、リーンなセットアップ)です。ユーザーは自分の優先順位に合った戦略を選択します。
このスキルを使用するタイミング
ユーザーが以下の場合に、このスキルを使用します。
- 「Xをどのように行うか」と尋ねる。ここで、Xは複数の機能またはドメインを含む。
- 「Xのスキルを見つける」または「Xのスキルはありますか」と言う。
- 複数の懸念事項にまたがるタスクを説明する(例:「チャート、リスク分析、およびエグゼクティブサマリーを含む四半期レポートを作成する」)。
- 複数のスキルからワークフローを構成したい。
- 「Xを実行できますか」と尋ねる。ここで、Xは複雑な、複数ステップのタスクである。
- 自明ではないプロジェクトのためにエージェントの機能を拡張することに関心を示す。
フォールバック: タスクが本当に単一ドメインで単純な場合(1つの明確な機能)、分解をスキップし、単一の npx skills find クエリを実行し、結果を表示して、インストールを提供します。単純なリクエストを過剰に設計しないでください。
Skills CLIとは何ですか?
Skills CLI (npx skills)は、オープンなエージェントスキルエコシステムのパッケージマネージャーです。
主要なコマンド:
npx skills find [query]— キーワードでスキルを検索npx skills add <package>— GitHubまたはその他のソースからスキルをインストールnpx skills add <package> -g -y— グローバルにインストールし、確認をスキップnpx skills check— スキルのアップデートを確認npx skills update— インストールされているすべてのスキルをアップデート
スキルを閲覧する: https://skills.sh/
5フェーズパイプライン
複雑なタスクの場合は、5つのフェーズすべてを順番に実行します。単純なタスクの場合は、上記のフォールバックセクションを参照してください。
フェーズ1: タスク分解
ユーザーのリクエストを独立したサブタスクに分割します。各サブタスクは、全体的なタスクを完了するために必要な個別の機能を表します。
ステップ1: タスク固有の制約を抽出する
分解する前に、ユーザーのリクエストからタスク固有の制約をスキャンします。これらは、問題空間を狭め、サブタスクで保持する必要がある要件です。以下を探してください。
- ドメイン固有の用語: 専門用語、固有名詞、名前付き標準、またはユーザーが明示的に使用する特殊な語彙(例:「WCAG 2.1 AA compliance」、「GAAP reporting」、「OpenAPI 3.1 spec」)。これらの用語は、一般的なスキルでは十分ではないことを示します。サブタスクはこの正確なドメインをターゲットにする必要があります。
- シナリオ制約: 環境またはコンテキストの制限(例:「オフラインのみ」、「CIで実行する必要がある」、「バックエンドのないシングルページアプリ」、「pnpmワークスペースを持つモノレポ」)。これらは、技術的には正しいことを行うが、間違ったコンテキストで行うスキルを除外します。
- フォーマット/出力要件: 特定のファイル形式、テンプレート、または配信形式(例:「PDFとして出力」、「Helm chart」、「Jupyter notebook」、「Mermaidダイアグラムを含むMarkdown」)。
- ツールチェーンのロックイン: ユーザーがすでにコミットしている明示的なテクノロジーの選択(例:「ReactではなくSvelteを使用」、「PostgreSQLのみ」、「既存のFastAPIバックエンドと統合する必要がある」)。
これらを制約リストに収集します。これは、ユーザーのリクエストから逐語的に(またはほぼ逐語的に)抽出された、交渉の余地のない要件のフラットなリストです。作成するすべてのサブタスクは、少なくとも1つの制約にトレースバックする必要があり、制約が孤立してはなりません。
ステップ2: サブタスクに分解する
- ユーザーのリクエストを注意深く読みます。彼らが必要とするすべての異なる結果または成果物を特定します。
- 関連する結果をサブタスクにグループ化します。各サブタスクは、「機能ユニット」である必要があります。つまり、1つのスキルで実行できることです。
- 各サブタスクの短い完了基準を記述して、後で「カバーされている」とはどういう意味かを知ることができるようにします。
- 関連する制約を制約リストから各サブタスクに添付します。添付された制約がないサブタスクは、おそらく一般的すぎます。それを絞り込みます。どのサブタスクにも添付されていない制約はギャップです。それに対するサブタスクを作成するか、既存のサブタスクに折りたたみます。
制約:
- 2〜7個のサブタスクを目指します。2つ未満の場合、タスクは単純です。フォールバックを使用します。7つを超える場合は、細かく分割しすぎています。関連する項目をマージします。
- 各サブタスクには明確な境界が必要です。2つのサブタスクが常に同じスキルを必要とする場合は、それらをマージします。
- ユーザー自身の言葉を保持する: サブタスクがユーザーが使用したドメイン固有の用語にマップされる場合は、その用語をサブタスクの説明と完了基準に保持します。それを一般的な同義語に言い換えないでください。これにより、フェーズ2のキーワード生成が正確になります。
出力形式(これをユーザーに確認のために提示します):
制約リスト:
- C1:
[ユーザーからの逐語的な制約] - C2:
[ユーザーからの逐語的な制約] - ...
| ID | サブタスク | 完了基準 | 制約 |
|---|---|---|---|
| S1 | ... | ... | C1, C3 |
| S2 | ... | ... | C2 |
フェーズ2に進む前に、分解と制約リストをユーザーに簡単に示します。「N個の制約を特定し、これをM個のサブタスクに分割しました。これは正しいように見えますか?」調整したい場合は、繰り返します。ここで時間をかけすぎないでください。完璧な分解よりも合理的な分解の方が優れています。
フェーズ2: 精度重視の検索
各サブタスクの目標は、再現率よりも精度です。単に緩く関連するスキルではなく、サブタスクの特定の要件に最も近いスキルを見つけます。
ステップ1: サブタスクの意図分析
キーワードを生成する前に、各サブタスクについて、以下をキャプチャする1文の意図ステートメントを記述します。
- 特定のアクション(例:「生成」、「分析」、「検証」、「処理」や「処理」などの曖昧な用語ではない)
- ドメインオブジェクト(例:「シャープレシオ」、「Dockerコンテナ」、「Reactコンポーネント」)
- 予想される出力形式(例:「チャート」、「スコア」、「構成ファイル」)
- フェーズ1からの添付された制約 — ユーザーのドメイン固有の用語とシナリオの制限を意図ステートメントに直接織り込みます
この意図ステートメントはアンカーf
(原文がここで切り詰められています)
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Find Skills Combo
Discover 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.
When to Use This Skill
Use this skill when the user:
- Asks "how do I do X" where X involves multiple capabilities or domains
- Says "find a skill for X" or "is there a skill for X"
- Describes a task that spans several concerns (e.g., "build a quarterly report with charts, risk analysis, and executive summary")
- Wants to compose a workflow from multiple skills
- Asks "can you do X" where X is a complex, multi-step task
- Expresses interest in extending agent capabilities for a non-trivial project
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.
What is the Skills CLI?
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 skills
Browse skills at: https://skills.sh/
The 5-Phase Pipeline
For complex tasks, follow all five phases in order. For simple tasks, see the Fallback section above.
Phase 1: Task Decomposition
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:
- Domain-specific terminology: Jargon, proper nouns, named standards, or specialized vocabulary the user explicitly uses (e.g., "WCAG 2.1 AA compliance", "GAAP reporting", "OpenAPI 3.1 spec"). These terms signal that generic skills won't suffice — the subtask must target this exact domain.
- Scenario constraints: Environmental or contextual restrictions (e.g., "offline-only", "must run in CI", "single-page app with no backend", "monorepo with pnpm workspaces"). These filter out skills that technically do the right thing but in the wrong context.
- Format / output requirements: Specific file formats, templates, or delivery formats (e.g., "output as PDF", "Helm chart", "Jupyter notebook", "Markdown with Mermaid diagrams").
- Toolchain lock-ins: Explicit technology choices the user has already committed to (e.g., "using Svelte, not React", "PostgreSQL only", "must integrate with our existing FastAPI backend").
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
- Read the user's request carefully. Identify every distinct outcome or deliverable they need.
- Group related outcomes into subtasks. Each subtask should be a "capability unit" — something one skill could plausibly handle.
- Write a short completion criterion for each subtask so you know what "covered" means later.
- Attach relevant constraints from the Constraints List to each subtask. A subtask without any attached constraint is likely too generic — refine it. A constraint not attached to any subtask is a gap — either create a subtask for it or fold it into an existing one.
Constraints:
- Aim for 2–7 subtasks. Fewer than 2 means the task is simple — use the fallback. More than 7 means you're splitting too fine — merge related items.
- Each subtask needs a clear boundary. If two subtasks always require the same skill, merge them.
- Preserve the user's own words: When a subtask maps to a domain-specific term the user used, keep that term in the subtask description and completion criteria — don't paraphrase it into a generic synonym. This ensures Phase 2 keyword generation stays precise.
Output format (present this to the user for confirmation):
Constraints List:
- C1:
[verbatim constraint from user] - C2:
[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.
Phase 2: Precision-Focused Search
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:
- The specific action (e.g., "generate", "analyze", "validate", not vague terms like "handle" or "process")
- The domain object (e.g., "Sharpe ratio", "Docker container", "React component")
- The expected output format (e.g., "a chart", "a score", "a config file")
- The attached constraints from Phase 1 — weave the user's domain-specific terms and scenario restrictions directly into the intent statement
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:
- Exact-match keywords: Use the most specific terms from the intent statement — tool names, metric names, framework names, file formats. These find skills purpose-built for the subtask. (e.g.,
sharpe ratio beta drawdown calculator) - Functional-match keywords: Describe the capability at one level of abstraction higher — what the skill does rather than what it is. These catch skills that solve the same problem with different terminology. (e.g.,
portfolio risk analysis metrics) - Domain-match keywords (only if exact + functional return < 3 results): Broaden to the domain level as a safety net. (e.g.,
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
- Build a keyword plan table with precision level annotated:
| 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 |
— |
- Run all exact-match searches in parallel first:
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:
- Which subtask found it
- Which precision level matched (exact > functional > domain)
- The skill's self-described purpose (from search output)
Step 4: Relevance Pre-Filter
Before passing candidates to Phase 3, do a quick relevance check per candidate:
- Re-read the candidate's one-line description from the search output.
- Compare it against the subtask's intent statement.
- Keep if the description shares at least one specific term (tool name, metric, framework) with the intent statement, OR if it describes the same functional capability.
- Drop if the connection is only at the domain level (e.g., a skill about "financial news aggregation" found via domain-match for a "risk metrics" subtask).
Keep the top 3–5 candidates per subtask after filtering. Fewer but more precise candidates produce better evaluations in Phase 3.
Phase 3: Candidate Evaluation
Build a Subtask × Candidate coverage matrix with two extra columns for combination planning.
For each candidate skill:
- Look up its description on skills.sh or read its SKILL.md if installed.
- Rate its relevance to each subtask as High, Medium, or Low:
- High — The skill directly addresses this subtask with dedicated features or workflows
- Medium — The skill partially covers this subtask or addresses it as a secondary concern
- Low — The skill has minimal or no relevance to this subtask
- Write a one-line justification for each rating.
- Compute two additional metrics per candidate:
- Breadth — Count of subtasks where the skill rates High or Medium (higher = more versatile, valuable for minimum-dependency strategy)
- Peak — Count of subtasks where the skill is the top-rated candidate (higher = more irreplaceable, valuable for best-effect strategy)
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.
Phase 4: Dual-Strategy Planning
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:
- For each subtask, pick the candidate with the highest rating (use Peak column to break ties — prefer skills that are uniquely best at something).
- If multiple candidates tie at High for a subtask, prefer the one with higher community popularity or more recent maintenance.
- List all selected skills (may include one skill per subtask if they're all different).
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:
- Sort candidates by Breadth descending (most versatile first).
- Greedily select: pick the highest-Breadth skill, mark its High/Medium subtasks as covered, repeat until all subtasks are covered.
- If a subtask can only reach Medium coverage with the greedy set but has a dedicated High-coverage skill, do NOT add that skill — keep the set minimal. Only flag the trade-off.
- Target ceiling: if the task has N subtasks, this strategy should ideally use ≤ ⌈N/2⌉ skills.
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:
- Which skills are included and total install count
- A subtask → skill mapping table
- A one-sentence rationale
- A quality delta summary: where Strategy B trades quality for fewer installs compared to Strategy A
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."
Phase 5: Present Results
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
- List any subtasks without strong coverage in either strategy
- Suggest workarounds (manual steps, creating a custom skill with
npx skills init) - If Strategy B downgrades a subtask from High to Medium, briefly explain the practical impact
6. Next Steps
Ask the user:
- "Which strategy do you prefer — Maximum Quality or Minimum Dependencies?"
- "Want me to install your chosen strategy now?"
- "Want me to search deeper for any specific subtask?"
- "Want to adjust the decomposition?"
Fallback: Simple Single-Skill Search
When the task is straightforward (single domain, one clear capability):
- Run
npx skills find [query]with 1–2 relevant keyword sets - Present the top 2–3 results with name, description, and install command
- Offer to install
This is the same behavior as the basic find-skills workflow — no decomposition needed.
Common Skill Categories
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 |
Tips
- Precision beats recall: 3 highly relevant candidates are more useful than 10 loosely related ones. Always start with the most specific keywords and only broaden if needed.
- Intent statements are your anchor: A good intent statement in Phase 2 prevents keyword drift. If your keywords don't map back to the intent, they're too broad.
- Parallel search matters: Running all keyword groups simultaneously saves significant time. Use subagents when available.
- Don't over-decompose: 3–5 subtasks is the sweet spot for most tasks. More than that creates noise.
- Skills.sh is your friend: When evaluating candidates, quickly check
https://skills.sh/<owner>/<repo>/<skill-name>for descriptions. - User confirmation at Phase 1 is critical: A wrong decomposition cascades into bad search and bad recommendations. Take 30 seconds to verify.
- Always present both strategies: Users have different priorities — some want the best possible result, others want a lean setup. Let them choose.
- Make the trade-off explicit: The
vs Strategy Acolumn in Strategy B is the most important part of the output. It turns an abstract choice into a concrete comparison. - Breadth and Peak drive strategy selection: High-Breadth skills are MVPs for Strategy B (minimum dependencies); High-Peak skills are essential for Strategy A (maximum quality). Computing both in Phase 3 makes Phase 4 mechanical.
When No Skills Are Found
If a subtask has no relevant skills:
- Flag it in the coverage gaps section
- Offer to help with that subtask directly using general capabilities
- Suggest the user create a custom skill:
npx skills init my-custom-skill - If the entire task has no skills at all, acknowledge it honestly and pivot to direct assistance