skill-curator
git clone https://github.com/Shino-zzz/skill-curator
git clone --depth=1 https://github.com/Shino-zzz/skill-curator ~/.claude/skills/shino-zzz-skill-curator-skill-curator
SKILL.mdSkill Curator — Find the Best Claude Code Skills
Discover the right Skills for any task from 117,000+ options, with quality verification powered by GitHub enrichment.
How It Works
- Analyze your goal and break it into actionable tasks
- Search the SkillsMP database (keyword + AI semantic search)
- Verify each skill's quality via GitHub (stars, freshness, documentation, license)
- Score skills on a 0–100 quality scale
- Present a structured workflow plan with ranked recommendations
What Makes This Different
Unlike basic keyword search, every result is enriched with GitHub data and scored across 4 axes:
| Axis | Weight | What It Measures |
|---|---|---|
| Popularity | 25% | GitHub stars (logarithmic scale) |
| Freshness | 25% | Days since last push |
| Documentation | 35% | SKILL.md quality (frontmatter, description, examples) |
| License | 15% | Open-source license presence |
Prerequisites
Required: Apify MCP configured in your Claude Code environment.
Setup (one-time, ~3 minutes)
-
Get an Apify API token (free tier available)
- Sign up at https://apify.com
- Go to Settings → Integrations → API tokens
- Create a new token and copy it
-
Add Apify MCP to your Claude Code settings
Add the following to your Claude Code MCP settings (
or project-level~/.claude/settings.json
):.claude/settings.json{ "mcpServers": { "apify": { "command": "npx", "args": ["-y", "@apify/actors-mcp-server"], "env": { "APIFY_TOKEN": "apify_api_YOUR_TOKEN_HERE" } } } } -
Restart Claude Code to pick up the new MCP server
Verify Setup
After restarting, you can verify by asking Claude: "List available MCP tools". You should see
mcp__apify__call_actor in the list.
Usage
/skill-curator [your goal]
Examples
/skill-curator Build a REST API with authentication and deploy to AWS /skill-curator 技術書を執筆してPDF出版したい /skill-curator Analyze CSV data and create interactive visualizations /skill-curator Set up a CI/CD pipeline for a monorepo
Pricing
Each search costs approximately $0.15 on your Apify account (Pay-Per-Event billing). A typical invocation runs 1–3 searches depending on goal complexity.
| Goal Complexity | Searches | Estimated Cost |
|---|---|---|
| Simple (single task) | 1 | ~$0.15 |
| Moderate (3-5 tasks) | 1–2 | ~$0.15–$0.30 |
| Complex (6+ tasks) | 2–3 | ~$0.30–$0.45 |
Processing Instructions
When the user invokes this skill with
$ARGUMENTS, follow these steps precisely.
Step 0: Preflight Check
Before searching, confirm Apify MCP is available by checking that you have access to the
mcp__apify__call_actor tool. If the tool is not available, inform the user:
Apify MCP is not configured. Please follow the setup instructions:
- Get a free Apify API token at https://apify.com (Settings → Integrations)
- Add the Apify MCP server to your Claude Code settings (see README for details)
- Restart Claude Code
Need help? See: https://github.com/apify/actors-mcp-server
Do NOT proceed without
mcp__apify__call_actor access.
Step 1: Goal Analysis
Analyze the user's goal:
$ARGUMENTS
Identify:
- Primary objective: The main thing they want to accomplish
- Secondary objectives: Supporting tasks implied by the goal
- Domain: Area this falls into (web dev, data, document, DevOps, etc.)
- Complexity: Simple (1-2 tasks) / Moderate (3-5) / Complex (6-8)
Step 2: Search Query Generation
Based on the analysis, generate 1 to 3 search queries in English:
- Primary query: Broad query covering the main goal (ALWAYS run this)
- Refinement query 1: Targeted at an under-covered sub-task (only if needed)
- Refinement query 2: For a specialized domain aspect (only if needed)
Guidelines for query generation:
- Use English for best results (SkillsMP index is English-dominant)
- Keep queries concise: 3-6 words work best for keyword search
- For complex/nuanced goals, enable AI semantic search (
)includeAiSearch: true - Use domain-specific terms (e.g., "REST API authentication" not "make secure backend")
Step 3: Call Skill Curator Actor
For each query, call the Apify Actor using the
mcp__apify__call_actor tool:
Parameters:
:actorId"C5SaxR8oWbctCy0Ai"
: JSON object with:input
(string, required): The search queryquery
(number, optional, default 10): Max results (1-20)limit
(boolean, optional, default false): Enable AI semantic search for better relevance (adds ~8s latency)includeAiSearch
(number, optional, default 0): Minimum GitHub stars filterminStars
Example call:
mcp__apify__call_actor({ actorId: "C5SaxR8oWbctCy0Ai", input: { "query": "REST API authentication middleware", "limit": 10, "includeAiSearch": true, "minStars": 0 } })
Cost optimization:
- For simple goals: 1 search with
limit: 10 - For moderate goals: 1-2 searches with
limit: 10 - For complex goals: 2-3 searches with
limit: 10-15 - Enable
only when keyword results are likely insufficient (natural language queries, niche domains)includeAiSearch
If multiple searches are needed and they are independent, run them in parallel.
Step 4: Process Enriched Results
The Actor returns enriched results with this structure per item:
{ "name": "skill-name", "author": "author-name", "description": "...", "githubUrl": "https://github.com/...", "skillUrl": "https://skillsmp.com/...", "qualityScore": { "overall": 72, "popularity": 65, "freshness": 80, "documentation": 75, "license": 100 }, "repoMetadata": { "stars": 234, "forks": 12, "openIssues": 3, "license": "MIT", "lastPush": "2026-01-15T...", "topics": ["claude", "skill"] }, "skillMdAnalysis": { "hasFrontmatter": true, "hasName": true, "hasDescription": true, "hasAllowedTools": true, "bodyLength": 2450, "hasExamples": true }, "searchSource": "keyword" }
Processing:
- Aggregate results from all searches
- Deduplicate by
(keep the one with higherauthor/name
)qualityScore.overall - Sort by
descendingqualityScore.overall - Map each result to the user's tasks based on description relevance
Step 5: Skill Selection
For each task in the workflow, select the best skill:
Selection criteria (in order of priority):
- Relevance: Does the skill's description match the task?
- Quality Score: Higher
is betterqualityScore.overall - Documentation:
≥ 50 preferred (well-documented skills)qualityScore.documentation - Freshness:
≥ 60 preferred (actively maintained)qualityScore.freshness - Author:
(official) > well-known authors > othersanthropics
Quality tiers:
- 🟢 80-100: Excellent — highly recommended
- 🟡 50-79: Good — solid choice
- 🟠 30-49: Fair — usable but check before relying on it
- 🔴 0-29: Low — consider alternatives
Step 6: Output Generation
CRITICAL: Language matching rule. Detect the language of the user's original prompt (
$ARGUMENTS). The ENTIRE output — section
headings, table headers, labels, and prose — MUST be written in that same language.
Do NOT copy Japanese labels when the prompt is in English, and vice versa.
Below are two template variants. Use the one matching the detected language. For languages other than English or Japanese, follow the English template structure but translate all labels into the detected language.
Template A: English (use when prompt is in English)
Best Skills for "$ARGUMENTS"
Summary
[1-2 sentence summary of the recommended approach]
Workflow Plan
| # | Task | Recommended Skill | Quality | Stars | Reason | Depends |
|---|---|---|---|---|---|---|
| 1 | [task] | | 🟢 85 | ⭐ N | [brief reason] | - |
| 2 | [task] | | 🟡 62 | ⭐ N | [brief reason] | #1 |
| ... | ... | ... | ... | ... | ... | ... |
Skill Details
1. [skill-name] — Quality: [score]/100
| Metric | Score | Details |
|---|---|---|
| Overall | [score]/100 | [tier emoji] |
| Popularity | [score]/100 | ⭐ [stars] stars |
| Freshness | [score]/100 | Last updated: [date] |
| Documentation | [score]/100 | [frontmatter/description/examples status] |
| License | [score]/100 | [license name or "None"] |
- Author: [author]
- Install: Search "[skill-name]" on SkillsMP or install from GitHub
- Usage:
/[skill-name] [typical arguments] - Description: [description]
[Repeat for each recommended skill]
Alternatives
| Task | Alternative Skill | Quality | Notes |
|---|---|---|---|
| [task] | | [score] | [when to use instead] |
Search Summary
| Item | Value |
|---|---|
| Searches | N |
| Search mode | Keyword / AI / Both |
| Results | N (after dedup) |
| Recommended | N skills |
| Est. cost | ~$X.XX |
Template B: Japanese (use when prompt is in Japanese)
「$ARGUMENTS」に最適なSkills
概要
[1-2 sentence summary of the recommended approach]
Workflow Plan
| # | タスク | 推奨Skill | Quality | Stars | 理由 | 依存 |
|---|---|---|---|---|---|---|
| 1 | [task] | | 🟢 85 | ⭐ N | [brief reason] | - |
| 2 | [task] | | 🟡 62 | ⭐ N | [brief reason] | #1 |
| ... | ... | ... | ... | ... | ... | ... |
Skill Details
1. [skill-name] — Quality: [score]/100
| 指標 | スコア | 詳細 |
|---|---|---|
| Overall | [score]/100 | [tier emoji] |
| Popularity | [score]/100 | ⭐ [stars] stars |
| Freshness | [score]/100 | Last updated: [date] |
| Documentation | [score]/100 | [frontmatter/description/examples status] |
| License | [score]/100 | [license name or "None"] |
- Author: [author]
- Install: Search "[skill-name]" on SkillsMP or install from GitHub
- Usage:
/[skill-name] [typical arguments] - Description: [description]
[Repeat for each recommended skill]
代替オプション
| タスク | 代替Skill | Quality | 備考 |
|---|---|---|---|
| [task] | | [score] | [when to use instead] |
検索サマリー
| 項目 | 値 |
|---|---|
| 検索回数 | N 回 |
| 検索方式 | Keyword / AI / Both |
| ヒット数 | N 件 (重複除外後) |
| 推薦Skill数 | N 件 |
| 推定コスト | ~$X.XX |
Notes
- Quality scores are calculated from real-time GitHub data (stars, last push, SKILL.md quality, license)
- AI semantic search is slower (~8s) but finds more relevant results for natural language queries
- Each search costs ~$0.15 on your Apify account
- This skill does NOT call other skills — it recommends them for you to install and use
Troubleshooting
"mcp__apify__call_actor not available"
- Verify Apify MCP is configured in your Claude Code settings
- Check the server name is "apify" (this determines the tool prefix)
- Restart Claude Code after configuration changes
Actor errors?
- Check your Apify token is valid at https://console.apify.com
- Ensure you have sufficient Apify credits (each run costs ~$0.15)
No relevant results?
- Try rephrasing your goal more specifically
- Enable AI semantic search for better relevance on complex queries
- Use English search terms for broader coverage
Unexpected quality scores?
- Quality scores use real-time GitHub data — scores change as repos are updated
- Skills without GitHub repos get lower scores (no enrichment data available)
- New skills may score low on popularity despite being high quality