Skip to content

Commit 8dd7abb

Browse files
authored
feat(please-plugins): add find-plugin skill for marketplace discovery (#156)
* feat(please-plugins): add find-plugin skill for marketplace discovery Searches marketplace.json catalog and installed plugin skill files to recommend relevant plugins based on user queries. * chore: apply AI code review suggestions for find-plugin skill * chore: apply AI code review suggestions Make skill search case-insensitive by adding -i flag to grep command in find-plugin SKILL.md
1 parent 2a7b8e6 commit 8dd7abb

1 file changed

Lines changed: 118 additions & 0 deletions

File tree

  • plugins/please-plugins/skills/find-plugin
Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
---
2+
name: Find Plugin
3+
description: Helps users discover and install Claude Code plugins from the pleaseai marketplace. Use this skill whenever a user asks "how do I do X", "find a plugin for X", "is there a plugin that can...", "recommend a plugin", "what plugins are available", wants to extend Claude Code capabilities, or mentions a technology/framework and could benefit from a plugin they haven't installed yet. Also use when the user is stuck on a task that an available plugin could solve, even if they don't explicitly ask for a plugin.
4+
allowed-tools: Bash, Read, Glob, Grep
5+
---
6+
7+
# Find Plugin
8+
9+
Search the pleaseai marketplace to discover and recommend Claude Code plugins that match the user's needs.
10+
11+
## How It Works
12+
13+
The marketplace provides two layers of discovery:
14+
15+
1. **Plugin catalog** — the marketplace manifest lists every available plugin with its name, description, category, and keywords.
16+
2. **Skill index** — installed plugins expose skills (SKILL.md files) that describe specific capabilities in detail. Searching skill descriptions surfaces more precise matches than plugin metadata alone.
17+
18+
## Step 1: Read the Marketplace Catalog
19+
20+
```bash
21+
cat ~/.claude/plugins/marketplaces/pleaseai/.claude-plugin/marketplace.json
22+
```
23+
24+
Parse the `plugins` array. Each entry contains:
25+
- `name` — plugin identifier (used in install command)
26+
- `description` — what the plugin does
27+
- `category` — broad domain (framework, tooling, database, ai, etc.)
28+
- `keywords` — searchable tags
29+
30+
## Step 2: Search Installed Plugin Skills
31+
32+
Skills offer richer descriptions than the top-level plugin metadata. Scan skill files for matches:
33+
34+
```bash
35+
# List all available skill directories
36+
find ~/.claude/plugins/marketplaces/pleaseai/plugins/*/skills -maxdepth 1 -type d 2>/dev/null
37+
38+
# Search skill descriptions for the user's query terms (covers both skills/ and .agents/skills/ layouts)
39+
grep -rilFi "<search-terms>" ~/.claude/plugins/marketplaces/pleaseai/plugins/*/{skills,.agents/skills}/*/SKILL.md 2>/dev/null
40+
```
41+
42+
Read the SKILL.md frontmatter (`name` and `description` fields) of matching skills to understand what each one provides.
43+
44+
## Step 3: Match and Rank
45+
46+
Score each plugin against the user's query:
47+
48+
1. **Direct keyword match** — plugin name, keywords, or category directly matches the query
49+
2. **Skill-level match** — a skill description within the plugin matches the query
50+
3. **Semantic match** — the plugin's description addresses the user's underlying need even without exact keyword overlap
51+
52+
Prioritize plugins that solve the user's immediate problem over tangentially related ones. Deduplicate the combined results from Step 1 and Step 2 before ranking — the same plugin may appear in both the catalog and skill search.
53+
54+
## Step 4: Present Recommendations
55+
56+
For each recommended plugin, show:
57+
58+
```
59+
**{plugin-name}** — {description}
60+
Category: {category}
61+
Install: claude plugin install {plugin-name}@pleaseai
62+
```
63+
64+
Group results by relevance:
65+
- **Best matches** — directly address the user's need
66+
- **Related** — might be useful depending on context
67+
68+
If a plugin is already installed, indicate that:
69+
```
70+
**{plugin-name}** (installed) — {description}
71+
```
72+
73+
Check installed status from the installed plugins registry:
74+
```bash
75+
jq -r '.plugins | keys[]' ~/.claude/plugins/installed_plugins.json
76+
```
77+
78+
Check if `{plugin-name}@pleaseai` appears in the output. A plugin is installed if its key exists in this file.
79+
80+
## Step 5: Offer Installation
81+
82+
After presenting recommendations, offer to install:
83+
84+
> "Want me to install any of these? Just say which ones."
85+
86+
Install with:
87+
```bash
88+
claude plugin install {plugin-name}@pleaseai
89+
```
90+
91+
## When No Plugin Exists
92+
93+
If no plugin matches the user's need:
94+
95+
1. Say so clearly — don't force a bad match
96+
2. Offer to help directly with the task using available tools
97+
3. If the need is common enough, suggest it could become a plugin
98+
99+
## Plugin Categories
100+
101+
Quick reference for the types of plugins available:
102+
103+
| Category | Examples |
104+
|----------|----------|
105+
| **Framework** | nuxt, vue, react, next, vitepress, slidev, tiptap |
106+
| **Mobile** | flutter, react-native |
107+
| **Database** | prisma, supabase, mcp-neo4j |
108+
| **Tooling** | vite, pnpm, turborepo, tsdown, gatekeeper, ast-grep |
109+
| **AI** | nanobanana, ai-sdk, mastra, gemini |
110+
| **Monitoring** | grafana, sentry, posthog |
111+
| **Cloud/Deploy** | firebase, vercel |
112+
| **Payments** | stripe, tosspayments, revenuecat |
113+
| **Browser** | chrome-devtools-mcp, agent-browser, playwright-cli |
114+
| **Productivity** | google-workspace, notion |
115+
| **Security** | gemini-cli-security |
116+
| **Review** | code-review, cubic |
117+
| **Document** | markitdown, edgeparse, fetch |
118+
| **Development** | plugin-dev, mcp-dev, please-plugins, git-ai |

0 commit comments

Comments
 (0)