name: create-skill description: Skill creation framework for creating, validating, updating, or canonicalizing skills. USE WHEN user wants to create a new skill, validate skill structure, update existing skill, or fix skill compliance.
Create Skill
Systematic skill creation framework for building consistent, well-structured Claude Code skills.
Context Detection
This skill activates when:
- User wants to create a new skill
- User asks to validate, update, or fix an existing skill
- User mentions skill structure, compliance, or canonicalization
- User is working in
/home/vincent/.config/claude/skills/directory - User asks about skill creation best practices or framework
Naming Convention
All naming must use lowercase-with-hyphens (kebab-case).
| Component | Format | Example |
|---|---|---|
| Skill directory | lowercase-with-hyphens | golang, homelab, create-skill |
| Workflow files | TitleCase.md | Create.md, UpdateInfo.md |
| Reference docs | TitleCase.md | Guide.md, Reference.md |
| Tool files | kebab-case.sh | manage-tool.sh |
Wrong (NEVER use):
Createskill,CREATE_SKILL,CreateSkillSYNC_REPO.md
Workflow Routing
When executing a workflow, output this notification directly:
Running the **WorkflowName** workflow from the **create-skill** skill...
| Workflow | Trigger | File |
|---|---|---|
| CreateSkill | “create a new skill” | workflows/CreateSkill.md |
| ValidateSkill | “validate skill”, “check skill” | workflows/ValidateSkill.md |
Skill Structure Requirements
Required Components
Every skill must have:
-
SKILL.md - Main skill file with:
- YAML frontmatter (name, description)
- Clear purpose and scope
- Workflow routing table
- Usage examples
-
workflows/ directory - Contains workflow markdown files
-
tools/ directory - Contains tool scripts (optional)
YAML Frontmatter Format
---
name: create-skill
description: Single-line description. USE WHEN triggers go here.
---
Critical Rules:
namemust be lowercase-with-hyphens, matching the directory namedescriptionmust be ONE LINE (no newlines)- Include “USE WHEN” triggers in description
Markdown Body Structure
Required sections in order:
- # [Skill Name] - H1 heading matching the name
- Brief overview - What this skill does
- Workflow Routing - Table of workflows
- Examples - Usage examples (at least one)
Examples
Example 1: Create a new skill from scratch
User: "Create a skill for managing my Docker containers"
→ Invokes CreateSkill workflow
→ Creates skill directory with kebab-case naming
→ Creates SKILL.md with proper frontmatter
→ Creates workflows/ and tools/ directories
→ Generates USE WHEN triggers based on purpose
Example 2: Validate an existing skill
User: "Validate the golang skill"
→ Invokes ValidateSkill workflow
→ Checks SKILL.md structure and naming
→ Verifies kebab-case naming for directory and name field
→ Verifies USE WHEN triggers are clear
→ Reports any compliance issues
Best Practices
Naming
- Use lowercase-with-hyphens for skill directories and the YAML
namefield - Keep names descriptive but concise
- The
namefield in frontmatter must match the directory name
Description Field
- Keep it to ONE LINE only
- Include clear USE WHEN triggers
- Focus on when to invoke the skill, not just what it does
Workflows
- Name workflows with clear action verbs (Create, Update, Validate)
- Keep workflows focused on single tasks
- Use TitleCase.md naming for workflow files
Tools
- Prefer shell scripts for tools (simplicity, portability)
- Use Python only when complexity requires it (complex parsing, data structures)
- Avoid TypeScript - not preferred for skill tools
- Name tools with kebab-case.sh or kebab-case.py
- Keep tools focused and single-purpose
Dependency Management:
- For shell scripts with dependencies: Use
nix-shellshebang for maximum portability#!/usr/bin/env nix-shell #! nix-shell -i bash -p jq curl - For Python scripts with dependencies: Use
uvshebang for isolated environments#!/usr/bin/env -S uv run --quiet --script # /// script # dependencies = ["requests", "click"] # /// - This makes scripts portable without requiring global installation of dependencies
Examples
- Provide at least one concrete example
- Show the trigger phrase and expected behavior
- Demonstrate the value of the skill
Integration
This skill works with your existing skills:
- References
.config/claude/skills/directory structure - Follows patterns from CORE, golang, nix, homelab, notes skills
- Validates against established conventions