
external-skills
by markky21
Personal Claude Code marketplace with skills, agents, commands, and hooks
SKILL.md
name: external-skills description: Reference for bundling and conditionally activating external skills from other repositories
External Skills
Bundle skills from other repositories into your plugin with conditional activation based on project context.
Overview
External skills allow you to:
- Bundle skills from other GitHub repositories into your plugin
- Conditionally activate them based on project type (React, Python, etc.)
- Install once, use everywhere - skills auto-activate when conditions match
Quick Reference
| Feature | Description |
|---|---|
| Source Format | owner/repo (GitHub) |
| Condition Types | any (OR), all (AND) |
| Rule Types | files, dependencies, devDependencies |
| Skills Selection | "*" (all) or ["skill1", "skill2"] |
Configuration Schema
Basic Structure
{
"externalSkills": [
{
"source": "owner/repo",
"description": "What this skill provides",
"skills": "*",
"condition": { ... }
}
]
}
Full Schema
{
"externalSkills": [
{
"source": "string", // Required: GitHub repo "owner/repo"
"description": "string", // Optional: Human-readable description
"skills": "*" | ["array"], // Optional: "*" for all, or specific skill names
"condition": { // Optional: When to activate (always if omitted)
"type": "any" | "all", // "any" = OR logic, "all" = AND logic
"rules": [
{ "files": ["glob patterns"] },
{ "dependencies": ["package names"] },
{ "devDependencies": ["package names"] }
]
}
}
]
}
Condition Rules
File-Based Conditions
Activate when specific files exist in the project:
{ "files": ["next.config.*", "next.config.ts", "next.config.js"] }
Common patterns:
- Next.js:
["next.config.*"] - TypeScript:
["tsconfig.json"] - Python:
["requirements.txt", "pyproject.toml"] - Rust:
["Cargo.toml"] - Go:
["go.mod"]
Dependency-Based Conditions
Activate when packages are in package.json dependencies:
{ "dependencies": ["react", "next"] }
DevDependency-Based Conditions
Activate when packages are in package.json devDependencies:
{ "devDependencies": ["typescript", "@types/react"] }
Combining Rules
Any (OR) - Default:
{
"type": "any",
"rules": [
{ "files": ["next.config.*"] },
{ "dependencies": ["next"] }
]
}
Activates if next.config.* exists OR next is a dependency.
All (AND):
{
"type": "all",
"rules": [
{ "files": ["tsconfig.json"] },
{ "dependencies": ["react"] }
]
}
Activates only if tsconfig.json exists AND react is a dependency.
Common Templates
React/Next.js Projects
{
"source": "vercel-labs/agent-skills",
"description": "Vercel AI SDK skills for React and Next.js",
"skills": "*",
"condition": {
"type": "any",
"rules": [
{ "files": ["next.config.*", "next.config.ts", "next.config.js", "next.config.mjs"] },
{ "dependencies": ["next", "react"] },
{ "devDependencies": ["next", "react"] }
]
}
}
TypeScript Projects
{
"source": "example/typescript-skills",
"description": "TypeScript development skills",
"skills": "*",
"condition": {
"type": "any",
"rules": [
{ "files": ["tsconfig.json", "tsconfig.*.json"] },
{ "devDependencies": ["typescript"] }
]
}
}
Python Projects
{
"source": "example/python-skills",
"description": "Python development skills",
"skills": "*",
"condition": {
"type": "any",
"rules": [
{ "files": ["requirements.txt", "pyproject.toml", "setup.py", "Pipfile", "poetry.lock"] }
]
}
}
Node.js Projects (Any)
{
"source": "example/node-skills",
"description": "Node.js development skills",
"skills": "*",
"condition": {
"type": "any",
"rules": [
{ "files": ["package.json"] }
]
}
}
Always Active (No Condition)
{
"source": "example/general-skills",
"description": "General development skills",
"skills": "*"
}
Selecting Specific Skills
Instead of importing all skills with "*", you can select specific ones:
{
"source": "vercel-labs/agent-skills",
"skills": ["nextjs-app-router", "react-server-components"],
"condition": { ... }
}
How It Works
digraph ExternalSkillsFlow {
rankdir=TB;
node [shape=box, style=rounded];
A[Plugin Loaded] -> B{Has externalSkills?};
B -- No --> C[Use local skills only];
B -- Yes --> D[Check each external skill];
D -> E{Has condition?};
E -- No --> F[Always activate];
E -- Yes --> G[Evaluate rules];
G -> H{type = any?};
H -- Yes --> I[OR: Any rule matches?];
H -- No --> J[AND: All rules match?];
I -- Yes --> F;
I -- No --> K[Skip this skill];
J -- Yes --> F;
J -- No --> K;
F -> L[Load external skills];
K --> M[Continue to next];
}
Management Commands
Use the /external-skill command to manage external skills:
# Add a new external skill
/external-skill add vercel-labs/agent-skills
# List configured external skills
/external-skill list
# Remove an external skill
/external-skill remove vercel-labs/agent-skills
Best Practices
-
Always add descriptions - Help users understand what each external skill provides
-
Use appropriate conditions - Don't load React skills for Python projects
-
Prefer
"any"type - More flexible, activates if any condition matches -
Be specific with file patterns -
next.config.*is better than just*.config.* -
Combine file and dependency checks - Covers both new and existing projects
-
Test conditions - Verify skills activate correctly in different project types
Troubleshooting
Skills not activating:
- Check if condition rules match your project
- Verify file patterns are correct
- Ensure dependencies are in the right section (dependencies vs devDependencies)
Too many skills loading:
- Add more specific conditions
- Use
"all"type for stricter matching - Select specific skills instead of
"*"
Source not found:
- Verify GitHub repo format:
owner/repo - Check repo exists and is accessible
- Ensure the repo has a valid skill structure
Score
Total Score
Based on repository quality metrics
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
3ヶ月以内に更新がある
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
Reviews
Reviews coming soon