agent-skill
Create and structure Claude Code agent skills. Use when the user wants to create a new skill, write an agent skill, make a claude skill, or asks about SKILL.md files.
When & Why to Use This Skill
The Agent Skill Creator is a specialized utility designed to streamline the development and structuring of custom Claude Code agent skills. By providing an interactive workflow, it helps developers generate standardized SKILL.md files with optimized metadata, precise trigger phrases, and granular tool restrictions. This skill ensures that custom AI behaviors are correctly packaged for either personal or project-wide use, enhancing the modularity and reliability of agentic workflows within the Claude Code ecosystem.
Use Cases
- Standardizing Team Workflows: Automatically generate structured skill files in a project's .claude/skills/ directory to ensure all team members use consistent AI-assisted coding patterns.
- Custom Tool Governance: Creating specialized skills with restricted tool access (e.g., Read-only or Write-focused) to maintain security and prevent unintended file modifications during specific tasks.
- Optimizing Semantic Activation: Refining skill descriptions and trigger phrases to improve the accuracy of Claude's semantic matching, ensuring the right skill activates for specific user intents.
- Complex Skill Architecture: Designing multi-file agent skills that utilize progressive disclosure, keeping the primary SKILL.md concise while linking to detailed reference documentation and utility scripts.
| name | agent-skill |
|---|---|
| description | Create and structure Claude Code agent skills. Use when the user wants to create a new skill, write an agent skill, make a claude skill, or asks about SKILL.md files. |
Agent Skill Creator
Help users create well-structured Claude Code skills through an interactive process.
Workflow
Step 1: Ask about location first
Before anything else, ask where the skill should be created:
- Personal (
~/.claude/skills/): Available across all projects for this user - Project (
./.claude/skills/): Shared with team via version control
Use the AskUserQuestion tool for this.
Step 2: Gather requirements through questions
Ask about each of these in sequence:
Skill name: What should the skill be called?
- Must be lowercase letters, numbers, and hyphens only
- Maximum 64 characters
- Examples:
code-review,api-docs,test-generator
Purpose: What does this skill help with?
- What specific task or capability does it provide?
- What problem does it solve?
Trigger phrases: When should this skill activate?
- What words would users say when they need this skill?
- Be specific about scenarios (not vague like "helps with code")
Key instructions: What should Claude do when this skill is active?
- Step-by-step process
- Required outputs or formats
- Constraints or rules to follow
Tool restrictions: Should the skill limit available tools?
- Full access (default): No restrictions
- Read-only:
Read, Grep, Glob - Write-focused:
Read, Write, Edit, Glob, Grep - Custom: Specify exact tools
Complexity: Will this skill need supporting files?
- Simple: Single SKILL.md under 500 lines
- Complex: Multiple files with progressive disclosure
Step 3: Generate the skill
Create the skill file at the chosen location:
- Personal:
~/.claude/skills/{skill-name}/SKILL.md - Project:
./.claude/skills/{skill-name}/SKILL.md
Skill File Structure
Required YAML frontmatter
---
name: skill-name-here
description: Clear description of what it does and when to use it. Include trigger keywords users would say. Max 1024 chars.
allowed-tools: Tool1, Tool2 # Optional - omit for full access
model: claude-sonnet-4-20250514 # Optional - only if specific model needed
---
Instruction sections
After frontmatter, include:
- Title:
# Skill Name - Overview: Brief explanation of what the skill does
- Instructions: Clear, numbered steps for Claude to follow
- Examples (optional): Concrete usage examples
- References (if multi-file): Links to supporting files
Writing effective descriptions
The description determines when Claude activates the skill. It uses semantic matching.
Bad: "Helps with documents" Good: "Extract text and tables from PDF files, fill forms, merge documents. Use when working with PDFs or when the user mentions document extraction."
Include:
- Specific capabilities (verbs: extract, generate, review, format)
- Trigger keywords users would naturally say
- Clear "use when" guidance
Multi-file structure
For complex skills, keep SKILL.md under 500 lines and link to supporting files:
skill-name/
├── SKILL.md # Overview and navigation
├── reference.md # Detailed documentation
├── examples.md # Usage examples
└── scripts/ # Utility scripts (executed, not loaded)
└── helper.py
Key rules:
- Keep references one level deep (no A -> B -> C chains)
- Scripts execute without loading into context
- Claude reads supporting files only when needed
Example skills
See examples.md for reference examples of well-structured skills.
Quality checklist
Before finalizing, verify:
- Name is lowercase with hyphens only
- Description includes trigger keywords
- Description explains when to use it
- Instructions are clear and actionable
- Tool restrictions match the skill's purpose
- SKILL.md stays under 500 lines
- Supporting files are one level deep only