Claude Skill

Skill Creator

Scaffold a new Claude Code skill with SKILL.md, frontmatter, and bundled resources. Use when creating a custom skill, standardizing skill structure across a team, or packaging a skill for distribution.

Editor's Note

Scaffold a new Claude Code skill with SKILL.md, frontmatter, and bundled resources. Use when creating a custom skill, standardizing skill structure across a team, or packaging a skill for distribution. Covers when to use, skill directory structure, workflow.

Page Outline

When to UseSkill Directory StructureWorkflowWhen to UseWhat This Skill DoesHow to UseExampleOrganizational Patterns

Source Content

Normalized top-level metadata comes from the directory layer. The body below is the upstream source content for this item.

Skill Creator

Generate new Claude Code skills with correct directory structure, YAML frontmatter, and optional bundled resources.

When to Use

  • Creating a new custom skill for a project
  • Standardizing skill structure across a team
  • Generating skill templates with scripts, references, and assets
  • Packaging skills for distribution

Skill Directory Structure

skill-name/
├── SKILL.md          # Required: Main skill file with YAML frontmatter
├── scripts/          # Optional: Executable code for deterministic tasks
├── references/       # Optional: Documentation loaded contextually
└── assets/           # Optional: Templates, images, boilerplate (not loaded into context)

Workflow

1. Create the Skill

Create a new skill called "my-skill-name" in ~/.claude/skills/

Or with a specific purpose:

Create a skill for generating release notes from git commits,
with templates for CHANGELOG.md and Slack announcements

Or via the initialization script:

python3 ~/.claude/skills/skill-creator/scripts/init_skill.py <skill-name> --path <output-directory>

2. Generated SKILL.md Template

The created SKILL.md follows this structure:

---
name: skill-name
description: "What the skill does. Use when [trigger conditions]."
---

# Skill Name

## When to Use
- Trigger condition 1
- Trigger condition 2

## What This Skill Does
1. **Step 1**: Description
2. **Step 2**: Description

## How to Use
[Usage examples]

## Example
**User**: "Example prompt"
**Output**: [Example output]

3. Validate the Skill

After creation, verify:

  • **Frontmatter**: `name` is kebab-case, 1-64 chars; `description` is a quoted string with "Use when" clause
  • **Content**: Has "When to Use" section with trigger conditions and at least one usage example
  • **Structure**: SKILL.md is under 5000 words; references and assets are in correct subdirectories
  • **Test**: Invoke the skill with a real use case and confirm expected output

4. Package for Distribution (Optional)

python3 ~/.claude/skills/skill-creator/scripts/package_skill.py <path/to/skill-folder> [output-directory]

Organizational Patterns

| Pattern | Best For | Structure | |---------|----------|-----------| | **Workflow-Based** | Sequential procedures | Step-by-step instructions | | **Task-Based** | Multiple operations | Collection of tasks | | **Reference/Guidelines** | Standards, specs | Rules and examples | | **Capabilities-Based** | Interrelated features | Feature descriptions |

Example: Creating a Release Notes Skill

**User**: "Create a skill for generating release notes with 3 output formats"

**Steps**:

  • Initialize: `init_skill.py release-notes-generator --path ~/.claude/skills/`
  • Add templates to `assets/`: `changelog-template.md`, `pr-release-template.md`, `slack-template.md`
  • Add rules to `references/`: `tech-to-product-mappings.md`
  • Complete `SKILL.md` with usage instructions
  • Validate: check frontmatter, test with a real commit range
  • Package: `package_skill.py ~/.claude/skills/release-notes-generator`

Tips

  • Keep SKILL.md under 5000 words for efficient context usage
  • Use `references/` for domain knowledge that doesn't change often
  • Put templates in `assets/` so they're not auto-loaded into context
  • Always include a "Use when" clause in the description frontmatter
  • Test with real use cases before packaging
Deploy agents, MCP servers, and backends fast logo

Railway - Deploy agents and MCP servers fast

Try Railway