From f082ef3d87903ba078a36c7cc524d5a362a211ad Mon Sep 17 00:00:00 2001 From: hetaoBackend Date: Sun, 1 Feb 2026 23:54:08 +0800 Subject: [PATCH] feat: add find-skills skill for discovering agent skills Co-Authored-By: Claude Opus 4.5 --- skills/public/find-skills/SKILL.md | 138 ++++++++++++++++++ .../find-skills/scripts/install-skill.sh | 62 ++++++++ 2 files changed, 200 insertions(+) create mode 100644 skills/public/find-skills/SKILL.md create mode 100755 skills/public/find-skills/scripts/install-skill.sh diff --git a/skills/public/find-skills/SKILL.md b/skills/public/find-skills/SKILL.md new file mode 100644 index 0000000..0b3c855 --- /dev/null +++ b/skills/public/find-skills/SKILL.md @@ -0,0 +1,138 @@ +--- +name: find-skills +description: Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill. +--- + +# Find Skills + +This skill helps you discover and install skills from the open agent skills ecosystem. + +## When to Use This Skill + +Use this skill when the user: + +- Asks "how do I do X" where X might be a common task with an existing skill +- Says "find a skill for X" or "is there a skill for X" +- Asks "can you do X" where X is a specialized capability +- Expresses interest in extending agent capabilities +- Wants to search for tools, templates, or workflows +- Mentions they wish they had help with a specific domain (design, testing, deployment, etc.) + +## What is the Skills CLI? + +The Skills CLI (`npx skills`) is the package manager for the open agent skills ecosystem. Skills are modular packages that extend agent capabilities with specialized knowledge, workflows, and tools. + +**Key commands:** + +- `npx skills find [query]` - Search for skills interactively or by keyword +- `npx skills check` - Check for skill updates +- `npx skills update` - Update all installed skills + +**Browse skills at:** https://skills.sh/ + +## How to Help Users Find Skills + +### Step 1: Understand What They Need + +When a user asks for help with something, identify: + +1. The domain (e.g., React, testing, design, deployment) +2. The specific task (e.g., writing tests, creating animations, reviewing PRs) +3. Whether this is a common enough task that a skill likely exists + +### Step 2: Search for Skills + +Run the find command with a relevant query: + +```bash +npx skills find [query] +``` + +For example: + +- User asks "how do I make my React app faster?" → `npx skills find react performance` +- User asks "can you help me with PR reviews?" → `npx skills find pr review` +- User asks "I need to create a changelog" → `npx skills find changelog` + +The command will return results like: + +``` +Install with bash /path/to/skill/scripts/install-skill.sh vercel-labs/agent-skills@vercel-react-best-practices + +vercel-labs/agent-skills@vercel-react-best-practices +└ https://skills.sh/vercel-labs/agent-skills/vercel-react-best-practices +``` + +### Step 3: Present Options to the User + +When you find relevant skills, present them to the user with: + +1. The skill name and what it does +2. The install command they can run +3. A link to learn more at skills.sh + +Example response: + +``` +I found a skill that might help! The "vercel-react-best-practices" skill provides +React and Next.js performance optimization guidelines from Vercel Engineering. + +To install it: +bash /path/to/skill/scripts/install-skill.sh vercel-labs/agent-skills@vercel-react-best-practices + +Learn more: https://skills.sh/vercel-labs/agent-skills/vercel-react-best-practices +``` + +### Step 4: Install the Skill + +If the user wants to proceed, use the `install-skill.sh` script to install the skill and automatically link it to the project: + +```bash +bash /path/to/skill/scripts/install-skill.sh +``` + +For example, if the user wants to install `vercel-react-best-practices`: + +```bash +bash /path/to/skill/scripts/install-skill.sh vercel-labs/agent-skills@vercel-react-best-practices +``` + +The script will install the skill globally to `skills/custom/` + +## Common Skill Categories + +When searching, consider these common categories: + +| Category | Example Queries | +| --------------- | ---------------------------------------- | +| Web Development | react, nextjs, typescript, css, tailwind | +| Testing | testing, jest, playwright, e2e | +| DevOps | deploy, docker, kubernetes, ci-cd | +| Documentation | docs, readme, changelog, api-docs | +| Code Quality | review, lint, refactor, best-practices | +| Design | ui, ux, design-system, accessibility | +| Productivity | workflow, automation, git | + +## Tips for Effective Searches + +1. **Use specific keywords**: "react testing" is better than just "testing" +2. **Try alternative terms**: If "deploy" doesn't work, try "deployment" or "ci-cd" +3. **Check popular sources**: Many skills come from `vercel-labs/agent-skills` or `ComposioHQ/awesome-claude-skills` + +## When No Skills Are Found + +If no relevant skills exist: + +1. Acknowledge that no existing skill was found +2. Offer to help with the task directly using your general capabilities +3. Suggest the user could create their own skill with `npx skills init` + +Example: + +``` +I searched for skills related to "xyz" but didn't find any matches. +I can still help you with this task directly! Would you like me to proceed? + +If this is something you do often, you could create your own skill: +npx skills init my-xyz-skill +``` diff --git a/skills/public/find-skills/scripts/install-skill.sh b/skills/public/find-skills/scripts/install-skill.sh new file mode 100755 index 0000000..b022559 --- /dev/null +++ b/skills/public/find-skills/scripts/install-skill.sh @@ -0,0 +1,62 @@ +#!/bin/bash + +# Install a skill and link it to the project's skills/custom directory +# Usage: ./skills/install-skill.sh +# Example: ./skills/install-skill.sh vercel-labs/agent-skills@vercel-react-best-practices + +set -e + +if [[ -z "$1" ]]; then + echo "Usage: $0 " + echo "Example: $0 vercel-labs/agent-skills@vercel-react-best-practices" + exit 1 +fi + +FULL_SKILL_NAME="$1" + +# Extract skill name (the part after @) +SKILL_NAME="${FULL_SKILL_NAME##*@}" + +if [[ -z "$SKILL_NAME" || "$SKILL_NAME" == "$FULL_SKILL_NAME" ]]; then + echo "Error: Invalid skill format. Expected: owner/repo@skill-name" + exit 1 +fi + +# Find project root by looking for deer-flow.code-workspace +find_project_root() { + local dir="$PWD" + while [[ "$dir" != "/" ]]; do + if [[ -f "$dir/deer-flow.code-workspace" ]]; then + echo "$dir" + return 0 + fi + dir="$(dirname "$dir")" + done + echo "" + return 1 +} + +PROJECT_ROOT=$(find_project_root) + +if [[ -z "$PROJECT_ROOT" ]]; then + echo "Error: Could not find project root (deer-flow.code-workspace not found)" + exit 1 +fi + +SKILL_SOURCE="$HOME/.agents/skills/$SKILL_NAME" +SKILL_TARGET="$PROJECT_ROOT/skills/custom" + +# Step 1: Install the skill using npx +npx skills add "$FULL_SKILL_NAME" -g -y > /dev/null 2>&1 + +# Step 2: Verify installation +if [[ ! -d "$SKILL_SOURCE" ]]; then + echo "Skill '$SKILL_NAME' installation failed" + exit 1 +fi + +# Step 3: Create symlink +mkdir -p "$SKILL_TARGET" +ln -sf "$SKILL_SOURCE" "$SKILL_TARGET/" + +echo "Skill '$SKILL_NAME' installed successfully"