5.0 KiB
| name | description |
|---|---|
| skill-discovery | 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 <plugin>@<marketplace> |
| skills.sh / npx skills CLI | SKILL.md in any GitHub repo | npx skills find <query> |
npx skills add <owner/repo> -g |
| Arbitrary GitHub repos | SKILL.md or marketplace.json | gh search code "SKILL.md <topic>" |
npx skills add <owner/repo> -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:
# Source 1: List marketplaces and inspect their plugins
claude plugin marketplace list
# Source 2: Search skills.sh registry
npx -y skills@latest find "<keywords>" 2>&1 | head -40
# Source 3: GitHub code search for SKILL.md files matching topic
gh search code "SKILL.md <topic>" --limit 10 2>&1
For marketplace plugin details, inspect each marketplace.json:
gh api repos/<owner>/<repo>/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:
claude plugin install <plugin>@<marketplace>
For SKILL.md repos (skills.sh or arbitrary GitHub):
npx -y skills@latest add <owner/repo> -g -y
For new marketplaces (repo has .claude-plugin/marketplace.json):
claude plugin marketplace add <owner/repo>
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 <name> 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
# Marketplace management
claude plugin marketplace list
claude plugin marketplace add <owner/repo>
claude plugin marketplace remove <name>
claude plugin install <plugin>@<marketplace>
claude plugin list
# skills.sh CLI
npx -y skills@latest find [query] # Interactive search
npx -y skills@latest add <repo> -g # Install global
npx -y skills@latest add <repo> --list # Preview without installing
npx -y skills@latest list # List installed
npx -y skills@latest remove <skill> # Uninstall
# GitHub discovery
gh search code "SKILL.md <topic>" --limit 10
gh search repos "claude skill <topic>" --limit 10
gh api repos/<owner>/<repo>/contents/.claude-plugin/marketplace.json