---
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
```
