Our review
Guides users through creating new Claude Code skills from a template using an interactive wizard.
Strengths
- Provides step-by-step guidance for skill creation
- Automatically populates metadata and installs the skill
- Supports multiple skill type templates with reference examples
- Validates skill name and checks for duplicates
Limitations
- Only works for creating skills within the Claude Code skills directory structure
- Requires existing skill templates and scripts in the repository
- Does not generate actual skill logic beyond the template skeleton
Use when you need to quickly scaffold a new Claude Code skill with proper structure and metadata.
Do not use for skills outside the Claude Code ecosystem or when you need to create a skill with complex custom logic not covered by templates.
Security analysis
SafeThe skill is a development wizard that uses local shell commands (ls, cp, scripts) within a controlled skills repository. No destructive, exfiltrating, or obfuscated actions are present. It only copies templates, runs metadata checks, and installs skills locally.
No concerns found
Examples
/create-skill/create-skill cloudflare-analyticsCreate Skill
Interactive wizard for creating new Claude Code skills from templates.
Command Usage
/create-skill [skill-name]
- With name:
/create-skill cloudflare-analytics - Without name:
/create-skill(interactive mode)
Your Task
Guide the user through creating a new skill with proper structure, then install it for testing.
Step 1: Gather Information
If skill name not provided as argument, show the interactive prompt:
═══════════════════════════════════════════════
CREATE NEW SKILL
═══════════════════════════════════════════════
I'll help you create a new skill from the template.
What's the skill name?
(lowercase-hyphen-case, e.g., "tanstack-router" or "cloudflare-queues")
Your answer:
Name validation:
- Lowercase letters, digits, and hyphens only
- Must start with a letter
- Max 40 characters
- No underscores or spaces
If invalid:
⚠️ Skill name should be lowercase-hyphen-case.
Examples:
✅ tanstack-query
✅ cloudflare-r2
✅ react-hook-form
❌ TanstackQuery (no capitals)
❌ tanstack_query (no underscores)
❌ tanstack query (no spaces)
Try again:
Step 2: Check if Exists
ls skills/<skill-name>/ 2>/dev/null
If exists:
❌ Skill "<skill-name>" already exists at skills/<skill-name>/
Options:
1. Choose a different name
2. Delete existing and start fresh
3. Edit the existing skill instead
Your choice (1-3):
Step 3: Ask Skill Type
What type of skill is this?
1. Cloudflare - Workers, D1, R2, KV, AI, etc.
2. AI/ML - OpenAI, Anthropic, Gemini, AI SDK
3. Frontend - React, UI libraries, styling
4. Auth - Authentication providers
5. Database - ORMs, data stores
6. Tooling - CLI tools, build systems, MCPs
7. Generic - Standard template (no customization)
Your choice [1-7]:
Step 4: Create Skill Directory
# Copy template
cp -r /home/wsladmin/dev/claude-skills/templates/skill-skeleton/ /home/wsladmin/dev/claude-skills/skills/<skill-name>/
# Verify creation
ls -la /home/wsladmin/dev/claude-skills/skills/<skill-name>/
Step 5: Auto-populate Fields
In SKILL.md, replace:
name:→ the skill name providedLast Updated→ today's date (YYYY-MM-DD)Verifieddate → today's dateStatus→ Beta
In README.md, replace:
- Title → skill name as Title Case
Last Updated→ today's dateStatus→ Beta
Step 6: Apply Type-Specific Guidance
Based on skill type choice, mention the reference example:
| Type | Reference Skill | Key Reminder |
|------|-----------------|--------------|
| Cloudflare | skills/cloudflare-d1/ | Check cloudflare-docs MCP, prerequisite: cloudflare-worker-base |
| AI/ML | skills/ai-sdk-core/ | Verify model names are current, add rate limiting |
| Frontend | skills/tailwind-v4-shadcn/ | Component patterns, TypeScript types |
| Auth | skills/clerk-auth/ | Security considerations, token handling |
| Database | skills/drizzle-orm-d1/ | Schema patterns, migration workflow |
| Tooling | skills/fastmcp/ | CLI usage patterns, integration examples |
| Generic | templates/skill-skeleton/ | Standard template |
Step 7: Run Metadata Check
./scripts/check-metadata.sh <skill-name>
Report any issues found.
Step 8: Install the Skill
./scripts/install-skill.sh <skill-name>
Output: Show Summary
After successful creation, display:
═══════════════════════════════════════════════
✅ SKILL CREATED: <skill-name>
═══════════════════════════════════════════════
Type: [Selected type]
Reference: skills/[reference-skill]/
Created files:
skills/<skill-name>/
├── SKILL.md ← Main documentation (fill TODOs)
├── README.md ← Auto-trigger keywords
├── scripts/ ← Helper scripts (optional)
├── references/ ← Reference docs (optional)
└── assets/ ← Templates/images (optional)
Installed to: ~/.claude/skills/<skill-name>/
═══════════════════════════════════════════════
NEXT STEPS
═══════════════════════════════════════════════
1. Fill in SKILL.md TODOs:
• Description with "Use when" scenarios (250-350 chars)
• Quick Start guide
• Critical rules (Always Do / Never Do)
• Known issues with sources (GitHub links)
• Package versions with verification date
2. Fill in README.md TODOs:
• Auto-trigger keywords (primary, secondary, error-based)
• Token efficiency metrics
• When to use / don't use
3. Add resources (optional):
• scripts/ - Automation scripts
• references/ - Docs Claude can load
• assets/ - Templates, images
4. Test discovery:
Ask Claude Code: "Help me with <skill topic>"
Claude should discover and offer to use the skill.
5. Verify with checklist:
See ONE_PAGE_CHECKLIST.md
6. Commit when ready:
git add skills/<skill-name>
git commit -m "Add <skill-name> skill"
═══════════════════════════════════════════════
Would you like me to open SKILL.md to start filling in the TODOs?
Error Handling
If template directory missing:
❌ Template not found at templates/skill-skeleton/
This repo may not be set up correctly.
Run: ls templates/
If install script fails:
⚠️ Skill created but install failed.
Manual install:
ln -s $(pwd)/skills/<skill-name> ~/.claude/skills/<skill-name>
Or fix the issue and run:
./scripts/install-skill.sh <skill-name>
If metadata check fails:
⚠️ Metadata issues found - fix before committing.
Common issues:
• Missing name: field
• Description too short/long
• Invalid YAML frontmatter
Example Session
User: /create-skill
Claude:
═══════════════════════════════════════════════
CREATE NEW SKILL
═══════════════════════════════════════════════
What's the skill name?
(lowercase-hyphen-case, e.g., "tanstack-router")
User: tanstack-router
Claude:
What type of skill is this?
1. Cloudflare 2. AI/ML 3. Frontend 4. Auth 5. Database 6. Tooling 7. Generic
User: 3
Claude: Creating skill "tanstack-router"...
[Creates directory, pre-fills files, installs]
═══════════════════════════════════════════════
✅ SKILL CREATED: tanstack-router
═══════════════════════════════════════════════
Type: Frontend
Reference: skills/tailwind-v4-shadcn/
[Shows file structure and next steps]
Would you like me to open SKILL.md to start filling in the TODOs?
Important Notes
- Skills are symlinked to
~/.claude/skills/for Claude Code to discover - Fill ALL [TODO] markers in SKILL.md before committing
- Description: 250-350 characters with "Use when:" scenarios
- Include keywords IN the description text
- ONLY valid frontmatter fields:
name,description,allowed-tools - Do NOT use
license:ormetadata:in frontmatter - Test with
check-metadata.shbefore committing
Quick Reference
| Item | Location |
|------|----------|
| Template | templates/skill-skeleton/ |
| Skills | skills/ |
| Install script | scripts/install-skill.sh |
| Metadata check | scripts/check-metadata.sh |
| Checklist | ONE_PAGE_CHECKLIST.md |
| Standards | planning/claude-code-skill-standards.md |
Version: 1.1.0 Last Updated: 2025-12-04
Next.js App Router Expert
Development
A skill that turns Claude into a Next.js App Router expert.
README Generator
Development
Creates professional and comprehensive README.md files for your projects.
API Documentation Writer
Development
Generates comprehensive API documentation in OpenAPI/Swagger format.