Help us improve
Share bugs, ideas, or general feedback.
From claude
ALWAYS invoke this skill when creating, editing, or improving SKILL.md files. NEVER create or modify skills without this skill.
npx claudepluginhub outcomeeng/claude --plugin claudeHow this skill is triggered — by the user, by Claude, or both
Slash command
/claude:creating-skillsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
<accessing_skill_files>
references/core-principles.mdreferences/evaluation-patterns.mdreferences/reusability-patterns.mdreferences/skill-patterns.mdreferences/technical-patterns.mdreferences/testing-patterns.mdreferences/use-xml-tags.mdscripts/init_skill.pyscripts/package_skill.pyscripts/quick_validate.pytemplates/analyzer-skill.mdtemplates/automation-skill.mdtemplates/builder-skill.mdtemplates/guide-skill.mdtemplates/router-skill.mdtemplates/simple-skill.mdtemplates/validator-skill.mdworkflows/add-reference.mdworkflows/add-workflow.mdworkflows/audit-skill.mdGuides creating, auditing, reviewing, updating, and improving Claude Code skills with workflows, principles, and validation. Invoke before editing SKILL.md files.
Creates, repairs, and refactors Claude skills by inspecting the local environment, locking skill contracts, and keeping SKILL.md files lean with real bundled resources.
Guides creation and review of Claude Code skills with built-in compliance checks. Handles skill scaffolding, frontmatter validation, and publish-ready packaging.
Share bugs, ideas, or general feedback.
<accessing_skill_files> When this skill is invoked, Claude Code provides the base directory in the loading message:
Base directory for this skill: /path/to/.claude/plugins/cache/{marketplace}/{plugin}/{version}/skills/creating-skills/
Throughout this skill, we refer to this as ${SKILL_DIR}.
Use this path for all skill file access:
${SKILL_DIR}/references/${SKILL_DIR}/workflows/${SKILL_DIR}/templates/${SKILL_DIR}/scripts/IMPORTANT: Do NOT search the project directory for skill files. If you cannot find a file, use Glob: .claude/plugins/cache/**/creating-skills/**/*.md
</accessing_skill_files>
<essential_principles> Skills are prompts. All prompting best practices apply. Be clear, be direct, assume Claude is smart.
Pure XML Structure: No markdown headings (#) in skill body. Use semantic XML tags:
<objective> - What the skill does<quick_start> - Immediate actionable guidance<success_criteria> - How to know it workedProgressive Disclosure: SKILL.md under 500 lines. Details go in references/ and workflows/.
Router Pattern (for complex skills):
skill-name/
├── SKILL.md # Router + essential principles
├── workflows/ # Step-by-step procedures (FOLLOW)
├── references/ # Domain knowledge (READ)
├── templates/ # Output structures (COPY + FILL)
└── scripts/ # Executable code (RUN)
Skill Types: Match structure to purpose:
| Type | Purpose | Key Output |
|---|---|---|
| Builder | Create artifacts | Code, documents, widgets |
| Guide | Provide instructions | Tutorials, workflows |
| Automation | Execute workflows | Processed files, deployments |
| Analyzer | Extract insights | Reports, summaries |
| Validator | Enforce quality | Pass/fail assessments |
| Reference | Share knowledge | Standards loaded by others |
Domain Discovery: Research the domain BEFORE asking users. Users want expertise IN the skill. </essential_principles>
What would you like to do?Wait for response before proceeding.
| Response | Workflow | |----------|----------| | 1, "create", "new", "build" | `${SKILL_DIR}/workflows/create-new-skill.md` | | 2, "audit", "improve", "review", "check" | `${SKILL_DIR}/workflows/audit-skill.md` | | 3, "add workflow" | `${SKILL_DIR}/workflows/add-workflow.md` | | 3, "add reference" | `${SKILL_DIR}/workflows/add-reference.md` | | 3, "upgrade to router" | `${SKILL_DIR}/workflows/upgrade-to-router.md` | | 4, "patterns", "understand", "help" | Read `${SKILL_DIR}/references/skill-patterns.md` |Intent-based routing (if user provides clear context):
${SKILL_DIR}/workflows/verify-skill.md${SKILL_DIR}/workflows/audit-skill.md${SKILL_DIR}/workflows/create-new-skill.mdAfter reading the workflow, follow it exactly.
<quick_reference> YAML Frontmatter (required):
---
name: skill-name # lowercase-with-hyphens, ≤64 chars
description: >- # Directive, ≤1024 chars. Add NEVER only if it disambiguates.
ALWAYS invoke this skill when <triggers>.
---
Simple Skill Structure:
<objective>What the skill does</objective>
<quick_start>Minimal working example</quick_start>
<workflow>Step-by-step procedure</workflow>
<success_criteria>How to know it worked</success_criteria>
Router Skill Structure:
<essential_principles>Always applies</essential_principles>
<intake>Question to ask user</intake>
<routing>Maps answers to workflows</routing>
<reference_index>Available references</reference_index>
<workflows_index>Available workflows</workflows_index>
Naming Convention: Prefer gerund form (verb + -ing):
creating-skills, processing-pdfs, reviewing-code</quick_reference>
<reference_index>
All in ${SKILL_DIR}/references/:
| File | Purpose |
|---|---|
| core-principles.md | XML structure, conciseness, degrees of freedom |
| use-xml-tags.md | Required and conditional XML tags |
| skill-patterns.md | Type-specific patterns, templates, assets |
| reusability-patterns.md | Variations vs constants, adaptable skills |
| testing-patterns.md | Evaluation-driven development, iterative testing |
| technical-patterns.md | Error handling, security, dependencies |
</reference_index>
<workflows_index>
All in ${SKILL_DIR}/workflows/:
| Workflow | Purpose |
|---|---|
| create-new-skill.md | Build a skill from scratch |
| audit-skill.md | Check skill against best practices |
| add-workflow.md | Add a workflow to existing skill |
| add-reference.md | Add a reference to existing skill |
| upgrade-to-router.md | Convert simple skill to router pattern |
| verify-skill.md | Check if content is still accurate |
</workflows_index>
<templates_index>
All in ${SKILL_DIR}/templates/:
| Template | Purpose |
|---|---|
| simple-skill.md | Single-file skill scaffold |
| router-skill.md | Router pattern skill scaffold |
| builder-skill.md | Builder type template |
| guide-skill.md | Guide type template |
| automation-skill.md | Automation type template |
| analyzer-skill.md | Analyzer type template |
| validator-skill.md | Validator type template |
</templates_index>
<scripts_index>
All in ${SKILL_DIR}/scripts/:
| Script | Purpose |
|---|---|
| init_skill.py | Initialize skill directory structure |
| package_skill.py | Validate and package skill |
| quick_validate.py | Quick YAML/structure validation |
</scripts_index>
<success_criteria> A well-structured skill:
</success_criteria>