Standard organization for a Claude skill package
A well-organized Claude skill follows a standard directory structure that separates workflow definition, executable code, templates, documentation, and examples.
Purpose: Entry point defining the skill's workflow, capabilities, and usage
Contains: YAML frontmatter (name, description), workflow steps, tool usage, examples
Color: Gold (primary importance)
Purpose: Executable automation code (Python, Bash, etc.)
Examples: Data processing, validation, conversion utilities
Best practice: Make scripts executable and include shebang lines
Purpose: Reusable content patterns and output formats
Examples: Markdown templates, JSON schemas, HTML boilerplates
Usage: SKILL.md loads and populates templates with actual content
Purpose: Context documents that inform skill behavior
Examples: Style guides, taxonomy definitions, standard requirements
Usage: Skill reads these to understand domain-specific rules
Purpose: Sample inputs and outputs for testing and documentation
Examples: Sample CSV input, expected JSON output, test cases
Usage: Demonstrates skill capabilities and validates correctness
Executes: SKILL.md runs Python scripts from scripts/ directory
Uses: SKILL.md populates templates from templates/ directory
Loads: SKILL.md reads reference documents for context
References: SKILL.md points users to examples for guidance
At minimum, a skill needs only SKILL.md. Add subdirectories as complexity grows:
simple-skill/
└── SKILL.md # Self-contained workflow
complex-skill/
├── SKILL.md
├── scripts/
│ ├── process.py
│ └── validate.py
├── templates/
│ └── output.md
└── references/
└── standards.md