Skill Discovery & Pre-Install Check
Combined entry point for finding skills on GitHub and for evaluating a specific skill (URL or local path) before installing it.
Overview
Replaces the v1.2 split between
and
. The dispatcher picks the right mode from the argument shape. Search results are relevance-gated (a repo must carry a skill signal in its name/description/topics) and ranked by relevance before stars, so generic mega-repos don't crowd out actual skills.
| Argument | Mode | What runs |
|---|
| Keyword(s) like or | Discovery | — find matching skills on GitHub |
| Comparison | — find alternatives to a local skill |
Full URL: https://github.com/user/skill
| Pre-install check | — analyze before installing |
| Short repo: | Pre-install check | (auto-expanded to URL) |
| Local path: | Pre-install check | (local folder) |
Prerequisites
- Claude Code with the skills-janitor plugin installed (provides , , , )
- bash 3.2+ and
- Network access to (anonymous OK; set for higher rate limits and code search)
Instructions
Step 1: Dispatch on argument shape
bash
bash ~/.claude/skills/skills-janitor/scripts/discover.sh <query-or-url> [options]
Examples:
- — search for SEO-related skills
discover.sh n8n --limit 20
— top 20 n8n skills
discover.sh --compare marketing-seo-audit
— alternatives to a local skill
discover.sh https://github.com/user/my-skill
— check before installing
discover.sh user/my-skill
— same, short form
Step 2: Present results per mode
Discovery mode — ranked list of GitHub repos with skill name, description, stars, last updated, and a one-line verdict.
Pre-install mode — overlap analysis: which of the user's existing skills (including plugin skills) overlap with the candidate by description, and a recommendation to install / skip / replace.
Output
Discovery: a numbered table (repository, stars, updated, INSTALLED/AVAILABLE status). Pre-install: overlap buckets (HIGH ≥60%, MODERATE 30–59%, LOW <30%) with shared keywords and a final verdict line (
/
/
).
Error Handling
-
Error:
GitHub API rate limit exceeded
Solution: Set the
environment variable (any classic token, no scopes needed) and re-run; anonymous search allows only a few requests per minute.
-
Error:
Could not fetch SKILL.md from <url>
Solution: The repo keeps its SKILL.md at a non-standard path — pass a direct URL to the SKILL.md file, or a local clone path instead.
-
Error: No results for a valid topic
Solution: The relevance gate drops repos without any skill signal. Broaden the keyword (e.g.
→
) or check the cached results note — results are cached for 24h in
.
Examples
Example 1: Find skills by topic
Input: "Find me an n8n skill."
Output: Run
, present the ranked table, and flag any result already installed.
Example 2: Check before installing
Input: "Is github.com/user/seo-helper worth installing?"
Output: Run
discover.sh https://github.com/user/seo-helper
, then summarize: overlap with existing skills, the verdict (e.g. "MODERATE_OVERLAP — 45% with marketing-skills:seo-audit"), and a recommendation.
Resources
- Dispatcher (plugin-relative):
{baseDir}/../../scripts/discover.sh
- Search cache: (24h TTL)
- — health check of currently installed skills
- — are existing skills earning their context cost
- — fix issues with installed skills