| name | skills-dev |
| description | This skill should be used when creating skills, writing SKILL.md files, or when "create skill", "new skill", "validate skill", or "SKILL.md" are mentioned. Covers cross-platform Agent Skills specification. |
| metadata | {"version":"2.1.0","related-skills":["claude-skills","claude-plugins","claude-agents","codex-config"]} |
| allowed-tools | Read Write Edit Grep Glob Bash TaskCreate TaskUpdate TaskList TaskGet AskUserQuestion |
Skills Development
Create skills that follow the Agent Skills specification—an open format supported by Claude Code, Cursor, VS Code, GitHub Copilot, Codex, and other agent products.
Workflow
- Discovery — Understand what the skill should do
- Archetype Selection — Choose the best pattern
- Initialization — Create skill structure
- Customization — Tailor to specific needs
- Validation — Verify quality before committing
Stage 1: Discovery
Ask about the skill:
- What problem does this skill solve?
- What are the main capabilities?
- What triggers should invoke it? (phrases users would say)
- Where should it live? (personal, project, or plugin)
Stage 2: Archetype Selection
| Archetype | Use When | Example |
|---|
| simple | Basic skill without scripts | Quick reference, style guide |
| api-wrapper | Wrapping external APIs | GitHub API, Stripe API |
| document-processor | Working with file formats | PDF extractor, Excel analyzer |
| dev-workflow | Automating development tasks | Git workflow, project scaffolder |
| research-synthesizer | Gathering and synthesizing information | Competitive analysis, literature review |
Stage 3: Directory Structure
skill-name/
├── SKILL.md # Required: instructions + metadata
├── scripts/ # Optional: executable code
├── references/ # Optional: documentation
└── assets/ # Optional: templates, resources
Stage 4: Frontmatter Schema
---
name: skill-name
description: What it does and when to use it. Include trigger keywords.
version: 1.0.0
license: Apache-2.0
compatibility: Requires git and jq
metadata:
author: your-org
category: development
tags: [testing, automation]
---
| Field | Required | Constraints |
|---|
name | Yes | 2-64 chars, lowercase/numbers/hyphens, must match directory |
description | Yes | 10-1024 chars, describes what + when |
version | No | Semantic version (MAJOR.MINOR.PATCH) |
license | No | License name or reference |
compatibility | No | 1-500 chars, environment requirements |
metadata | No | Object for custom fields |
Note: Platform-specific fields (e.g., Claude's allowed-tools, user-invocable) should be added per-platform. See claude-code.md for Claude Code extensions.
Custom Frontmatter
Custom fields must be nested under metadata:
---
name: my-skill
description: ...
metadata:
author: your-org
version: "1.0"
category: development
tags: [typescript, testing]
---
Top-level custom fields are not allowed and may cause parsing errors.
Description Formula
[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.
Checklist:
Stage 5: Validation
Validation Checklist
A. YAML Frontmatter
B. Naming
C. Description Quality
D. Structure
Report Format
# Skill Check: {skill-name}
**Status**: PASS | WARNINGS | FAIL
**Issues**: {critical} critical, {warnings} warnings
## Critical (must fix)
1. {issue with fix}
## Warnings (should fix)
1. {issue with fix}
## Strengths
- {what's done well}
Core Principles
Concise is key
Context window is shared. Only include what the agent doesn't already know. Challenge each paragraph—does it justify its token cost?
Third-person descriptions
Descriptions inject into system prompt:
- "Extracts text from PDFs"
- "I can help you extract text from PDFs"
Progressive disclosure
Keep SKILL.md under 500 lines. Move details to:
references/ - Detailed docs, API references
scripts/ - Executable utilities (code never enters context)
assets/ - Templates, data files
Token loading:
- Metadata (~100 tokens): name + description at startup
- Instructions (<5000 tokens): SKILL.md body when activated
- Resources (as needed): files loaded only when referenced
Degrees of freedom
Match instruction specificity to task requirements:
- High freedom (text): Multiple valid approaches, use judgment
- Medium freedom (pseudocode): Preferred pattern with variation allowed
- Low freedom (scripts): Exact sequence required, no deviation
See patterns.md for detailed examples.
Naming Requirements
- Lowercase letters, numbers, hyphens only
- Cannot start/end with hyphen or contain
--
- Must match parent directory name
- Cannot contain
anthropic or claude
Recommended: Gerund form (processing-pdfs, reviewing-code)
Platform-Specific Guidance
Skills are cross-platform, but each tool has specific implementation details:
- Claude Code: See claude-code.md for tool restrictions, testing, troubleshooting, and Claude-specific frontmatter extensions
- Codex CLI: See codex.md for discovery paths,
$skill-name invocation
See implementations.md for storage paths and invocations.md for activation patterns.
References
External Resources