| name | skill-index |
| description | Query Claudex's own skill catalog by category, tag, or capability. Use when asked "what skills exist for X", "do we have a skill for Y", "list all backend skills", or when planning multi-step work that might benefit from a skill you didn't load. |
| category | meta |
| tags | ["skill-catalog","jq","discovery","self-tooling","frontmatter"] |
| maturity | beta |
| external_deps | [] |
Skill Index
Claudex ships with 160+ skills. Auto-loading by description matching works well for the common case, but sometimes you need to explicitly enumerate what's available — for planning multi-step work, for answering "do we have anything for X", or for spotting gaps.
This skill teaches you how to query the skill catalog without scanning every SKILL.md by hand.
Quick reference
INDEX=$HOME/.claude-agent/data/skill-index.json
SKILLS_DIR=$HOME/.claude-agent/.claude/skills
Common queries
jq -r '.[] | select(.category == "security") | "\(.name) — \(.description)"' "$INDEX"
jq -r '.[] | select(.tags // [] | index("docker")) | .name' "$INDEX"
jq -r '.[] | select(.maturity == "stable") | .name' "$INDEX"
jq -r '.[] | select((.external_deps // []) | length > 0) | "\(.name): \(.external_deps | join(", "))"' "$INDEX"
jq -r '[.[] | .category] | group_by(.) | map({category: .[0], count: length}) | .[] | "\(.count)\t\(.category)"' "$INDEX" | sort -rn
jq -r --arg q "$KEYWORD" '.[] | select(.description | test($q; "i")) | "\(.name) — \(.description)"' "$INDEX"
When to use
- Planning a complex task — list relevant skills upfront so you don't reinvent
- Answering "what can Claudex do for X" — give the user a real list, not a hand-wave
- Spotting gaps — if a category has only 1 skill, that's a tell
- Audit/maintenance — find all experimental skills to harden, or deprecated ones to remove
Fallback when the index isn't built
If $INDEX doesn't exist yet (skill-index.sh hasn't run), grep frontmatter directly:
grep -l "^category: security" "$SKILLS_DIR"/*/SKILL.md | xargs -n1 dirname | xargs -n1 basename
for f in "$SKILLS_DIR"/*/SKILL.md; do
awk '/^name:/ {name=$2} /^description:/ {sub(/^description: */, ""); print name " — " $0; exit}' "$f"
done
Categories (the 14)
development · frontend · backend · security · research · data · system · comms · writing · productivity · media · trading-finance · home-iot · meta
Rules
- Don't enumerate when you already know. If the user asked a specific question and you know the right skill, just use it — don't list 12 alternatives first.
- Use the index for breadth, descriptions for depth. The index tells you what exists; reading individual SKILL.md tells you how to use it.
- Flag uncategorized skills. If
jq -r '.[] | select(.category == null) | .name' "$INDEX" returns anything, those skills need their frontmatter completed.