Claude-code-ultimate-guide 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.
install
source · Clone the upstream repo
git clone https://github.com/FlorianBruniaux/claude-code-ultimate-guide
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/FlorianBruniaux/claude-code-ultimate-guide "$T" && mkdir -p ~/.claude/skills && cp -r "$T/examples/skills/skill-creator" ~/.claude/skills/florianbruniaux-claude-code-ultimate-guide-skill-creator && rm -rf "$T"
manifest:
examples/skills/skill-creator/SKILL.mdsource content
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:
is kebab-case, 1-64 chars;name
is a quoted string with "Use when" clausedescription - 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.mdslack-template.md - Add rules to
:references/tech-to-product-mappings.md - Complete
with usage instructionsSKILL.md - 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
for domain knowledge that doesn't change oftenreferences/ - Put templates in
so they're not auto-loaded into contextassets/ - Always include a "Use when" clause in the description frontmatter
- Test with real use cases before packaging