Skill Creator
Create new skills with proper structure, compliance, and registration.
Path convention: Commands below assume cwd is $CLAUDE_PROJECT_DIR (project root). Prefix paths with "$CLAUDE_PROJECT_DIR/" when invoking from subdirectories.
When to Use
- User asks to "create a skill", "build a new skill", "make a skill for [X]"
- Converting external skill for adoption
- Scaffolding a skill from a workflow pattern
Explicit: /mk:skill-creator [name] [description]
Workflow Integration
Meta skill — not tied to a specific Phase. Invoked on-demand for skill development.
Scripts
Script-first approach — Python scripts handle scaffolding and validation. Claude reviews and fills in the content.
# Scaffold a new skill (creates directory + template SKILL.md)
.claude/skills/.venv/bin/python3 .claude/skills/skill-creator/scripts/init-skill.py mk:my-feature --path .claude/skills
# Validate an existing skill against compliance checklist
.claude/skills/.venv/bin/python3 .claude/skills/skill-creator/scripts/validate-skill.py .claude/skills/my-feature
Process
- Gather intent — what should the skill do? When should it trigger? What output format?
- Scaffold — run
init-skill.py to create directory + template SKILL.md with TODO markers
- Fill content — Claude completes each TODO section in the generated template
- Add references/ — if skill body would exceed ~100 lines, split into references
- Security boundaries — load
mk:skill-template-secure template for trust model if needed
- Validate — run
validate-skill.py to check compliance (8-point checklist)
- Fix failures — if validation score < 7/8, fix failing items
- Register — add row to
SKILLS_ATTRIBUTION.md
- Report — output creation summary
Required Sections in Generated SKILL.md
Every skill MUST have:
# Frontmatter
name: "{name}"
description: "{specific trigger keywords + what it does}"
If the name already exist then use with prefix mk:
# Frontmatter
name: mk:{name}
description: "{specific trigger keywords + what it does}"
## Overview — what + when (2-3 sentences)
## When to Use — auto-triggers + explicit syntax
## Process — numbered steps (not prose)
## Output Format — template with placeholders
## Failure Handling — per-failure table
## Workflow Integration — which Phase (0-6)
## Handoff Protocol — next agent + action
Compliance Evaluation
After generating, check:
Score: X/8 — PASS (≥7) / FAIL (<7)
If FAIL: fix failing items before registering.
Output Format
## Skill Created: mk:{name}
**Directory:** .claude/skills/{name}/
**Files:** SKILL.md{, references/*.md}
**Compliance:** {X}/7 — {PASS|FAIL}
**Registered:** {yes|no — in SKILLS_ATTRIBUTION.md}
### Compliance Details
{checklist with ✓/✗ per item}
<!-- research-citation -->
Anthropic Skill-Building Lessons
- Skills are folders — use scripts/, references/, assets/, lib/ creatively. See
references/filesystem-patterns.md.
- Gotchas = highest signal — every skill MUST have a
## Gotchas section. A day-1 placeholder is allowed; replace it as real failures emerge.
- Progressive disclosure — SKILL.md stays under 500 lines per
skill-authoring-rules.md Rule 3. Details live in references/ loaded on-demand. Step-file skills (with workflow.md) auto-pass.
- Avoid railroading — describe outcomes, not step-by-step procedures. See
references/good-vs-bad-examples.md.
- Description = trigger condition — must answer "When should I use this?" not "What does this do?" Start with "Use when..."
- On-demand hooks — skills can register session-scoped hooks in frontmatter for enforcement during execution.
- config.json for setup — if skill needs user-specific values, store in config.json. Agent asks on first use.
- Memory strategy — stateful skills should document what they persist and where.
- Don't state the obvious — only include knowledge that pushes Claude beyond its defaults.
- One skill type — classify using the 9-type taxonomy. See
references/skill-types.md.
Mandatory checklist before finalizing any skill
<!-- research-citation -->
References
Failure Handling
| Failure | Recovery |
|---|
| Name missing mk: prefix | Auto-prepend and warn |
| Duplicate skill name | Suggest alternative or update existing |
| Compliance check fails | List failing items, fix before registering |
Gotchas
- Template must include
## Gotchas header — even as a placeholder. skill-authoring-rules.md Rule 1 is hard-enforced by validate-skill.py. Day-1 skills may use (none yet — grow from observed failures) but the header itself is mandatory.
<!-- research-citation -->
- Line cap is 500, not 150 — the canonical threshold comes from
skill-authoring-rules.md Rule 3 (Anthropic progressive-disclosure guidance). Step-file skills (with workflow.md) auto-pass regardless of line count.
- Persistent state goes to
${CLAUDE_PLUGIN_DATA}, not skill directory — Rule 2 prevents data loss on plugin upgrade. framework-internal paths (.meowkit/memory/, session-state/) are exempt.