skillby mc-zuri

skill-builder

Create new Claude Code skills with proper SKILL.md format, frontmatter, and best practices. Use when building, scaffolding, or generating a new skill for Claude Code.

Installs: 0
Used in: 1 repos
Updated: 2d ago
$npx ai-builder add skill mc-zuri/skill-builder

Installs to .claude/skills/skill-builder/

# Claude Code Skill Builder

Create well-structured Claude Code skills that follow best practices and the Agent Skills specification.

## Quick Start

1. **Choose skill location**: Project (`.claude/skills/`) or Personal (`~/.claude/skills/`)
2. **Create directory**: `{location}/{skill-name}/`
3. **Generate SKILL.md** using template below
4. **Add supporting files** (scripts, references, assets) as needed
5. **Test the skill** by asking Claude to perform matching tasks

## SKILL.md Template

Create file at: `{location}/{skill-name}/SKILL.md`

```markdown
---
name: your-skill-name
description: Clear description of what this skill does (max 200 chars). Include trigger keywords users would naturally say.
allowed-tools: Read, Write, Glob, Grep, Bash
metadata:
  author: your-name
  version: "1.0"
---

# Your Skill Name

Brief overview of the skill's purpose.

## When to use

- Trigger condition 1
- Trigger condition 2
- Trigger condition 3

## When NOT to use

- Exclusion condition 1
- Exclusion condition 2

## Instructions

Step-by-step guidance for completing the workflow:

1. **First step**: Description
2. **Second step**: Description
3. **Third step**: Description

## Examples

### Example 1: [Scenario Name]

**Input**: User says "..."

**Output**: Claude does...

## Common mistakes to avoid

- Mistake 1 and how to prevent it
- Mistake 2 and how to prevent it

## References

| Resource | Location |
|----------|----------|
| Documentation | `references/docs.md` |
| API Reference | `references/api.md` |
```

## Frontmatter Reference

### Required Fields

| Field | Constraints | Purpose |
|-------|-------------|---------|
| `name` | Max 64 chars, lowercase, hyphens only | Unique identifier (must match directory name) |
| `description` | Max 200 chars, non-empty | **Critical** - Claude uses this to decide when to invoke |

### Optional Fields

| Field | Purpose | Example |
|-------|---------|---------|
| `license` | License type | `Apache-2.0`, `MIT` |
| `allowed-tools` | Pre-approved tools | `Read, Write, Glob, Grep, Bash` |
| `compatibility` | Environment requirements | `node >= 18, unix` |
| `metadata` | Custom key-value pairs | `author: name`, `version: "1.0"` |

## Directory Structure

```
skill-name/
├── SKILL.md           # Required - Core instructions (<500 lines)
├── scripts/           # Optional - Executable code (Python/Bash)
│   └── helper.py
├── references/        # Optional - Documentation loaded into context
│   ├── api.md
│   └── schema.md
└── assets/            # Optional - Templates, config files
    └── template.json
```

### File Purposes

| Folder | Purpose | Loading |
|--------|---------|---------|
| `SKILL.md` | Core instructions | Always (when skill activates) |
| `scripts/` | Repeatable automation | Executed on demand |
| `references/` | Extended documentation | Read into context on demand |
| `assets/` | Templates and resources | Used for output generation |

## Writing Effective Descriptions

The description is **critical** - it determines whether Claude activates your skill.

### Good Description Pattern

```
[What it does] + [When to use it with trigger keywords]
```

### Examples

**Good:**
```yaml
description: Extract text and tables from PDF files, fill forms, merge documents. Use when working with PDFs, forms, or document extraction.
```

**Good:**
```yaml
description: Generate TypeScript API clients from OpenAPI specs. Use when creating SDK, API wrapper, or client code from swagger/openapi files.
```

**Bad:**
```yaml
description: Helps with PDFs.
```

**Bad:**
```yaml
description: A utility for API work.
```

## Best Practices

### Keep SKILL.md Concise

- Target under 500 lines (~5,000 tokens)
- Move detailed documentation to `references/`
- Use tables and bullet points over prose

### Define Clear Boundaries

Always include both:
- **When to use**: Positive triggers
- **When NOT to use**: Negative boundaries to prevent over-activation

### Use Relative Paths

Reference files using paths relative to skill root:
- `scripts/extract.py`
- `references/api-docs.md`
- `assets/template.html`

### Security

- Never hardcode secrets, API keys, or passwords
- Audit scripts from untrusted sources
- Use environment variables for sensitive config

## Skill vs MCP Server

| Feature | Skills | MCP Servers |
|---------|--------|-------------|
| Purpose | **How** to do something | **Access** to something |
| Contains | Instructions, templates | Tools, resources |
| Loading | On-demand (progressive) | Upfront |
| Best for | Workflows, standards | Data access, APIs |

A skill can orchestrate multiple MCP servers. Use skills for workflow logic and MCP for connectivity.

## Testing Checklist

1. [ ] Directory name matches `name` in frontmatter
2. [ ] Description includes trigger keywords
3. [ ] SKILL.md under 500 lines
4. [ ] All file references use relative paths
5. [ ] When/When NOT sections are clear
6. [ ] Examples demonstrate expected behavior
7. [ ] Restart Claude Code to load new skill
8. [ ] Test with natural language matching description

## Example: Complete Skill

### code-review Skill

```markdown
---
name: code-review
description: Review code for bugs, security issues, and best practices. Use when reviewing PRs, checking code quality, or auditing implementations.
allowed-tools: Read, Glob, Grep
metadata:
  author: team
  version: "1.0"
---

# Code Review

Systematic code review following team standards.

## When to use

- Reviewing pull requests
- Checking code before commit
- Auditing security-sensitive code
- Evaluating code quality

## When NOT to use

- Simple typo fixes (just fix them)
- Understanding code (use exploration instead)
- Writing new code (use appropriate coding skill)

## Review Checklist

### Security
- [ ] No hardcoded secrets
- [ ] Input validation present
- [ ] SQL injection prevention
- [ ] XSS prevention

### Code Quality
- [ ] Functions under 50 lines
- [ ] Clear naming conventions
- [ ] Error handling present
- [ ] No dead code

### Testing
- [ ] Unit tests for new functions
- [ ] Edge cases covered
- [ ] Integration tests if needed

## Output Format

Provide findings as:

| Severity | File:Line | Issue | Suggestion |
|----------|-----------|-------|------------|
| High | src/auth.ts:42 | Hardcoded API key | Use env variable |
| Medium | src/user.ts:15 | Missing null check | Add optional chaining |
```

## Documentation Links

| Resource | URL |
|----------|-----|
| Skills Overview | https://code.claude.com/docs/en/skills |
| Creating Skills | https://support.claude.com/en/articles/12512198 |
| Agent Skills Spec | https://github.com/anthropics/skills/blob/main/agent_skills_spec.md |
| Template Skill | https://github.com/anthropics/skills/tree/main/template-skill |
| Best Practices | https://docs.anthropic.com/en/docs/agents-and-tools/agent-skills |

## Common Patterns

### Workflow Skill

For multi-step processes:
```markdown
## Workflow

1. **Gather**: Collect required information
2. **Validate**: Check prerequisites
3. **Execute**: Perform main action
4. **Verify**: Confirm success
```

### Template Skill

For generating files:
```markdown
## Template Usage

1. Copy template from `assets/template.ext`
2. Replace placeholders: `{{name}}`, `{{date}}`
3. Save to destination
```

### Integration Skill

For connecting services:
```markdown
## Integration Steps

1. Check MCP server is connected
2. Authenticate if needed
3. Call required endpoints
4. Transform response
```

Quick Install

$npx ai-builder add skill mc-zuri/skill-builder

Details

Type
skill
Author
mc-zuri
Slug
mc-zuri/skill-builder
Created
6d ago