{"id":"0ec69216-c2c0-46ca-9c40-5726bb73b489","shortId":"wLwbjF","kind":"skill","title":"skill-fetch","tagline":"This skill should be used when the user asks to \"fetch skill\", \"install skill\", \"search for a skill\", or when a hook outputs \"MISSING EXTERNAL SKILL\". Searches 9 registries (SkillsMP, GitHub, Anthropic Skills, ClawSkillHub, skills.sh, PolySkill, SkillHub, Skills Directory) with m","description":"# Skill Fetch\n\nSearch, score, and install agent skills from multiple registries in parallel.\n\n## When to Use\n\n- A skill-eval hook outputs \"MISSING EXTERNAL SKILL\"\n- The current task requires domain expertise not available locally\n- The user asks to \"fetch skill\", \"search for a skill\", or \"install a skill\"\n\n## Critical Rules\n\n1. **Never use `skillsmp_get_skill_content` to preview before deciding** — search descriptions are sufficient. Only use as a fallback if installation fails.\n2. **Stop on first results, continue only on zero** (max 5 rounds) — any round with ≥1 result proceeds to analysis.\n3. **Only the user can decide to skip** — the LLM must never skip installation on its own.\n4. **Always use plain-text interaction** — do not use AskUserQuestion. Output analysis and wait for the user to reply with a number or command.\n5. **Show up to 5 results per page** — with full analysis (content, pros, cons, repo URL) so the user can make an informed decision.\n\n## Platform Compatibility\n\nThis skill works across 6+ AI coding agents (Claude Code, Cursor, Codex, Gemini CLI, Windsurf, Amp). Tool names adapt automatically. See `references/platform-adapters.md` for the full mapping table.\n\n## Procedure\n\n### Step 0: SkillsMP MCP Self-Check (Claude Code only)\n\nBefore searching, verify that the SkillsMP MCP server is available:\n\n1. **First, try loading deferred tools**: Run `ToolSearch(\"skillsmp\")` to load any deferred SkillsMP MCP tools. In Claude Code, MCP tools are often deferred (not loaded until requested) and have namespaced names like `mcp__skillsmp__skillsmp_search`. The `ToolSearch` call resolves these.\n2. After ToolSearch, check if any `skillsmp_*` or `mcp__skillsmp__*` tool is now available\n3. If **available** → proceed to Step 1\n4. If **still not available** → run: `claude mcp add --scope user skillsmp -- npx -y skillsmp-mcp-server`\n5. Inform the user: \"SkillsMP MCP server has been registered. It will be available after restarting the session. Continuing search with the remaining 7 sources for now.\"\n6. Proceed to Step 1 (SkillsMP sources will be skipped this session, but available in future sessions)\n\n> **Tool name note**: SkillsMP tools may appear with MCP namespace prefix: `mcp__skillsmp__skillsmp_search` instead of `skillsmp_search`. Both forms work — use whichever is available.\n\n> **Non-Claude Code agents**: Skip this step. SkillsMP tools are Claude Code-specific.\n\n### Step 0.5: Load API Keys (MANDATORY — execute before Step 2)\n\nSources 8-9 require API keys. Read the config file to determine availability:\n\n1. **Read `~/.claude/skills/.fetch-config.json` NOW** — do not assume keys are absent without reading the file\n2. Expected format:\n   ```json\n   {\n     \"SKILLHUB_API_KEY\": \"sk-sh-...\",\n     \"SKILLS_DIRECTORY_API_KEY\": \"sk_live_...\"\n   }\n   ```\n3. **Record the result** — set two flags for use in Step 2b:\n   - `HAS_SKILLHUB_KEY`: true/false\n   - `HAS_SKILLS_DIR_KEY`: true/false\n4. If config file does not exist → both flags = false, inform user they can create the file\n5. If config file exists but a specific key is missing → that flag = false\n\n> **⚠️ COMMON FAILURE MODE: LLM skips reading the config file and assumes \"no key\". This causes Sources 8-9 to be incorrectly skipped even when keys ARE configured. Always read the file first.**\n\n### Step 1: Determine Search Keywords and Source\n\n**URL mode:** If `$ARGUMENTS` is a URL (starts with `https://github.com/...` or any `https://`), skip directly to Step 3 installation flow.\n\n**Search mode:**\n- **Has `$ARGUMENTS`**: Use directly as search terms\n- **No search terms** (auto-triggered): Prefer `Suggested search terms` from hook output, otherwise extract 2-3 queries from task context\n\n### Step 2: Parallel Search — ALL 9 Sources (mandatory)\n\n**⚠️ MANDATORY: You MUST fire ALL 9 sources. Do NOT proceed to scoring until all 9 sources have returned or failed.**\n\n**⚠️ COMMON FAILURE MODE: LLM fires sources 1-2 (SkillsMP), gets results, then skips sources 3-9. This is WRONG. SkillsMP results alone are insufficient — GitHub, ClawhHub, skills.sh, and PolySkill contain different skills not indexed by SkillsMP.**\n\n**⚠️ EXECUTION ORDER: You MUST complete BOTH Step 2a AND Step 2b before proceeding to Step 2.5. Step 2a alone is NOT sufficient.**\n\n#### Step 2a: Fire SkillsMP sources (1-2)\n\n| # | Source | Tool Call | Fallback |\n|---|--------|-----------|----------|\n| 1 | **SkillsMP AI** | `skillsmp_ai_search` × 3 query variants (parallel) | Skip if MCP unavailable |\n| 2 | **SkillsMP keyword** | `skillsmp_search(query)` | Skip if MCP unavailable |\n\n#### Step 2b: Fire non-SkillsMP sources (3-9) — DO NOT SKIP\n\n**⚠️ You MUST fire these sources even if Step 2a already returned results. These sources contain skills NOT in SkillsMP.**\n\n| # | Source | Tool Call | Fallback |\n|---|--------|-----------|----------|\n| 3 | **GitHub repos** | `gh search repos \"{query}\" --json name,description,url,stargazersCount,updatedAt --limit 5 --sort stars` (do NOT append \"skill SKILL.md\") | `gh search code \"{query}\" --filename SKILL.md --limit 5` |\n| 4 | **Anthropic Skills** | `gh search code \"{query}\" --repo anthropics/skills --filename SKILL.md --limit 5` | `gh api` tree fallback |\n| 5 | **ClawhHub** | `npx -y clawhub search \"{query}\"` | Skip on failure |\n| 6 | **skills.sh** | `WebFetch(\"https://skills.sh/api/search?q={query}&limit=5\")` | `curl -s` via Bash |\n| 7 | **PolySkill** | `npx -y @polyskill/cli search \"{single_keyword}\" --limit 5` (extract most specific single keyword from query — multi-word queries return 0) | Skip on failure (no REST API) |\n| 8 | **SkillHub** | If `HAS_SKILLHUB_KEY` = true (from Step 0.5): `bash {SKILL_BASE_DIR}/scripts/fetch-skillhub.sh \"{query}\"`. If false: `npx -y @skill-hub/cli search \"{query}\" --limit 5` (timeout: 10000) | CLI fallback on failure |\n| 9 | **Skills Directory** | If `HAS_SKILLS_DIR_KEY` = true (from Step 0.5): `bash {SKILL_BASE_DIR}/scripts/fetch-skills-directory.sh \"{query}\"`. If false: skip. **Never use curl directly or WebFetch.** | Skip only if key is confirmed absent in Step 0.5 |\n\n> **⚠️ Sources 8-9 REQUIRE Step 0.5 to have been executed.** If Step 0.5 was skipped, go back and read `~/.claude/skills/.fetch-config.json` NOW before marking Sources 8-9 as skipped. `{SKILL_BASE_DIR}` = the base directory of this skill (shown at the top when skill loads).\n\n> See `references/search-sources.md` for detailed parameters, response formats, query variant examples, and curl fallback commands.\n\n**⚠️ POST-SEARCH CHECKLIST (mandatory before proceeding to Step 2.5):**\n\nBefore scoring, output this checklist with actual status for EVERY source:\n```\nStep 0.5 config: HAS_SKILLHUB_KEY={true/false} HAS_SKILLS_DIR_KEY={true/false}\nSources queried: [1] SkillsMP AI ✅ [2] SkillsMP KW ✅ [3] GitHub ✅/❌ [4] Anthropic ✅/❌ [5] ClawhHub ✅/❌ [6] skills.sh ✅/❌ [7] PolySkill ✅/❌ [8] SkillHub ✅/❌ [9] Skills Dir ✅/❌\n```\n\n**Validation rules — go back and fix before proceeding:**\n- If sources 3-7 are ALL ❌ → re-execute sources 3-7 NOW\n- If `HAS_SKILLHUB_KEY=true` but [8] is ❌ → execute `bash {SKILL_BASE_DIR}/scripts/fetch-skillhub.sh` NOW\n- If `HAS_SKILLS_DIR_KEY=true` but [9] is ❌ → execute `bash {SKILL_BASE_DIR}/scripts/fetch-skills-directory.sh` NOW\n- If Step 0.5 was never executed (no config line above) → read `~/.claude/skills/.fetch-config.json` NOW, then re-evaluate sources 8-9\n\n**After ALL sources return** → deduplicate (see `references/search-sources.md`) → proceed to Step 2.5.\n\n**Round strategy (max 5 rounds):** The \"≥1 result → stop\" rule applies to **rounds**, not individual sources. Within a single round, ALL 9 sources must be queried. Only if ALL 9 sources return 0 results in a round should you proceed to the next round with broader keywords. If any source returns ≥1 result in a round, proceed to scoring (do NOT start another round).\n\n### Step 2.5: Scoring and Ranking\n\nCalculate a quality score (0-100) for each deduplicated result. See `references/quality-signals.md` for details.\n\n**Scoring formula:** `Total = Relevance(0-40) + Freshness(0-25) + Community(0-20) + Trust(0-15) + External Bonus(0-5)`\n\n**Supplementary lookup:** For the top 5 results, use `gh api repos/{owner}/{repo} --jq '{pushed_at,stargazers_count}'` to get update time and GitHub stars. Skip lookup for high-star (≥50) results with precisely matching descriptions. Maximum 3 `gh api` calls.\n\n**Grade labels:** `🟢 85+` Strongly Recommended | `🟢 70-84` Recommended | `🟡 55-69` Worth Considering | `🟡 40-54` Marginal | `🔴 <40` Not Recommended\n\n### Step 3: Analyze, Select, Install\n\nSee `references/installation-guide.md` for the complete installation workflow.\n\n**Quick reference — flow:**\n1. **3a.** Display sorted results (5 per page, score + pros/cons)\n2. **3b.** Wait for user reply (number to install, `c` for next page, `skip` to end)\n3. **3c.** Ask installation location (G=global, L=local) — MANDATORY\n4. **3d.** Execute installation (SkillsMP → trust-but-verify, GitHub → **fetch the full bundle**, not just SKILL.md, then pre-install scan every file). Use `scripts/fetch-skill-bundle.sh` for GitHub URLs.\n5. **3e.** Post-install verification (file existence, frontmatter, conflict check, **bundle completeness**, SHA-256 on every installed file)\n6. **3f.** Update `~/.claude/skills/.fetch-metadata.json`\n7. **3g.** Activate and confirm with user\n\n> **⚠️ Critical:** When installing from GitHub, the skill is its entire directory — `SKILL.md` plus `references/`, `scripts/`, `assets/`, `templates/`, `prompts/`, `data/`, etc. Downloading only `SKILL.md` will produce a broken install for any skill that delegates to those files. Always fetch the complete bundle.\n\n### Step 4: Digest the Installed Bundle\n\nAn installed skill is a **directory**, not a single `SKILL.md`. Many skills split their content across subdirectories — `references/` (docs), `scripts/` (helpers), `assets/`, `templates/`, `prompts/`, `data/`, `examples/`, etc. If you only read `SKILL.md` you may miss instructions the skill author expects you to load on demand.\n\n1. Use Glob to list the full installed tree: `{install-path}/{skill-name}/**/*`.\n2. **Verify bundle completeness.** If SKILL.md references relative paths (`bash scripts/foo.sh`, `See references/bar.md`, `Load assets/template.json`) and those files are missing, the install is incomplete — re-run the GitHub bundle fetch (see `references/installation-guide.md` §3d).\n3. Read files **directly relevant to the current task** (check the first 30 lines for relevance). Don't limit this to `references/` — the relevant file may live under `prompts/`, `templates/`, or another subdir.\n4. Summarize key knowledge for use in subsequent planning.\n\nAfter completion, output: `External skill installed successfully: {skill-name}`\n\n## Completion Phrases\n\n- Success: `External skill installed successfully: {name}`\n- Skipped: `External skill fetch: user chose to skip installation.`\n\n## Additional Resources\n\n> **Rationalization Table and Red Flags** are in `references/interaction-patterns.md`. Consult when rationalizing skipping steps.\n\n- **`references/interaction-patterns.md`** — Output templates, user reply handling, security review\n- **`references/quality-signals.md`** — Quality assessment dimensions, lookup methods, ranking algorithm\n- **`references/search-sources.md`** — Source-specific commands, error handling, deduplication rules\n- **`references/platform-adapters.md`** — Cross-platform tool mapping, installation paths, fallback strategies\n- **`references/installation-guide.md`** — Complete Step 3 installation workflow (3a-3g)\n- **`references/local-index.md`** — Local skill/plugin scan implementation for pre-search deduplication\n- **`scripts/fetch-skillhub.sh`** — SkillHub API search (reads key from `~/.claude/skills/.fetch-config.json`)\n- **`scripts/fetch-skills-directory.sh`** — Skills Directory API search (reads key from config)\n- **`scripts/fetch-skill-bundle.sh`** — Download a complete skill bundle (SKILL.md + all sibling files/subdirs) from any GitHub `blob`/`tree`/`raw` URL, preserving directory layout","tags":["skill","fetch","girofu","agent-skills","ai-coding-agent","claude-code","claude-code-plugin","claude-code-skill","claude-skills","cross-platform","cursor-ai","mcp"],"capabilities":["skill","source-girofu","skill-skill-fetch","topic-agent-skills","topic-ai-coding-agent","topic-claude-code","topic-claude-code-plugin","topic-claude-code-skill","topic-claude-skills","topic-cross-platform","topic-cursor-ai","topic-mcp","topic-skill-discovery","topic-skill-installer"],"categories":["skill-fetch"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/girofu/skill-fetch/skill-fetch","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add girofu/skill-fetch","source_repo":"https://github.com/girofu/skill-fetch","install_from":"skills.sh"}},"qualityScore":"0.461","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 23 github stars · SKILL.md body (12,022 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-24T13:02:24.687Z","embedding":null,"createdAt":"2026-04-18T23:04:42.700Z","updatedAt":"2026-04-24T13:02:24.687Z","lastSeenAt":"2026-04-24T13:02:24.687Z","tsv":"'-100':1212 '-15':1235 '-2':650,707 '-20':1232 '-25':1229 '-256':1394 '-3':610 '-40':1226 '-5':1239 '-54':1295 '-69':1291 '-7':1066,1074 '-84':1288 '-9':432,542,658,744,943,966,1126 '/...':575 '/.claude/skills/.fetch-config.json':445,960,1118,1696 '/.claude/skills/.fetch-metadata.json':1402 '/api/search?q=':833 '/cli':893 '/scripts/fetch-skillhub.sh':884,1089 '/scripts/fetch-skills-directory.sh':920,1105 '0':235,863,1170,1211,1225,1228,1231,1234,1238 '0.5':421,879,915,940,946,953,1021,1109 '1':95,133,254,316,366,443,558,649,706,712,1034,1144,1189,1315,1502 '10000':899 '2':118,296,429,457,609,616,726,1037,1325,1517 '2.5':694,1008,1137,1203 '2a':686,696,702,756 '2b':484,689,737 '3':138,310,473,582,657,718,743,771,1040,1065,1073,1278,1301,1341,1551,1673 '30':1563 '3a':1316,1677 '3a-3g':1676 '3b':1326 '3c':1342 '3d':1352,1550 '3e':1381 '3f':1400 '3g':1404,1678 '4':155,317,494,801,1042,1351,1452,1584 '40':1294,1297 '5':128,180,184,335,511,785,800,813,818,836,850,897,1044,1141,1245,1320,1380 '50':1271 '55':1290 '6':210,362,828,1046,1399 '7':358,841,1048,1403 '70':1287 '8':431,541,870,942,965,1050,1082,1125 '85':1284 '9':31,620,628,637,904,1052,1098,1159,1167 'absent':452,937 'across':209,1472 'activ':1405 'actual':1015 'adapt':224 'add':325 'addit':1620 'agent':51,213,409 'ai':211,714,716,1036 'algorithm':1650 'alon':664,697 'alreadi':757 'alway':156,552,1446 'amp':221 'analysi':137,167,190 'analyz':1302 'anoth':1200,1582 'anthrop':35,802,1043 'anthropics/skills':809 'api':423,434,462,469,815,869,1249,1280,1691,1700 'appear':385 'append':790 'appli':1148 'argument':567,588 'ask':12,81,1343 'askuserquest':165 'assess':1645 'asset':1425,1478 'assets/template.json':1531 'assum':449,535 'author':1495 'auto':598 'auto-trigg':597 'automat':225 'avail':77,253,309,312,321,348,375,404,442 'back':957,1058 'base':882,918,970,973,1087,1103 'bash':840,880,916,1085,1101,1526 'blob':1719 'bonus':1237 'broader':1183 'broken':1436 'bundl':1364,1391,1450,1456,1519,1546,1711 'c':1334 'calcul':1207 'call':293,710,769,1281 'caus':539 'check':240,299,1390,1560 'checklist':1002,1013 'chose':1616 'claud':214,241,271,323,407,416 'clawhhub':668,819,1045 'clawhub':822 'clawskillhub':37 'cli':219,900 'code':212,215,242,272,408,418,795,806 'code-specif':417 'codex':217 'command':179,998,1655 'common':525,643 'communiti':1230 'compat':205 'complet':683,1309,1392,1449,1520,1594,1603,1671,1709 'con':193 'config':438,496,513,532,1022,1114,1705 'configur':551 'confirm':936,1407 'conflict':1389 'consid':1293 'consult':1630 'contain':672,762 'content':101,191,1471 'context':614 'continu':123,353 'count':1257 'creat':508 'critic':93,1410 'cross':1662 'cross-platform':1661 'curl':837,927,996 'current':71,1558 'cursor':216 'data':1428,1481 'decid':105,143 'decis':203 'dedupl':1131,1215,1658,1688 'defer':258,266,277 'deleg':1442 'demand':1501 'descript':107,780,1276 'detail':988,1220 'determin':441,559 'differ':673 'digest':1453 'dimens':1646 'dir':491,883,910,919,971,1029,1054,1088,1094,1104 'direct':579,590,928,1554 'directori':42,468,906,974,1420,1462,1699,1724 'display':1317 'doc':1475 'domain':74 'download':1430,1707 'end':1340 'entir':1419 'error':1656 'etc':1429,1483 'eval':64 'evalu':1123 'even':547,753 'everi':1018,1373,1396 'exampl':994,1482 'execut':426,679,950,1071,1084,1100,1112,1353 'exist':500,515,1387 'expect':458,1496 'expertis':75 'extern':28,68,1236,1596,1606,1612 'extract':608,851 'fail':117,642 'failur':526,644,827,866,903 'fallback':114,711,770,817,901,997,1668 'fals':503,524,887,923 'fetch':3,14,46,83,1361,1447,1547,1614 'file':439,456,497,510,514,533,555,1374,1386,1398,1445,1534,1553,1575 'filenam':797,810 'files/subdirs':1715 'fire':626,647,703,738,750 'first':121,255,556,1562 'fix':1060 'flag':479,502,523,1626 'flow':584,1314 'form':399 'format':459,991 'formula':1222 'fresh':1227 'frontmatt':1388 'full':189,230,1363,1508 'futur':377 'g':1346 'gemini':218 'get':99,652,1259 'gh':774,793,804,814,1248,1279 'github':34,667,772,1041,1263,1360,1378,1414,1545,1718 'github.com':574 'github.com/...':573 'glob':1504 'global':1347 'go':956,1057 'grade':1282 'handl':1640,1657 'helper':1477 'high':1269 'high-star':1268 'hook':25,65,605 'hub':892 'implement':1683 'incomplet':1540 'incorrect':545 'index':676 'individu':1152 'inform':202,336,504 'instal':16,50,90,116,151,583,1304,1310,1333,1344,1354,1371,1384,1397,1412,1437,1455,1458,1509,1512,1538,1598,1608,1619,1666,1674 'install-path':1511 'instead':394 'instruct':1492 'insuffici':666 'interact':161 'jq':1253 'json':460,778 'key':424,435,450,463,470,487,492,519,537,549,875,911,934,1025,1030,1079,1095,1586,1694,1703 'keyword':561,728,848,855,1184 'knowledg':1587 'kw':1039 'l':1348 'label':1283 'layout':1725 'like':286 'limit':784,799,812,835,849,896,1569 'line':1115,1564 'list':1506 'live':472,1577 'llm':147,528,646 'load':257,264,279,422,984,1499,1530 'local':78,1349,1680 'locat':1345 'lookup':1241,1266,1647 'm':44 'make':200 'mandatori':425,622,623,1003,1350 'mani':1467 'map':231,1665 'margin':1296 'mark':963 'match':1275 'max':127,1140 'maximum':1277 'may':384,1490,1576 'mcp':237,250,268,273,287,304,324,333,340,387,390,724,734 'method':1648 'miss':27,67,521,1491,1536 'mode':527,565,586,645 'multi':859 'multi-word':858 'multipl':54 'must':148,625,682,749,1161 'name':223,285,380,779,1516,1602,1610 'namespac':284,388 'never':96,149,925,1111 'next':1180,1336 'non':406,740 'non-claud':405 'non-skillsmp':739 'note':381 'npx':329,820,843,888 'number':177,1331 'often':276 'order':680 'otherwis':607 'output':26,66,166,606,1011,1595,1636 'owner':1251 'page':187,1322,1337 'parallel':57,617,721 'paramet':989 'path':1513,1525,1667 'per':186,1321 'phrase':1604 'plain':159 'plain-text':158 'plan':1592 'platform':204,1663 'plus':1422 'polyskil':39,671,842,1049 'polyskill/cli':845 'post':1000,1383 'post-instal':1382 'post-search':999 'pre':1370,1686 'pre-instal':1369 'pre-search':1685 'precis':1274 'prefer':600 'prefix':389 'preserv':1723 'preview':103 'procedur':233 'proceed':135,313,363,632,691,1005,1062,1134,1177,1194 'produc':1434 'prompt':1427,1480,1579 'pros':192 'pros/cons':1324 'push':1254 'qualiti':1209,1644 'queri':611,719,731,777,796,807,824,834,857,861,885,895,921,992,1033,1163 'quick':1312 'rank':1206,1649 'ration':1622,1632 'raw':1721 're':1070,1122,1542 're-evalu':1121 're-execut':1069 're-run':1541 'read':436,444,454,530,553,959,1117,1487,1552,1693,1702 'recommend':1286,1289,1299 'record':474 'red':1625 'refer':1313,1423,1474,1523,1572 'references/bar.md':1529 'references/installation-guide.md':1306,1549,1670 'references/interaction-patterns.md':1629,1635 'references/local-index.md':1679 'references/platform-adapters.md':227,1660 'references/quality-signals.md':1218,1643 'references/search-sources.md':986,1133,1651 'regist':344 'registri':32,55 'relat':1524 'relev':1224,1555,1566,1574 'remain':357 'repli':174,1330,1639 'repo':194,773,776,808,1250,1252 'request':281 'requir':73,433,944 'resolv':294 'resourc':1621 'respons':990 'rest':868 'restart':350 'result':122,134,185,476,653,663,759,1145,1171,1190,1216,1246,1272,1319 'return':640,758,862,1130,1169,1188 'review':1642 'round':129,131,1138,1142,1150,1157,1174,1181,1193,1201 'rule':94,1056,1147,1659 'run':260,322,1543 'scan':1372,1682 'scope':326 'score':48,634,1010,1196,1204,1210,1221,1323 'script':1424,1476 'scripts/fetch-skill-bundle.sh':1376,1706 'scripts/fetch-skillhub.sh':1689 'scripts/fetch-skills-directory.sh':1697 'scripts/foo.sh':1527 'search':18,30,47,85,106,245,290,354,393,397,560,585,592,595,602,618,717,730,775,794,805,823,846,894,1001,1687,1692,1701 'secur':1641 'see':226,985,1132,1217,1305,1528,1548 'select':1303 'self':239 'self-check':238 'server':251,334,341 'session':352,373,378 'set':477 'sh':466 'sha':1393 'show':181 'shown':978 'sibl':1714 'singl':847,854,1156,1465 'sk':465,471 'sk-sh':464 'skill':2,5,15,17,21,29,36,41,45,52,63,69,84,88,92,100,207,467,490,674,763,791,803,881,891,905,909,917,969,977,983,1028,1053,1086,1093,1102,1416,1440,1459,1468,1494,1515,1597,1601,1607,1613,1698,1710 'skill-ev':62 'skill-fetch':1 'skill-hub':890 'skill-nam':1514,1600 'skill-skill-fetch' 'skill.md':792,798,811,1367,1421,1432,1466,1488,1522,1712 'skill/plugin':1681 'skillhub':40,461,486,871,874,1024,1051,1078,1690 'skills.sh':38,669,829,832,1047 'skills.sh/api/search?q=':831 'skillsmp':33,98,236,249,262,267,288,289,302,305,328,332,339,367,382,391,392,396,413,651,662,678,704,713,715,727,729,741,766,1035,1038,1355 'skillsmp-mcp-serv':331 'skip':145,150,371,410,529,546,578,655,722,732,747,825,864,924,931,955,968,1265,1338,1611,1618,1633 'sort':786,1318 'sourc':359,368,430,540,563,621,629,638,648,656,705,708,742,752,761,767,941,964,1019,1032,1064,1072,1124,1129,1153,1160,1168,1187,1653 'source-girofu' 'source-specif':1652 'specif':419,518,853,1654 'split':1469 'star':787,1264,1270 'stargaz':1256 'stargazerscount':782 'start':571,1199 'status':1016 'step':234,315,365,412,420,428,483,557,581,615,685,688,693,695,701,736,755,878,914,939,945,952,1007,1020,1108,1136,1202,1300,1451,1634,1672 'still':319 'stop':119,1146 'strategi':1139,1669 'strong':1285 'subdir':1583 'subdirectori':1473 'subsequ':1591 'success':1599,1605,1609 'suffici':109,700 'suggest':601 'summar':1585 'supplementari':1240 'tabl':232,1623 'task':72,613,1559 'templat':1426,1479,1580,1637 'term':593,596,603 'text':160 'time':1261 'timeout':898 'tool':222,259,269,274,306,379,383,414,709,768,1664 'toolsearch':261,292,298 'top':981,1244 'topic-agent-skills' 'topic-ai-coding-agent' 'topic-claude-code' 'topic-claude-code-plugin' 'topic-claude-code-skill' 'topic-claude-skills' 'topic-cross-platform' 'topic-cursor-ai' 'topic-mcp' 'topic-skill-discovery' 'topic-skill-installer' 'total':1223 'tree':816,1510,1720 'tri':256 'trigger':599 'true':876,912,1080,1096 'true/false':488,493,1026,1031 'trust':1233,1357 'trust-but-verifi':1356 'two':478 'unavail':725,735 'updat':1260,1401 'updatedat':783 'url':195,564,570,781,1379,1722 'use':8,60,97,111,157,164,401,481,589,926,1247,1375,1503,1589 'user':11,80,141,172,198,327,338,505,1329,1409,1615,1638 'valid':1055 'variant':720,993 'verif':1385 'verifi':246,1359,1518 'via':839 'wait':169,1327 'webfetch':830,930 'whichev':402 'windsurf':220 'within':1154 'without':453 'word':860 'work':208,400 'workflow':1311,1675 'worth':1292 'wrong':661 'y':330,821,844,889 'zero':126","prices":[{"id":"21161893-a95d-4d69-b08b-0d19c537fc7a","listingId":"0ec69216-c2c0-46ca-9c40-5726bb73b489","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"girofu","category":"skill-fetch","install_from":"skills.sh"},"createdAt":"2026-04-18T23:04:42.700Z"}],"sources":[{"listingId":"0ec69216-c2c0-46ca-9c40-5726bb73b489","source":"github","sourceId":"girofu/skill-fetch/skill-fetch","sourceUrl":"https://github.com/girofu/skill-fetch/tree/main/skills/skill-fetch","isPrimary":false,"firstSeenAt":"2026-04-18T23:04:42.700Z","lastSeenAt":"2026-04-24T13:02:24.687Z"}],"details":{"listingId":"0ec69216-c2c0-46ca-9c40-5726bb73b489","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"girofu","slug":"skill-fetch","github":{"repo":"girofu/skill-fetch","stars":23,"topics":["agent-skills","ai-coding-agent","claude-code","claude-code-plugin","claude-code-skill","claude-skills","cross-platform","cursor-ai","mcp","skill-discovery","skill-installer"],"license":"mit","html_url":"https://github.com/girofu/skill-fetch","pushed_at":"2026-04-23T07:45:36Z","description":"Multi-registry skill discovery and installation for AI coding agents — search 9 sources, score, paginate, and install agent skills with security labels","skill_md_sha":"66f4e233649e885fa85ffb7e7ded618cfe2cda5b","skill_md_path":"skills/skill-fetch/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/girofu/skill-fetch/tree/main/skills/skill-fetch"},"layout":"multi","source":"github","category":"skill-fetch","frontmatter":{"name":"skill-fetch","description":"This skill should be used when the user asks to \"fetch skill\", \"install skill\", \"search for a skill\", or when a hook outputs \"MISSING EXTERNAL SKILL\". Searches 9 registries (SkillsMP, GitHub, Anthropic Skills, ClawSkillHub, skills.sh, PolySkill, SkillHub, Skills Directory) with multi-variant search, quality scoring, security labels, pagination, and local/global installation."},"skills_sh_url":"https://skills.sh/girofu/skill-fetch/skill-fetch"},"updatedAt":"2026-04-24T13:02:24.687Z"}}