Automated summary
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
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/skill-maker-mm8o51j8/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
mkdir -p '.skill-downloads/skill-maker-mm8o51j8' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/skill-maker-mm8o51j8/download' --output '.skill-downloads/skill-maker-mm8o51j8/SKILL.md.part' && mv '.skill-downloads/skill-maker-mm8o51j8/SKILL.md.part' '.skill-downloads/skill-maker-mm8o51j8/SKILL.md'2. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
Tools declared by the author (check availability in your agent): Read Write Edit Bash Glob Grep
Original excerpt: 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
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.
Claude Code
test -f '.skill-downloads/skill-maker-mm8o51j8/SKILL.md' && test -s '.skill-downloads/skill-maker-mm8o51j8/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/skill-maker' && cp -R '.skill-downloads/skill-maker-mm8o51j8' '.claude/skills/skill-maker'OpenSkills
OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.
Official OpenSkills installationopenskills install './.skill-downloads/skill-maker-mm8o51j8'openskills read 'skill-maker-mm8o51j8'Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.
For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.
openskills syncManual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/skill-maker-mm8o51j8/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
React Hook Form Best Practices
Development
Master React Hook Form: avoid anti-patterns, manage subscriptions, and handle reset, dirty state, and controlled inputs correctly.
Emotion to Mantine Migration
Development
Migrate Emotion styled-components to Mantine components with style props and CSS modules. Use when converting .styled.tsx files or removing @emotion imports.
Scope Creep Detector
Development
Analyzes git diffs against a stated intent to detect scope creep, unrelated files, broad PRs, and oversized changes, then suggests keep, split, or justify actions.