Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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).

Expand Down Expand Up @@ -186,7 +186,7 @@ In other agents, the skill activates automatically when referenced in context.
└───────┬───────┘ └────────┬────────┘
│ │
┌───────┴───────┐ ┌───────┴────────┐
ClawSkillHub │ │ skills.sh │
ClawHub │ │ skills.sh │
└───────┬───────┘ └───────┬────────┘
│ │
┌───────┴───────┐ ┌───────┴────────┐
Expand Down Expand Up @@ -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 |
Expand All @@ -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

Expand Down Expand Up @@ -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
Expand Down
8 changes: 4 additions & 4 deletions skills/skill-fetch/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -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"]
Expand Down Expand Up @@ -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.**

Expand All @@ -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 |
Expand All @@ -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:**
Expand Down
40 changes: 21 additions & 19 deletions skills/skill-fetch/references/search-sources.md
Original file line number Diff line number Diff line change
Expand Up @@ -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):**
```
Expand All @@ -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.
Expand Down