--- name: skill-discovery description: Use proactively when the user describes a need that an existing skill might solve, asks "is there a skill for X", asks to "find/install/propose a skill", or expresses interest in capabilities Claude doesn't currently have. This skill teaches Claude to search across plugin marketplaces, the skills.sh registry, and arbitrary GitHub repos, then propose matches and install them with approval. --- # Skill Discovery & Installation ## When to Use Trigger this skill whenever: - User says "find a skill that...", "is there a skill for...", "install a skill...", "propose skills..." - User describes a capability gap ("I wish Claude could X", "how do I do X") - User mentions a tool/framework where a specialized skill would help - A task would clearly benefit from a skill that isn't currently loaded Do **not** trigger when the user already has the relevant skill loaded — invoke that skill instead. ## Three Sources to Search | Source | Format | Search Method | Install Method | |---|---|---|---| | **Plugin marketplaces** (10 registered) | `marketplace.json` | `claude plugin marketplace list` + inspect each | `claude plugin install @` | | **skills.sh / npx skills CLI** | SKILL.md in any GitHub repo | `npx skills find ` | `npx skills add -g` | | **Arbitrary GitHub repos** | SKILL.md or marketplace.json | `gh search code "SKILL.md "` | `npx skills add -g` or marketplace add | ## Workflow ### 1. Understand the need Confirm what capability the user wants. If vague, ask one clarifying question. ### 2. Search all three sources in parallel Run these in a single message with multiple Bash tool calls: ```bash # Source 1: List marketplaces and inspect their plugins claude plugin marketplace list # Source 2: Search skills.sh registry npx -y skills@latest find "" 2>&1 | head -40 # Source 3: GitHub code search for SKILL.md files matching topic gh search code "SKILL.md " --limit 10 2>&1 ``` For marketplace plugin details, inspect each marketplace.json: ```bash gh api repos///contents/.claude-plugin/marketplace.json --jq '.content' | base64 -d ``` ### 3. Propose matches to the user Present findings as a short table: | # | Skill | Source | What it does | Install command | |---|---|---|---|---| | 1 | name | marketplace/repo | one-line description | exact command | **Always ask for approval before installing** (per user preference). Use `AskUserQuestion` if 2-4 candidates, plain prose if 1. ### 4. Install with approval Default install scope: **global** (`~/.claude/skills/` or user-level marketplace). For marketplace plugins: ```bash claude plugin install @ ``` For SKILL.md repos (skills.sh or arbitrary GitHub): ```bash npx -y skills@latest add -g -y ``` For new marketplaces (repo has `.claude-plugin/marketplace.json`): ```bash claude plugin marketplace add ``` ### 5. Activate and use After install, tell user to run `/reload-plugins` (or restart) if it's a plugin. SKILL.md skills installed via `npx skills` are picked up on next session. If the skill was needed for the current task, complete the install, ask user to reload, then invoke it on next turn. ## Verification Checklist Before reporting "done": - [ ] Searched all 3 sources (not just one) - [ ] Showed user what was found before installing - [ ] Got approval (explicit or via AskUserQuestion) - [ ] Verified install succeeded (check command exit code + output) - [ ] Told user how to activate (reload vs auto-pickup) ## Common Patterns **User: "find me a skill for X"** → Search all 3, propose top matches with install commands, ask which to install. **User: "install a skill that does Y"** → Search, propose 1-3 candidates, ask which one (or "the recommended one"). **User: "is there a skill for Z?"** → Search, report yes/no with details. Offer to install if found. **User describes a task without mentioning skills** → If a skill would clearly help, mention it briefly: "There's a skill called `` that does this — want me to install it?" Don't be pushy. ## Anti-Patterns - ❌ Installing without approval (user preference: always ask) - ❌ Searching only one source - ❌ Proposing skills the user already has loaded - ❌ Installing project-scoped when global was requested - ❌ Forgetting to tell user about reload step ## Available Tools Reference ```bash # Marketplace management claude plugin marketplace list claude plugin marketplace add claude plugin marketplace remove claude plugin install @ claude plugin list # skills.sh CLI npx -y skills@latest find [query] # Interactive search npx -y skills@latest add -g # Install global npx -y skills@latest add --list # Preview without installing npx -y skills@latest list # List installed npx -y skills@latest remove # Uninstall # GitHub discovery gh search code "SKILL.md " --limit 10 gh search repos "claude skill " --limit 10 gh api repos///contents/.claude-plugin/marketplace.json ```