Awesome-omni-skill skill-creator
Create and scaffold new agent skills with proper structure, validation, and spec compliance. Use when building new skills from scratch.
install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/tools/skill-creator-tnez" ~/.claude/skills/diegosouzapw-awesome-omni-skill-skill-creator-13825c && rm -rf "$T"
manifest:
skills/tools/skill-creator-tnez/SKILL.mdsource content
Skill Creator
Create well-structured agent skills that comply with the Agent Skills Specification v1.0.
When to Use This Skill
Use skill-creator when you need to:
- Create a new skill from scratch
- Scaffold the directory structure for a skill
- Generate valid SKILL.md with proper YAML frontmatter
- Ensure spec compliance from the start
- Validate an existing skill's structure
Skill Creation Process
Phase 1: Planning
Gather Requirements
- Ask for the skill's purpose and scope
- Determine if scripts, templates, or assets are needed
- Identify dependencies (Python packages, npm modules)
- Clarify when the skill should be used
Key Questions
- What specific task does this skill address?
- What are the inputs and expected outputs?
- Does it need executable code (scripts)?
- Does it need templates or reference materials?
- What tools will it use?
Phase 2: Naming and Structure
Generate Skill Name
- Use hyphen-case format (lowercase, hyphens only)
- Maximum 64 characters
- Descriptive and specific
- Examples:
,code-complexity-analyzerapi-doc-generator
Invalid Names
- ❌
(underscores)Code_Analyzer - ❌
(camelCase)codeAnalyzer - ❌
(uppercase)CODE-ANALYZER - ✓
(correct)code-analyzer
Determine Directory Structure
Minimal (instructions only):
skill-name/ └── SKILL.md
With scripts:
skill-name/ ├── SKILL.md └── scripts/ └── helper.py
Full structure:
skill-name/ ├── SKILL.md ├── scripts/ │ └── helper.py ├── templates/ │ └── template.md ├── assets/ │ └── output/ └── references/ └── docs.md
Phase 3: Generate SKILL.md
Create YAML Frontmatter
Required fields:
--- name: skill-name description: Clear explanation of what the skill does and when Claude should use it ---
With optional fields:
--- name: skill-name description: Clear explanation of what the skill does and when Claude should use it license: MIT allowed-tools: - Read - Write - Bash metadata: author: username version: "1.0.0" ---
Description Guidelines
- ~200 characters (max 1024)
- Explain WHAT the skill does
- Explain WHEN to use it
- Be specific and actionable
- Example: "Analyze code complexity using cyclomatic complexity metrics. Use when assessing code maintainability or identifying refactoring candidates."
Write Skill Instructions
Use imperative language:
# Skill Name Brief introduction to what this skill does. ## When to Use This Skill List specific scenarios... ## Process ### Step 1: Action Instructions in imperative form... ### Step 2: Action More instructions... ## Examples ### Example 1: Concrete Scenario Input: ... Expected Output: ...
Best Practices
- Keep under 5,000 words
- Use concrete examples
- Reference bundled resources by relative path (e.g., templates/my-template.md)
- Focus on procedural knowledge
- Avoid redundancy
Phase 4: Create Supporting Files
Scripts
- Place in
directoryscripts/ - Include usage instructions in SKILL.md
- Remind users to run
firstscript --help - Treat scripts as black boxes
Example reference in SKILL.md:
Run the validation script: \`\`\`bash python scripts/validate.py --help python scripts/validate.py --input data.json \`\`\`
Templates
- Place in
directorytemplates/ - Reference from SKILL.md
- Provide clear descriptions of when to use each template
Assets
- Use for output files or resources
- Create subdirectories for organization
Phase 5: Validation
Run Validation Checks
-
Name validation
- Directory name matches YAML
field exactlyname - Hyphen-case format
- ≤64 characters
- Only lowercase Unicode alphanumeric and hyphens
- Directory name matches YAML
-
YAML validation
- Valid YAML syntax
- Required fields present:
,namedescription - Field constraints met
-
File reference validation
- All referenced files exist
- Paths are correct relative to skill root
-
Content validation
- Description explains what AND when
- Instructions are imperative
- Examples are concrete
- Word count reasonable (<5,000)
Use Validation Script
python scripts/validate_skill.py /path/to/skill-name
Phase 6: Documentation
In SKILL.md, Include
- Clear title and introduction
- "When to Use This Skill" section
- Step-by-step process
- At least 2 concrete examples
- Dependencies clearly stated
- References to bundled resources
Avoid
- Redundant explanations
- Vague instructions
- Implementation details (focus on what to do, not how)
- Hardcoded credentials or secrets
Templates
Use these templates as starting points:
Basic Skill Template
cat templates/basic-skill.md
Skill with Scripts Template
cat templates/skill-with-scripts.md
Validation Script
Validate a skill's structure:
python scripts/validate_skill.py /path/to/skill-directory
The script checks:
- YAML frontmatter validity
- Name format and matching
- Required fields present
- File references exist
- Common anti-patterns
Examples
Example 1: Simple Instruction-Only Skill
Input: "Create a skill for applying brand guidelines"
Steps:
- Name:
brand-guidelines - Structure: Minimal (SKILL.md only)
- SKILL.md:
--- name: brand-guidelines description: Apply brand visual identity guidelines including colors, typography, and spacing. Use when creating branded materials or reviewing designs. license: MIT --- # Brand Guidelines Apply consistent brand visual identity. ## Colors - Primary: #1A1A1A - Secondary: #4A90E2 ## Typography - Headings: Inter, 24px, 600 weight - Body: Inter, 16px, 400 weight ## Spacing - Base unit: 8px - Margins: 16px, 24px, 32px
Example 2: Skill with Scripts
Input: "Create a skill for testing web applications with Playwright"
Steps:
- Name:
webapp-testing - Structure: With scripts
- Create helper script in scripts/ directory
- SKILL.md references the script with usage examples showing --help flag and actual invocation
Common Pitfalls
- Name mismatch: Directory name must match YAML
field exactlyname - Vague description: Must explain both WHAT and WHEN
- Missing examples: Always include concrete examples
- Too broad: One skill, one focused task
- Broken references: Validate all file paths
- Hardcoded secrets: Never include credentials
Validation Checklist
Before finalizing a skill:
- Directory name is hyphen-case, ≤64 chars
- Directory name matches YAML
fieldname - YAML frontmatter is valid
- Description explains WHAT and WHEN (~200 chars)
- Instructions are imperative
- At least 2 concrete examples provided
- All file references exist
- No hardcoded credentials
- SKILL.md under 5,000 words
- Dependencies clearly stated
Resources
- Agent Skills Specification: https://github.com/anthropics/skills/blob/main/agent_skills_spec.md
- Validation script:
scripts/validate_skill.py - Templates:
directorytemplates/