agentleFS
Tamircohen28Tamircohen28/tamirs-superpowers/skills/toolkit/find-skill/SKILL.md

find-skill

Skill2 starsChanged 3 months agoMITView on GitHub

Use when the user asks ''find a skill for X'', ''is there a plugin that does Y'', ''what skill should I use for Z'', ''recommend an agent for W'', ''compare skills for ...'', or ''search for a Claude Code skill''. Trigger words: find plugin, mcp server for, skill discovery.

12 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

11 rules. 0 are common, 7 are distinctive, and 4 are very specific to this project.

  • 0

    Common

    Most of the 11 edited versions we read keep these.

  • 7

    Distinctive

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    If the first token after /find-skill is an integer 1–50, treat it as N.

    line 68
  2. Very specific:

    If a source returns 429/5xx or is blocked, log it as a footnote — never silently drop.

    line 111
  3. Very specific:

    If fewer than defaults.min_sources sources are enabled or reachable, still return results but label them degraded and say which sources …

    line 115
  4. Distinctive:

    After the table, add one line explaining the top result's biggest match driver and quality driver.

    line 171
  5. Distinctive:

    After the table, list:

    line 175
  6. Distinctive:

    Never invent a URL: If you cannot find a direct link, drop the candidate.

    line 187
  7. Distinctive:

    Never fabricate star or install counts: If a count is not observable, set that quality component to its baseline (0.5).

    line 188
  8. Distinctive:

    Never rank a paywalled marketplace first: when free/open-source alternatives exist at comparable quality.

    line 189
  9. Distinctive:

    Never fabricate scores: Every number must come from the rubric above — show math in the reasoning if challenged.

    line 192
  10. Distinctive:

    Do not use this skill: when the user already knows the skill name and just wants install instructions — give install instructions directly.

    line 210
  11. Very specific:

    Do not use this skill: when the user wants to *create* a skill — use skill-creator instead.

    line 211

“Common” is measured: kept by at least 6 in 10 of the 11 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

find-skill — real-time search across skill and plugin marketplaces

Why this skill exists

The AI skill ecosystem is fragmented: several registries index MCP servers, and community catalogs each cover different niches. Searching them manually wastes 20–30 minutes per query and misses sources you don't think to check. This skill fans out searches in parallel, normalises the results, and ranks them by both relevance to the query and absolute quality.

The source list is configuration, not part of this skill. Registries appear, get acquired, and go dark; teams have private catalogues; some users do not want a given source queried at all. So find-skill reads its sources from a JSON file it resolves at run time (references/sources.md for the resolution order, references/sources.json for the bundled default) and adding or removing a source never means editing these instructions.

Invocation

/find-skill [N] <description of what you want the skill to do>
  • N (optional, default 10): integer 1–50. Number of results to return.
  • If the first token after /find-skill is an integer 1–50, treat it as N. Otherwise default N=10 and treat the whole string as the query.

Examples:

/find-skill code review for python
/find-skill 5 generate release notes from git commits
/find-skill compare PDFs and find differences

Workflow

Step 1 — Parse the request

Extract:

  1. N — result count (default 10, clamp to 1–50).
  2. Primary intent — a one- or two-word capability label (e.g. "code review", "PDF diff", "release notes").
  3. Constraints — language, framework, harness (Python, Claude Code, MCP, Cursor, etc.).
  4. Disqualifiers — anything explicitly ruled out ("not paid", "no OAuth").

Echo a one-line plan before searching:

Searching 6+ marketplaces for "Python code review skills" — returning top 5 ranked by match + quality.

Step 2 — Load the source list, then fan out in parallel

2a. Resolve sources. Load the first file that exists and parses, per references/sources.md:

  1. $FIND_SKILL_SOURCES (env var pointing at a JSON file)
  2. .find-skill/sources.json (this repo)
  3. ~/.config/find-skill/sources.json (this user)
  4. <skill-dir>/references/sources.json (bundled default)

State which file answered in the opening plan line, so a user with an override can see it took effect.

2b. Select. Query every entry with "enabled": true. Prioritise entries whose covers array matches the query's constraints (an MCP query leads with covers: ["mcp"] sources), but do not exclude the others — a wrongly-narrowed fan-out is the failure mode this skill exists to avoid.

2c. Fan out. Issue all tool calls in a single message. Substitute the parsed intent for {query}, URL-encoded for WebFetch.

If a source returns 429/5xx or is blocked, log it as a footnote — never silently drop. If a WebFetch returns a client-rendered shell with no useful content, retry via that entry's fallback when it has one.

If fewer than defaults.min_sources sources are enabled or reachable, still return results but label them degraded and say which sources were missing. Never quietly return a single-source answer as if it were a survey.

Step 3 — Normalise candidates

For each candidate, extract:

FieldNotes
namecanonical slug or plugin name
descriptionfirst 140 chars, plain text
urldirect link to skill page or repo path
authorrepo owner or vendor name
harnessClaude / Codex / Gemini / MCP-only / universal
starsGitHub star count if available, otherwise omit
last_updateISO date if available

Deduplicate by URL. If the same skill appears in two sources, keep one row and note both sources.

Step 4 — Score every candidate

Match score (0–100) — how well the skill fits the query:

ComponentMaxMeasures
Intent alignment40Does it actually do what was asked?
Name relevance20Key terms in the name
Description overlap20Keyword/synonym overlap
Domain/tag match10Tags match constraints (language, framework)
Capability completeness10Covers all requested sub-features

Quality score (0–10) — absolute quality of the skill:

ComponentMaxMeasures
Author tier3.0Official vendor (3), known team (2), reputable indie (1.5), anonymous (0.5)
Adoption3.0>100k stars (3) … <100 stars (0.5)
Recency2.0Updated <30d (2), <90d (1.5), <180d (1), <365d (0.5), older (0)
Quality artifacts2.0Has docs (+0.5), tests (+0.5), CI (+0.5), responsive issues (+0.5)

Cap match at 100 and quality at 10. Round both to one decimal.

Step 5 — Rank and emit

Sort by match score descending, tiebreak by quality score descending. Take top N.

Output as a markdown table:

| # | Match | Name | Description | Quality | URL |
|---|------:|------|-------------|--------:|-----|
| 1 | 92.5  | wshobson/python-dev | Static analysis + type checking for Python | 8.7 | https://github.com/wshobson/agents/... |
| 2 | 88.0  | mattpocock/tdd | Test-driven development workflow for any language | 8.4 | https://github.com/mattpocock/skills/... |

After the table, add one line explaining the top result's biggest match driver and quality driver.

Step 6 — Surface gaps and caveats

After the table, list:

  • Sources that failed — any marketplace that 429'd or returned no useful content.
  • Near-misses dropped — candidates with match 20–29 that almost made the cut.
  • Trust caveats — if any top-3 result has author tier ≤0.5 or last update >365 days, call it out.

Hard rules

  1. Query every enabled source, and meet defaults.min_sources. Below that floor the result is labelled degraded. Single-source results are never reliable and must never be presented as a survey. 1a. Never hardcode a source in these instructions. Sources live in the resolved JSON file. A registry added here instead of there is invisible to anyone with an override.
  2. Never invent a URL. If you cannot find a direct link, drop the candidate.
  3. Never fabricate star or install counts. If a count is not observable, set that quality component to its baseline (0.5).
  4. Never rank a paywalled marketplace first when free/open-source alternatives exist at comparable quality. Note the paywall explicitly if included.
  5. Cite every result by URL. The user must be able to click straight to the source.
  6. A single 4xx/5xx is not evidence of absence. Failed fetch = failed signal, not "skill doesn't exist."
  7. Never fabricate scores. Every number must come from the rubric above — show math in the reasoning if challenged.

Error handling

SituationAction
Invalid N (negative or >50)Clamp to [1, 50], warn once
Empty query after parsing NAsk one clarifying question, then proceed
All sources blockedReturn WebSearch results + a "degraded" banner
Zero candidates score ≥30Return empty results, list sources searched, suggest broader terms
User wants a private/internal skillNote that the resolved source list is what was searched; point them at references/sources.md to add their internal registry rather than suggesting they search by hand
Resolved sources file is missing or unparseableFall through to the next file in the resolution order; if all fail, use the bundled default and say so
Fewer than min_sources sources reachableReturn results with a degraded banner naming the missing sources

What NOT to do

  • Do not search for npm/pip packages, VS Code extensions, or general software — this skill is scoped to agent skills, MCP servers, and AI plugins.
  • Do not make up marketplace URLs that you aren't sure exist. Use WebSearch to verify before WebFetch.
  • Do not use this skill when the user already knows the skill name and just wants install instructions — give install instructions directly.
  • Do not use this skill when the user wants to create a skill — use skill-creator instead.
  • Do not return results with no URL — a skill recommendation without a link is useless.

Quick reference — when to use which tool

Signal in the queryAction
Specific marketplace namedStart with that source if it is in the resolved list; if it is not, say so and offer to add it via references/sources.md
MCP server mentionedPrioritise sources whose covers includes mcp
A specific harness mentioned (Claude Code, Cursor, Codex, Gemini, OpenCode)Prioritise sources whose covers includes skills/plugins, and record the harness in each candidate's harness field
No harness mentionedSearch all enabled sources equally
Query returns no resultsBroaden: drop constraints one at a time, retry

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.