diff --git a/CHANGELOG.md b/CHANGELOG.md index 9897c54..c15f3e6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## [Unreleased] + +### Fixed + +- Corrected ClawHub naming in search-source documentation and aligned the detailed source order with the 9-source table. +- Added ClawHub query guidance for exact package names and broader OpenClaw plugin or agent-tool task terms. +- Fixed README API key setup anchors so local Markdown link checks pass. + ## [1.4.2] - 2026-04-23 ### Fixed diff --git a/README.md b/README.md index 6fc95ca..a75584f 100644 --- a/README.md +++ b/README.md @@ -12,12 +12,12 @@ Search, score, and install AI agent skills from **9 registries** in parallel — ## Quick Start 1. **Install** — pick any method from [Installation](#installation) below -2. **Set up API keys** — run `/fetch-skill-config` (interactive, recommended) or [configure manually](#️-setup-api-keys) +2. **Set up API keys** — run `/fetch-skill-config` (interactive, recommended) or [configure manually](#setup-api-keys) 3. **Search & install skills** — `/fetch-skill react native animation` ## Features -- **9 Search Sources** — SkillsMP (semantic + keyword), GitHub, Anthropic Skills, ClawSkillHub, skills.sh, PolySkill, SkillHub, Skills Directory +- **9 Search Sources** — SkillsMP (semantic + keyword), GitHub, Anthropic Skills, ClawHub, skills.sh, PolySkill, SkillHub, Skills Directory - **Cross-Platform** — Works on 6+ AI coding agents with automatic tool adaptation - **Multi-Variant AI Search** — 3 query variants fired in parallel, improving recall significantly - **Quality Scoring** — 0-100 composite score: Relevance (40) + Freshness (25) + Community (20) + Trust (15) + External Bonus (5) @@ -93,7 +93,7 @@ cp -r skill-fetch/skills/skill-fetch ~/.cursor/skills/skill-fetch # Other agents: replace ~/.cursor/ with ~/.codex/, ~/.gemini/, ~/.windsurf/, or ~/.amp/ ``` -## ⚙️ Setup API Keys +## Setup API Keys > **Important:** API keys unlock the full 9-source search. Without them, only Sources 3-8 are available (still useful, but fewer results). @@ -186,7 +186,7 @@ In other agents, the skill activates automatically when referenced in context. └───────┬───────┘ └────────┬────────┘ │ │ ┌───────┴───────┐ ┌───────┴────────┐ - │ ClawSkillHub │ │ skills.sh │ + │ ClawHub │ │ skills.sh │ └───────┬───────┘ └───────┬────────┘ │ │ ┌───────┴───────┐ ┌───────┴────────┐ @@ -229,7 +229,7 @@ In other agents, the skill activates automatically when referenced in context. | 2 | SkillsMP (keyword) | `skillsmp_search` MCP | Primary | Claude Code + MCP | | 3 | GitHub | `gh search code --filename SKILL.md` (primary) + `gh search repos` (supplementary) | Primary | All agents | | 4 | Anthropic Skills | `gh search code` in `anthropics/skills` | Official | All agents | -| 5 | ClawSkillHub | `npx -y clawhub search` | Supplementary | Agents with npx | +| 5 | ClawHub | `npx -y clawhub search` | Supplementary | Agents with npx | | 6 | skills.sh | HTTP API / WebFetch | Supplementary | All agents | | 7 | PolySkill | `npx -y @polyskill/cli search` (single keyword) | Supplementary | Agents with npx | | 8 | SkillHub | Bundled shell script (API) or CLI fallback | Supplementary | All agents | @@ -239,7 +239,7 @@ All sources are searched **in parallel**. Sources fail gracefully — if any is ## API Key Setup -> See [⚙️ Setup API Keys](#️-setup-api-keys) above for detailed instructions. +> See [Setup API Keys](#setup-api-keys) above for detailed instructions. ## Quality Scoring @@ -336,7 +336,7 @@ skill-fetch/ **Full experience (Claude Code):** - SkillsMP MCP server + API key from [skillsmp.com](https://skillsmp.com) (see [API Key Setup](#api-key-setup)) - GitHub CLI (`gh`) for GitHub and Anthropic Skills search -- Node.js for npx-based searches (ClawSkillHub, PolySkill, SkillHub CLI) +- Node.js for npx-based searches (ClawHub, PolySkill, SkillHub CLI) - `~/.claude/skills/.fetch-config.json` for SkillHub and Skills Directory APIs (optional) ## Author diff --git a/skills/skill-fetch/SKILL.md b/skills/skill-fetch/SKILL.md index 66f4e23..5ed07f1 100644 --- a/skills/skill-fetch/SKILL.md +++ b/skills/skill-fetch/SKILL.md @@ -3,7 +3,7 @@ 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, + Searches 9 registries (SkillsMP, GitHub, Anthropic Skills, ClawHub, skills.sh, PolySkill, SkillHub, Skills Directory) with multi-variant search, quality scoring, security labels, pagination, and local/global installation. allowed-tools: ["Bash", "Read", "Write", "Edit", "Glob", "WebFetch", "shell", "read_file", "write_file", "execute_command", "fetch", "curl"] @@ -80,7 +80,7 @@ Sources 8-9 require API keys. Read the config file to determine availability: **⚠️ MANDATORY: You MUST fire ALL 9 sources. Do NOT proceed to scoring until all 9 sources have returned or failed.** -**⚠️ 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.** +**⚠️ 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, ClawHub, skills.sh, and PolySkill contain different skills not indexed by SkillsMP.** **⚠️ EXECUTION ORDER: You MUST complete BOTH Step 2a AND Step 2b before proceeding to Step 2.5. Step 2a alone is NOT sufficient.** @@ -99,7 +99,7 @@ Sources 8-9 require API keys. Read the config file to determine availability: |---|--------|-----------|----------| | 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` | | 4 | **Anthropic Skills** | `gh search code "{query}" --repo anthropics/skills --filename SKILL.md --limit 5` | `gh api` tree fallback | -| 5 | **ClawhHub** | `npx -y clawhub search "{query}"` | Skip on failure | +| 5 | **ClawHub** | `npx -y clawhub search "{query}"` | Skip on failure | | 6 | **skills.sh** | `WebFetch("https://skills.sh/api/search?q={query}&limit=5")` | `curl -s` via Bash | | 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) | | 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 | @@ -114,7 +114,7 @@ Sources 8-9 require API keys. Read the config file to determine availability: Before scoring, output this checklist with actual status for EVERY source: ``` Step 0.5 config: HAS_SKILLHUB_KEY={true/false} HAS_SKILLS_DIR_KEY={true/false} -Sources queried: [1] SkillsMP AI ✅ [2] SkillsMP KW ✅ [3] GitHub ✅/❌ [4] Anthropic ✅/❌ [5] ClawhHub ✅/❌ [6] skills.sh ✅/❌ [7] PolySkill ✅/❌ [8] SkillHub ✅/❌ [9] Skills Dir ✅/❌ +Sources queried: [1] SkillsMP AI ✅ [2] SkillsMP KW ✅ [3] GitHub ✅/❌ [4] Anthropic ✅/❌ [5] ClawHub ✅/❌ [6] skills.sh ✅/❌ [7] PolySkill ✅/❌ [8] SkillHub ✅/❌ [9] Skills Dir ✅/❌ ``` **Validation rules — go back and fix before proceeding:** diff --git a/skills/skill-fetch/references/search-sources.md b/skills/skill-fetch/references/search-sources.md index e69d90f..2011e07 100644 --- a/skills/skill-fetch/references/search-sources.md +++ b/skills/skill-fetch/references/search-sources.md @@ -48,15 +48,33 @@ gh search repos "{query}" --json name,description,url,stargazersCount,updatedAt Run both commands in parallel. If code search returns collection repos (e.g., awesome-agent-skills), use `gh api` to search their tree for SKILL.md files containing `{query}`. -## Source 4: ClawSkillHub +## Source 4: Anthropic Skills (GitHub) + +Search the official Anthropic skills repo ([github.com/anthropics/skills](https://github.com/anthropics/skills)). Skip silently if the repo is unavailable or the command fails. + +```bash +gh search code "{query}" --repo anthropics/skills --filename SKILL.md --json path,repository --limit 5 +``` + +**Fallback** (if `gh search code` is unavailable): +```bash +gh api repos/anthropics/skills/git/trees/main?recursive=1 --jq '.tree[].path | select(test("SKILL.md$"))' +``` +Then filter paths by `{query}` keyword match. + +**Response format:** Path list, each corresponding to a skill (e.g., `skills/pdf/SKILL.md`). + +## Source 5: ClawHub ```bash npx -y clawhub search "{query}" ``` -Returns slug, description. Skip this source if npx fails. +Returns slug and description. Skip this source if npx fails. + +Run exact package names and broader task terms when the user asks for an OpenClaw plugin or agent tool. For example, try both `@xquik/tweetclaw` and `tweet scraper`, or both `OpenClaw plugin` and the package name supplied by the user. -## Source 5: skills.sh +## Source 6: skills.sh **WebFetch (preferred):** ``` @@ -72,22 +90,6 @@ Skip this source if the API returns an error or times out. curl -s "https://skills.sh/api/search?q={query}&limit=5" ``` -## Source 6: Anthropic Skills (GitHub) - -Search the official Anthropic skills repo ([github.com/anthropics/skills](https://github.com/anthropics/skills)). Skip silently if the repo is unavailable or the command fails. - -```bash -gh search code "{query}" --repo anthropics/skills --filename SKILL.md --json path,repository --limit 5 -``` - -**Fallback** (if `gh search code` is unavailable): -```bash -gh api repos/anthropics/skills/git/trees/main?recursive=1 --jq '.tree[].path | select(test("SKILL.md$"))' -``` -Then filter paths by `{query}` keyword match. - -**Response format:** Path list, each corresponding to a skill (e.g., `skills/pdf/SKILL.md`). - ## Source 7: PolySkill > **Note:** PolySkill has no public REST API. Use CLI as the only method.