Skill Format
Complete reference for SKILL.md format and metadata requirements.
Every Skill requires a SKILL.md file at its root. This file serves as both the manifest (containing metadata) and the primary instruction set for your AI agent.
File Structure
---
name: skill-name
description: A clear description of what this skill does.
---
# Skill Title
Your skill instructions go here...Frontmatter
The frontmatter section uses YAML syntax and must be enclosed in triple dashes (---).
Required Fields
| Field | Type | Description |
|---|---|---|
name | string | Unique identifier for the Skill |
description | string | What the Skill does and when to use it |
Name Requirements
The name field must follow these rules:
- Characters: Lowercase letters (
a-z), numbers (0-9), and hyphens (-) - Length: 1 to 64 characters
- Format: Cannot start or end with a hyphen
- Reserved: Cannot be
anthropic,claude, orbluebag
# Valid names
name: pdf-processing
name: data-analysis-v2
name: my-tool-123
# Invalid names
name: PDF-Processing # Uppercase not allowed
name: my_skill # Underscores not allowed
name: -my-skill # Cannot start with hyphen
name: my-skill- # Cannot end with hyphen
name: claude # Reserved nameDescription Requirements
The description field should:
- Clearly explain what the Skill does
- Indicate when the Skill should be used
- Be concise but informative (recommended: 1-3 sentences)
# Good descriptions
description: Extract text and tables from PDF files. Use when working with PDF documents.
description: Analyze customer sentiment from feedback text. Useful for support ticket analysis.
# Poor descriptions
description: Does PDF stuff. # Too vague
description: A skill. # Not helpfulMarkdown Content
After the frontmatter, write your Skill instructions in Markdown.
Recommended Sections
---
name: pdf-processing
description: Extract text and tables from PDF files.
---
# PDF Processing
Brief overview of the skill.
## When to Use
- Extract text from PDF documents
- Convert PDF tables to CSV
- Process multiple PDFs in batch
## Quick Start
Basic usage example:
```python
python /skills/pdf-processing/scripts/extract.py document.pdf
```Scripts
Available helper scripts:
scripts/extract.py- Extract text from PDFsscripts/tables.py- Extract tables as CSVscripts/batch.py- Process multiple files
Examples
Extract Text
python /skills/pdf-processing/scripts/extract.py report.pdfExtract Tables
python /skills/pdf-processing/scripts/tables.py data.pdf --output tables.csvReferences
reference/complex-layouts.md- Handling multi-column layoutsreference/scanned-pdfs.md- OCR for scanned documents
### Content Guidelines
1. **Be specific** - Provide exact commands and file paths
2. **Use examples** - Show real usage patterns
3. **Reference files** - Point to scripts and resources by path
4. **Keep it focused** - Move detailed docs to reference files
## Complete Example
Here's a complete, well-structured SKILL.md:
```md
---
name: image-processing
description: Resize, crop, and convert images. Use when working with image files or preparing images for specific dimensions.
---
# Image Processing
This skill provides tools for common image manipulation tasks including resizing, cropping, format conversion, and optimization.
## When to Use
Use this skill when:
- Resizing images to specific dimensions
- Converting between image formats (PNG, JPEG, WebP)
- Cropping images to specific aspect ratios
- Optimizing images for web use
## Quick Start
Resize an image to 800x600:
```bash
python /skills/image-processing/scripts/resize.py input.jpg 800 600Available Scripts
resize.py
Resize images to specified dimensions.
python /skills/image-processing/scripts/resize.py <input> <width> <height> [--output <path>]Arguments:
input- Path to input imagewidth- Target width in pixelsheight- Target height in pixels--output- Optional output path (default:resized_<input>)
convert.py
Convert between image formats.
python /skills/image-processing/scripts/convert.py <input> <format> [--quality <1-100>]Arguments:
input- Path to input imageformat- Target format (png, jpeg, webp)--quality- Quality for lossy formats (default: 85)
crop.py
Crop images to specified region or aspect ratio.
python /skills/image-processing/scripts/crop.py <input> --aspect <ratio>
python /skills/image-processing/scripts/crop.py <input> --region <x> <y> <width> <height>Examples
Resize for Social Media
# Instagram square
python /skills/image-processing/scripts/resize.py photo.jpg 1080 1080
# Twitter header
python /skills/image-processing/scripts/resize.py banner.png 1500 500Convert and Optimize
# Convert PNG to optimized WebP
python /skills/image-processing/scripts/convert.py image.png webp --quality 80Batch Processing
For processing multiple images, see reference/batch-processing.md.
Dependencies
This skill requires the Pillow library, declared in requirements.txt.
References
reference/formats.md- Supported format detailsreference/batch-processing.md- Processing multiple filesreference/optimization.md- Best practices for web images
## Validation
The SKILL.md is validated during upload:
| Check | Requirement |
|-------|-------------|
| File exists | SKILL.md must be present in Skill root |
| Valid YAML | Frontmatter must be valid YAML syntax |
| Name present | `name` field is required |
| Name format | Must match naming rules |
| Description present | `description` field is required |
| Description non-empty | Must have actual content |
## Error Messages
### "Missing SKILL.md"
The Skill directory doesn't contain a SKILL.md file. Create one with proper frontmatter.
### "Skill name is required in SKILL.md frontmatter"
Add a `name` field to your frontmatter:
```yaml
---
name: my-skill
description: My skill description.
---"Invalid skill name"
The name doesn't match requirements. Use only lowercase letters, numbers, and hyphens.
"Missing description in SKILL.md"
Add a description field to your frontmatter.
"Skill name is reserved"
Choose a different name. anthropic, claude, and bluebag are reserved.