Our review
Creates, validates, and maintains Claude Code Agent Skills following the agentskills.io specification.
Strengths
- Provides a clear template and step-by-step instructions
- Enforces frontmatter validation and best practices
- Supports progressive disclosure via reference files
- Allows restricting tools with allowed-tools field
Limitations
- Only works with Claude Code platform
- Requires manual file creation and directory setup
- No scaffolding beyond the template provided
When you need to create a new agent skill or ensure existing skills follow agentskills.io best practices.
When you are not using Claude Code or need a skill for a different AI agent platform.
Security analysis
CautionThe skill itself is a meta-skill for creating agent skills, and its instructions involve only non-destructive Bash commands like mkdir, head, and ls. The allowed-tools declaration includes Bash, which is a powerful tool, but the content is legitimate and focused on skill creation workflows. No data exfiltration, unsafe payloads, or disabling of safety features.
- •Skill uses Bash for creating directories and file validation, which could be potentially misused if combined with unsanitized input.
Examples
Create a new agent skill named 'py-linter' that runs flake8 on Python files in the project. Write the SKILL.md with proper frontmatter and instructions.Check the SKILL.md in my ~/.claude/skills/data-extractor for proper frontmatter format and ensure it follows the skill-making best practices.I want to create a project-level skill for running tests. Create a .claude/skills/test-runner/SKILL.md with a description that triggers on 'run tests' and instructions to use pytest.name: skill-maker description: Create, validate, and maintain Claude Code Agent Skills. Use when the user wants to add a skill, create a skill, make a skill, build a skill, or mentions skill creation. Also use when improving SKILL.md files, debugging skill discovery, or asking about skill best practices. allowed-tools: Read Write Edit Bash Glob Grep
Skill Maker
Create discoverable, focused Agent Skills following the agentskills.io specification.
Core Principles
- Skills are model-invoked: Claude decides when to use them based on context
- Descriptions drive discovery: The
descriptionfield determines when Claude activates the skill - Progressive disclosure: Main SKILL.md under 500 lines; detailed content in reference files
- One capability per skill: Keep skills focused on a single domain
Quick Template
Every SKILL.md must begin with YAML frontmatter:
---
name: skill-name
description: What this skill does and when to use it. Include trigger terms.
---
# Skill Name
Brief introduction...
## Instructions
1. Step by step guidance...
## Examples
Concrete examples...
Frontmatter Specification
Required Fields
| Field | Constraints |
|-------|-------------|
| name | Max 64 chars. Lowercase, numbers, hyphens only. No leading/trailing/consecutive hyphens. Must match directory name. |
| description | Max 1024 chars. Non-empty. Include what it does, when to use, trigger terms. |
Optional Fields
| Field | Purpose |
|-------|---------|
| license | License name or reference to bundled file |
| compatibility | Max 500 chars. Environment requirements |
| metadata | Key-value mapping for additional properties |
| allowed-tools | Space-delimited list of pre-approved tools |
Description Formula
[What it does] + [When to use it] + [Key trigger terms]
Good:
description: Extract text and tables from PDF files, fill forms, merge documents. Use when working with PDF files or when the user mentions PDFs, forms, or document extraction.
Bad:
description: Helps with documents
Creating a Skill
Step 1: Create Directory and File
mkdir -p ~/.claude/skills/skill-name
Personal skills (~/.claude/skills/): Individual workflows, experimental
Project skills (.claude/skills/): Team workflows, shared (committed to git)
Step 2: Write Frontmatter FIRST
Before any content, create lines 1-4:
---
name: skill-name
description: Clear description with what, when, and triggers
---
Step 3: Validate Frontmatter
head -n 10 ~/.claude/skills/skill-name/SKILL.md
Verify:
- Line 1: exactly
--- - Line 2:
name: skill-name(matches directory) - Line 3:
description: ...(non-empty, on same line) - Line 4: exactly
--- - Line 5: blank line
Step 4: Add Content
# Skill Name
Brief intro (1-2 sentences).
## Quick Start
Most common use case with example.
## Instructions
Step-by-step guidance:
1. First action
2. Second action
3. Handle results
## Examples
Concrete, copy-paste ready examples.
Step 5: Add Reference Files (Optional)
For skills with detailed content:
my-skill/
├── SKILL.md # Under 500 lines
├── references/
│ ├── REFERENCE.md # Detailed docs
│ └── EXAMPLES.md # Extended examples
└── scripts/
└── helper.py # Utilities
Reference from SKILL.md:
For advanced usage, see [references/REFERENCE.md](references/REFERENCE.md).
Keep references one level deep. Claude loads files only when needed.
Using allowed-tools
Restrict which tools Claude can use (space-delimited):
---
name: safe-file-reader
description: Read files without making changes. Use for read-only file access.
allowed-tools: Read Grep Glob
---
Tool patterns are also supported:
allowed-tools: Bash(git:*) Bash(jq:*) Read Write
If omitted, Claude asks for permission as normal.
Workflow for Claude
When creating a skill:
- Plan: Determine name, location, focus
- Create:
mkdir -p [path]/skill-name - Write frontmatter first: Lines 1-4 with name and description
- Validate:
head -n 10to verify structure - Add content: Instructions, examples below frontmatter
- Final check: Verify description is discoverable
- Report: Confirm to user with name, location, description
Skill Locations
| Location | Purpose |
|----------|---------|
| ~/.claude/skills/ | Personal skills |
| .claude/skills/ | Project skills (git) |
When to Create a Skill
Create a skill when:
- You repeat the same workflow multiple times
- You have domain-specific expertise to encode
- Your team needs consistent workflows
Don't create a skill when:
- It's a one-time task
- A slash command would be simpler
- The workflow is too broad (split into multiple skills)
Progressive Disclosure Guidelines
| Level | Token Cost | Content |
|-------|------------|---------|
| Metadata | ~100 tokens | name and description (loaded at startup) |
| Instructions | < 5000 tokens | SKILL.md body (loaded when activated) |
| Resources | As needed | Reference files (loaded on demand) |
Keep SKILL.md under 500 lines. Move detailed content to references/.
Quick Reference
Create:
mkdir -p ~/.claude/skills/skill-name
Validate:
head -n 10 ~/.claude/skills/skill-name/SKILL.md
List skills:
ls ~/.claude/skills/*/SKILL.md
ls .claude/skills/*/SKILL.md
Debug:
claude --debug
Additional Resources
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.