Creating Custom Skills
Links to Custom Skills
- analyzing time series
- generating practice questions
References
For a complete list of Skills creation best practices and specification, make sure to check out:
- Skill authoring best practices
- Specification
- The Complete Guide
to Building Skills for Claude
How to Disable Plugins in Claude Code?
Plugins are designed to toggle on and off as needed. You can enable them when you need specific capabilities and disable them when you don't to reduce system prompt context and complexity.
- Using the
/plugin Command: navigate to installed tab, then select the plugin you want to disable.
- Using the command line:
claude plugin disable <plugin-name>
Summary of the Slides
SKILL.md File Structure
A skill file has two main parts:
- YAML Frontmatter — Metadata at the top
- Body Content — Markdown instructions below
Frontmatter Required Fields
| Field |
Constraints |
| name |
Max 64 chars; lowercase letters, numbers, and hyphens only; must not start/end with hyphens; must match parent directory name; recommended: gerund (verb+-ing) form |
| description |
Max 1024 chars; non-empty; should describe what the skill does AND when to use it; include specific keywords to help agents identify relevant tasks |
Frontmatter Optional Fields
| Field |
Constraints |
| license |
License name or reference to a license file |
| compatibility |
Max 500 chars; indicates environment requirements |
| metadata |
Arbitrary key-value pairs (e.g., author, version) |
| allowed-tools |
Space-delimited list of pre-approved tools (Experimental) |
Body Content
No format restrictions, but here are some recommendations:
Recommended Sections
- Step-by-step instructions
- Input Format / Output Format / Examples
- Common edge cases
Practical Guidance
- Keep it under 500 lines
- Move detailed reference material to separate files (show basic content, link to advanced content)
- Keep references one level deep from SKILL.md (avoid nested file references)
- Be clear and concise, use consistent terminology
- Use forward slashes in file paths, even on Windows
Degrees of Freedom
| Level |
Description |
| High freedom |
General text-based directions; multiple approaches are valid |
| Medium freedom |
Instructions contain customizable pseudocode, code examples, or patterns; a preferred pattern exists but some variation is acceptable |
| Low freedom |
Instructions refer to specific scripts; a specific sequence must be followed |
Complex Workflows
- Break complex operations into clear, sequential steps
- If workflows become large with many steps, consider pushing them into separate files
Optional Directories
/assets
- Templates: document templates, configuration templates
- Images: diagrams, logos
- Data files: lookup tables, schemas
/references
- Contains additional documentation that agents can read when needed
- Keep individual reference files focused
- Note: For reference files longer than 100 lines, include a table of contents at the top so the agent can see the full scope
/scripts
- Clearly document dependencies
- Scripts should have clear documentation
- Error handling should be explicit and helpful
- Note: Make clear in your instructions whether Claude should execute the script or read it as reference
Evaluation
Unit Tests
Define test cases with:
- skills: Which skills to test
- queries: Test prompts to run
- files: Input files to use
- expected_behavior: What success looks like
Example Test Case
{
"skills": ["generating-practice-questions"],
"queries": [
"Generate practice questions from this lecture note and save it to output.md",
"Generate practice questions from this lecture note and save it to output.tex",
"Generate practice questions from this lecture note and save it to output.pdf"
],
"files": ["test-files/notes.pdf", "test-files/notes.tex", "test-files/notes.pdf"],
"expected_behavior": [
"Successfully reads and extracts the input file. For pdf input, uses pdfplumber.",
"Successfully extracts all the learning objectives.",
"Generates the 4 types of questions.",
"Follows the guidelines for each question.",
"Uses the output structure and the correct output templates.",
"The latex output successfully compiles.",
"Saves the generated questions to a file named output."
]
}
Additional Evaluation Tips:
- Get human feedback
- Test with all the models you plan to use
1---2name: creating-custom-skills3description: Plugins are designed to toggle on and off as needed. You can enable them when you need specific capabilities and disable them when you don't to reduce system prompt context and complexity.4---5# Creating Custom Skills 67## Links to Custom Skills8- <a href="https://github.com/https-deeplearning-ai/sc-agent-skills-files/tree/main/L4/custom_skills/analyzing-time-series/" target="_blank">analyzing time series</a>9- <a href="https://github.com/https-deeplearning-ai/sc-agent-skills-files/tree/main/L4/custom_skills/generating-practice-questions/" target="_blank">generating practice questions</a>1011## References12For a complete list of Skills creation best practices and specification, make sure to check out:13- <a href="https://platform.claude.com/docs/en/agents-and-tools/agent-skills/best-practices" target="_blank">Skill authoring best practices</a>14- <a href="https://agentskills.io/specification" target="_blank">Specification</a>15- <a href="https://resources.anthropic.com/hubfs/The-Complete-Guide-to-Building-Skill-for-Claude.pdf?hsLang=en" target="_blank">The Complete Guide16to Building Skills for Claude</a>1718## How to Disable Plugins in Claude Code?1920Plugins are designed to toggle on and off as needed. You can enable them when you need specific capabilities and disable them when you don't to reduce system prompt context and complexity. 2122- Using the `/plugin` Command: navigate to `installed` tab, then select the plugin you want to disable.23- Using the command line:24`claude plugin disable <plugin-name>`252627## Summary of the Slides2829### SKILL.md File Structure3031A skill file has two main parts:321. **YAML Frontmatter** — Metadata at the top332. **Body Content** — Markdown instructions below3435### Frontmatter Required Fields3637| Field | Constraints |38|-------|-------------|39| **name** | Max 64 chars; lowercase letters, numbers, and hyphens only; must not start/end with hyphens; must match parent directory name; recommended: gerund (verb+-ing) form |40| **description** | Max 1024 chars; non-empty; should describe what the skill does AND when to use it; include specific keywords to help agents identify relevant tasks |4142### Frontmatter Optional Fields4344| Field | Constraints |45|-------|-------------|46| **license** | License name or reference to a license file |47| **compatibility** | Max 500 chars; indicates environment requirements |48| **metadata** | Arbitrary key-value pairs (e.g., author, version) |49| **allowed-tools** | Space-delimited list of pre-approved tools (Experimental) |505152### Body Content5354**No format restrictions**, but here are some recommendations:5556#### Recommended Sections57- Step-by-step instructions58- Input Format / Output Format / Examples59- Common edge cases6061#### Practical Guidance62- Keep it **under 500 lines**63- Move detailed reference material to separate files (show basic content, link to advanced content)64- Keep references **one level deep** from SKILL.md (avoid nested file references)65- Be clear and concise, use consistent terminology66- Use forward slashes in file paths, even on Windows6768#### Degrees of Freedom6970| Level | Description |71|-------|-------------|72| **High freedom** | General text-based directions; multiple approaches are valid |73| **Medium freedom** | Instructions contain customizable pseudocode, code examples, or patterns; a preferred pattern exists but some variation is acceptable |74| **Low freedom** | Instructions refer to specific scripts; a specific sequence must be followed |7576#### Complex Workflows77- Break complex operations into clear, sequential steps78- If workflows become large with many steps, consider pushing them into separate files7980### Optional Directories8182#### `/assets`83- **Templates:** document templates, configuration templates84- **Images:** diagrams, logos85- **Data files:** lookup tables, schemas8687#### `/references`88- Contains additional documentation that agents can read when needed89- Keep individual reference files focused90- **Note:** For reference files longer than 100 lines, include a table of contents at the top so the agent can see the full scope9192#### `/scripts`93- Clearly document dependencies94- Scripts should have clear documentation95- Error handling should be explicit and helpful96- **Note:** Make clear in your instructions whether Claude should execute the script or read it as reference979899### Evaluation100101#### Unit Tests102103Define test cases with:104- **skills**: Which skills to test105- **queries**: Test prompts to run106- **files**: Input files to use107- **expected_behavior**: What success looks like108109#### Example Test Case110```json111{112 "skills": ["generating-practice-questions"],113 "queries": [114 "Generate practice questions from this lecture note and save it to output.md",115 "Generate practice questions from this lecture note and save it to output.tex",116 "Generate practice questions from this lecture note and save it to output.pdf"117 ],118 "files": ["test-files/notes.pdf", "test-files/notes.tex", "test-files/notes.pdf"],119 "expected_behavior": [120 "Successfully reads and extracts the input file. For pdf input, uses pdfplumber.",121 "Successfully extracts all the learning objectives.",122 "Generates the 4 types of questions.",123 "Follows the guidelines for each question.",124 "Uses the output structure and the correct output templates.",125 "The latex output successfully compiles.",126 "Saves the generated questions to a file named output."127 ]128}129```130**Additional Evaluation Tips**:131132- Get **human feedback**133- Test with **all the models** you plan to use