Guide for creating effective skills. Use when users want to create a new skill (or update an existing skill) that extends the AI's capabilities with specialized knowledge, workflows, or tool integrations.
This skill provides guidance for creating effective skills.
Skills are modular, self-contained packages that extend AI capabilities by providing specialized knowledge, workflows, and tools. Think of them as "onboarding guides" for specific domains or tasks—they transform a general-purpose agent into a specialized agent equipped with procedural knowledge.
The context window is a public good. Skills share the context window with everything else needed: system prompt, conversation history, other Skills' metadata, and the actual user request.
Default assumption: The AI is already very smart. Only add context it doesn't already have. Challenge each piece of information: "Is this explanation really needed?" and "Does this paragraph justify its token cost?"
Prefer concise examples over verbose explanations.
Match the level of specificity to the task's fragility and variability:
High freedom (text-based instructions): Use when multiple approaches are valid, decisions depend on context, or heuristics guide the approach.
Medium freedom (pseudocode or scripts with parameters): Use when a preferred pattern exists, some variation is acceptable, or configuration affects behavior.
Low freedom (specific scripts, few parameters): Use when operations are fragile and error-prone, consistency is critical, or a specific sequence must be followed.
Every skill consists of a required SKILL.md file and optional bundled resources:
skill-name/
├── SKILL.md (required)
│ ├── YAML frontmatter metadata (required)
│ │ ├── name: (required)
│ │ ├── description: (required)
│ │ └── command: (optional, e.g., /my-skill)
│ └── Markdown instructions (required)
└── Bundled Resources (optional)
├── scripts/ - Executable code (Python/Bash/etc.)
├── references/ - Documentation loaded as needed
└── assets/ - Files used in output (templates, icons, fonts, etc.)
Every SKILL.md consists of:
name, description, and optional command fields. These determine when the skill gets used—be clear and comprehensive.scripts/)Executable code for tasks requiring deterministic reliability or that are repeatedly rewritten.
scripts/rotate_pdf.py for PDF rotation tasksreferences/)Documentation and reference material loaded as needed into context.
references/schema.md for database schemas, references/api_docs.md for API specificationsassets/)Files not intended to be loaded into context, but used within the output.
assets/logo.png for brand assets, assets/template.html for boilerplateTo create an effective skill, understand concrete examples of how it will be used:
Analyze each example to identify reusable resources:
Create a new directory for your skill:
my-skill/
├── SKILL.md
└── (optional resources)
Frontmatter:
---