Skill detail
skill-developer
Directly supports developers authoring Claude Code skills and MCP workflows.
Inspect before use
Automated review checks relevance, not safety or endorsement. Read the source instructions before using this skill.
SKILL.md
The saved excerpt is a snapshot from review. The external source remains the complete and most current version.
---
name: skill-developer
description: Meta-skill for creating and managing Claude Code skills
allowed-tools: [Bash, Read, Write, Edit]
---
# Skill Developer
Meta-skill for creating new Claude Code skills, including skills that wrap MCP pipelines.
## When to Use
- "Create a skill for X"
- "Help me make a new skill"
- "Turn this script into a skill"
- "How do I create a skill?"
## Skill Structure
Skills live in `.claude/skills/<skill-name>/`:
```
.claude/skills/my-skill/
├── SKILL.md # Required: Main skill definition
├── scripts/ # Optional: Supporting scripts
└── templates/ # Optional: Templates, examples
```
### SKILL.md Format
```yaml
---
name: skill-name
description: Brief description (shown in skill list)
allowed-tools: [Bash, Read, Write] # Optional: restrict tools
---
# Skill Name
## When to Use
[When Claude should discover this skill]
## Instructions
[Step-by-step instructions for Claude to follow]
## Examples
[Usage examples]
```
## Creating an MCP Pipeline Skill
To create a new MCP chain script and wrap it as a skill:
### Step 1: Use the Template
Copy the multi-tool-pipeline template:
```bash
cp $CLAUDE_PROJECT_DIR/scripts/multi_tool_pipeline.py $CLAUDE_PROJECT_DIR/scripts/my_pipeline.py
```
Reference the template pattern:
```bash
cat $CLAUDE_PROJECT_DIR/.claude/skills/multi-tool-pipeline/SKILL.md
cat $CLAUDE_PROJECT_DIR/scripts/multi_tool_pipeline.py
```
### Step 2: Customize the Script
Edit your new script to chain the MCP tools you need:
```python
async def main():
from runtime.mcp_client import call_mcp_tool
args = parse_args()
# Chain your MCP tools (serverName__toolName)
result1 = await call_mcp_tool("server1__tool1", {"param": args.arg1})
result2 = await call_mcp_tool("server2__tool2", {"input": result1})
print(result2)
```
### Step 2: Create the Skill
Create `.claude/skills/my-pipeline/SKILL.md`:
```markdown
---
name: my-pipeline
description: What the pipeline does
allowed-tools: [Bash, Read]
---
# My Pipeline Skill
## When to Use
- [Trigger conditions]
## Instructions
Run the pipeline:
\`\`\`bash
uv run python -m runtime.harness scripts/my_pipeline.py --arg1 "value"
\`\`\`
### Parameters
- `--arg1`: Description
## MCP Servers Required
- server1: For tool1
- server2: For tool2
```
### Step 3: Add Triggers (Optional)
Add to `.claude/skills/skill-rules.json`:
```json
{
"skills": {
"my-pipeline": {
"type": "domain",
"enforcement": "suggest",
"priority": "medium",
"description": "What it does",
"promptTriggers": {
"keywords": ["keyword1", "keyword2"],
"intentPatterns": ["(pattern).*?(match)"]
}
}
}
}
```
## Reference Files
For full details, read:
```bash
cat $CLAUDE_PROJECT_DIR/.claude/rules/skill-development.md
cat $CLAUDE_PROJECT_DIR/.claude/rules/mcp-scripts.md
```
## Quick Checklist
- [ ] SKILL.md has frontmatter (name, description)
- [ ] "When to Use" section is clear
- [ ] Instructions are copy-paste ready
- [ ] MCP servers documented if needed
- [ ] Triggers added to skill-rules.json (optional)
## Examples in This Repo
Look at existing skills for patterns:
```bash
ls $CLAUDE_PROJECT_DIR/.claude/skills/
cat $CLAUDE_PROJECT_DIR/.claude/skills/commit/SKILL.md
cat $CLAUDE_PROJECT_DIR/.claude/skills/firecrawl-scrape/SKILL.md
```
Read the full source on GitHub (opens external page)