# Claude Skills - Format Requirements ## Overview This document describes the format requirements for Claude Skills in this repository. Skills support dual-platform development (Claude Code and Claude Desktop) with separated concerns. ## Desktop Skill Structure (Recommended) For Claude Desktop skills, metadata is stored in a separate `skill.yaml` file: ``` skill-name/ └── desktop/ ├── skill.yaml # Metadata (name, description, allowed-tools, license) ├── SKILL.md # Content only (no frontmatter) ├── tools/ # MCP tool documentation │ ├── firecrawl.md # Tool-specific docs │ └── notion.md ├── references/ # Guidance docs └── examples/ # Usage examples ``` ### skill.yaml Format ```yaml # Required fields name: skill-name-here description: Brief description of what the skill does and trigger keywords # Optional fields allowed-tools: - mcp__firecrawl__* - mcp__notion__* - Read - Write - Edit - Bash - Glob - Grep - WebFetch license: MIT # or Internal-use Only triggers: - keyword1 - keyword2 ``` ### SKILL.md Content With metadata separated into skill.yaml, SKILL.md contains only the skill directive: ```markdown # Skill Name Purpose and overview... ## Workflow Step-by-step instructions... ## MCP Tool Usage Tool-specific guidance... ``` ### tools/ Directory Document MCP tools used by the skill: | File | Purpose | |------|---------| | `firecrawl.md` | Firecrawl MCP tool usage | | `notion.md` | Notion MCP tool usage | | `perplexity.md` | Perplexity MCP tool usage | | `chrome-devtools.md` | Chrome DevTools MCP tool usage | | `claude-core.md` | Claude core tools (Read, Write, Edit, Bash, Glob, Grep) | | `webfetch.md` | WebFetch tool usage | ## Code Skill Structure For Claude Code skills: ``` skill-name/ └── code/ ├── CLAUDE.md # Action-oriented directive ├── scripts/ # Executable Python/Bash scripts └── references/ # Documentation ``` ## Key Requirements ### 1. Metadata (skill.yaml) - **name**: Required, lowercase with hyphens - **description**: Required, include trigger keywords - **allowed-tools**: Optional, list of permitted tools - **license**: Optional, MIT or Internal-use Only ### 2. File Structure - All files must be inside the skill folder - Desktop version in `desktop/` subdirectory - Code version in `code/` subdirectory - Subfolders (tools/, references/, examples/) are allowed ### 3. Naming Conventions - Use lowercase with hyphens for skill name - No spaces or special characters in folder/file names - Skill numbers are two-digit prefixes (00-99) ## Full Directory Structure ``` XX-skill-name/ ├── code/ # Claude Code version │ ├── CLAUDE.md # Action-oriented directive │ ├── scripts/ # Executable Python/Bash │ └── references/ # Documentation │ ├── desktop/ # Claude Desktop version │ ├── skill.yaml # Metadata │ ├── SKILL.md # Content only │ ├── tools/ # MCP tool documentation │ ├── references/ # Guidance docs │ └── examples/ # Usage examples │ └── README.md # Overview (optional) ``` ## Migration Script To migrate existing SKILL.md files with frontmatter to the new structure: ```bash python scripts/migrate-skill-structure.py --dry-run # Preview python scripts/migrate-skill-structure.py # Execute ``` The script: 1. Extracts YAML frontmatter to `skill.yaml` 2. Strips frontmatter from `SKILL.md` 3. Creates `tools/` directory 4. Generates tool stub files based on `allowed-tools` ## Legacy Format (Deprecated) The old format with frontmatter embedded in SKILL.md is deprecated: ```yaml --- name: skill-name description: Description allowed-tools: mcp__firecrawl__*, Read, Write --- # Skill content... ``` Use the migration script to convert to the new format.