Creates or updates skills with proper YAML frontmatter, progressive disclosure, and best practices per the open Agent Skills specification. Supports simple, tool-restricted, multi-file, and script-based skills. Use when creating new skills, authoring skills, extending agent capabilities, or when `--create-skill` or `--new-skill` flag is mentioned.
/plugin marketplace add outfitter-dev/agents/plugin install agent-kit@outfitterThis skill is limited to using the following tools:
references/compatibility.mdreferences/implementations.mdreferences/invocations.mdCreate skills that follow the Agent Skills specification—an open format supported by Claude Code, Cursor, VS Code, GitHub, and other agent products.
Clarify requirements
~/.claude/skills/) or project (.claude/skills/)?Choose template from templates/:
simple-skill.md - Single SKILL.md filetool-restricted-skill.md - Limited tool accessmulti-file-skill.md - With supporting filesscript-based-skill.md - Includes executable scriptsGenerate name
pdf-processing, code-review)processing-pdfs, analyzing-dataWrite SKILL.md
Add supporting files (if needed)
references/ - detailed documentationscripts/ - executable utilitiesassets/ - templates, data filesValidate
skills-ref validate ./my-skill or skills-checkskill-name/
├── SKILL.md # Required: instructions + metadata
├── scripts/ # Optional: executable code
├── references/ # Optional: documentation
└── assets/ # Optional: templates, resources
---
name: skill-name
description: What it does and when to use it. Include trigger keywords.
license: Apache-2.0 # optional
compatibility: Requires git and jq # optional
metadata: # optional
author: your-org
version: "1.0"
allowed-tools: Read Grep Glob # optional, experimental
---
# Skill Name
## Quick Start
[Minimal working example]
## Instructions
[Step-by-step guidance]
## Examples
[Concrete, runnable examples]
For cross-tool compatibility details, see the [references/](references/) directory.
| Field | Required | Constraints |
|---|---|---|
name | Yes | 1-64 chars, lowercase/numbers/hyphens, must match directory |
description | Yes | 1-1024 chars, describes what + when |
license | No | License name or reference to bundled file |
compatibility | No | 1-500 chars, environment requirements |
metadata | No | Key-value pairs for additional info |
allowed-tools | No | Space-delimited tool list (experimental) |
Refer to the Agent Skills Specification for complete schema.
The context window is shared. Only include what the agent doesn't already know. Challenge each paragraph—does it justify its token cost?
Descriptions inject into system prompt. Use third person:
Keep SKILL.md under 500 lines. Move details to:
references/ - Detailed docs, API referencesscripts/ - Executable utilities (code never enters context)assets/ - Templates, data filesToken loading:
[WHAT] + [WHEN] + [TRIGGERS]
description: Extracts text and tables from PDF files, fills forms, merges documents. Use when working with PDF files or when the user mentions PDFs, forms, or document extraction.
Include trigger keywords that users would naturally say when they need this skill.
--anthropic or claudeRecommended: Gerund form (processing-pdfs, reviewing-code)
Use allowed-tools to limit capabilities (experimental):
# Read-only
allowed-tools: Read Grep Glob
# With shell access
allowed-tools: Bash(git:*) Bash(jq:*) Read
# Full access (default)
# Omit field entirely
Simple - Single SKILL.md file for basic capabilities
Tool-Restricted - Uses allowed-tools to limit tool access
Multi-File - SKILL.md with supporting references/ documentation
Script-Based - Includes executable scripts in scripts/
Use the official skills-ref library:
skills-ref validate ./my-skill
Or use skills-check for integrated validation and review.
Before finalizing, verify:
---)Use the skills-check skill to validate your skill before finalizing.
skills-check to validate and review# Find all skills
find ~/.claude/skills .claude/skills -name "SKILL.md" 2>/dev/null
# Check for tab characters (YAML requires spaces)
grep -P "\t" SKILL.md
# Find broken markdown links
grep -oE '\[[^]]+\]\([^)]+\)' SKILL.md | while read link; do
file=$(echo "$link" | sed 's/.*(\(.*\))/\1/')
[ ! -f "$file" ] && echo "Missing: $file"
done
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.