Explains how to design and write skills for Claude Code plugins: SKILL.md frontmatter, bundled scripts, references and assets, and descriptions that trigger at the right time.
Install the "skill-development" agent skill from https://github.com/anthropics/claude-plugins-official/tree/main/plugins/plugin-dev/skills/skill-development into .claude/skills/skill-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skill-development", then confirm the skill loads.
Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Type this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
skills CLI
$ npx skills add anthropics/claude-plugins-official --skill skill-development -a codex
Project install goes to .agents/skills/; add -g for ~/.codex/skills/.
Install the "skill-development" agent skill from https://github.com/anthropics/claude-plugins-official/tree/main/plugins/plugin-dev/skills/skill-development into .agents/skills/skill-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skill-development", then confirm the skill loads.
Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add anthropics/claude-plugins-official --skill skill-development -a cursor
Project install goes to .agents/skills/; add -g for ~/.cursor/skills/.
Install the "skill-development" agent skill from https://github.com/anthropics/claude-plugins-official/tree/main/plugins/plugin-dev/skills/skill-development into .cursor/skills/skill-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skill-development", then confirm the skill loads.
Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
skills CLI
$ npx skills add anthropics/claude-plugins-official --skill skill-development -a gemini-cli
Project install goes to .agents/skills/; add -g for ~/.gemini/skills/.
Install the "skill-development" agent skill from https://github.com/anthropics/claude-plugins-official/tree/main/plugins/plugin-dev/skills/skill-development into .gemini/skills/skill-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skill-development", then confirm the skill loads.
Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Installs for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
skills CLI
$ npx skills add anthropics/claude-plugins-official --skill skill-development -a github-copilot
Project install goes to .agents/skills/; add -g for ~/.copilot/skills/.
Install the "skill-development" agent skill from https://github.com/anthropics/claude-plugins-official/tree/main/plugins/plugin-dev/skills/skill-development into .github/skills/skill-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skill-development", then confirm the skill loads.
GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add anthropics/claude-plugins-official --skill skill-development -a opencode
OpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
Install the "skill-development" agent skill from https://github.com/anthropics/claude-plugins-official/tree/main/plugins/plugin-dev/skills/skill-development into .opencode/skills/skill-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skill-development", then confirm the skill loads.
OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Facts
Skill name
skill-development
GitHub stars
38k
Used in
9 other repos
Token cost
~5.6k tokens
SKILL.md length
2,322 words
Files
2 (incl. references)
Skills in repo
29
Repo updated
First seen
Licence
Apache-2.0
At a glance
Explains how to design and write skills for Claude Code plugins: SKILL.md frontmatter, bundled scripts, references and assets, and descriptions that trigger at the right time.
Works in 6 steps: Understanding the Skill with Concrete… → Planning the Reusable Skill Contents → Create Skill Structure → …
Creating a new skill inside a Claude Code plugin
SKILL.md covers About Skills, Skill Creation Process, Plugin-Specific Considerations and Examples from Plugin-Dev, plus 4 more sections
Calls claude
What it does
Skills are described as self-contained packages that give the agent specialized workflows, tool and file-format instructions, domain knowledge such as schemas and company policies, and bundled resources. Every skill has a required SKILL.md with YAML frontmatter, and the `name` and `description` there decide when the skill loads, so the guide asks for a specific description written in the third person, such as saying the skill should be used when a given request comes up.
Optional resources are covered next. A `scripts/` folder holds code for tasks that need deterministic results or keep getting rewritten, for example a `scripts/rotate_pdf.py`, and scripts can run without being loaded into context. A `references/` folder holds material the agent reads only when needed, such as `references/finance.md` for schemas or `references/api_docs.md` for API specs. The skill also bundles `references/skill-creator-original.md`, and the excerpt is cut off before the later sections on progressive disclosure and structure.
When your agent uses it
Creating a new skill inside a Claude Code plugin
Rewriting a skill's description so it triggers when it should
Deciding what belongs in SKILL.md versus scripts or reference files
Example prompts
“Create a skill for our deploy runbook inside the ops plugin.”
“Improve the description of my api-docs skill so it triggers on API questions.”
“Help me reorganize this very long SKILL.md into a short core file and reference files.”
Workflow steps
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit b78ac49. It shows what the files ask for, not the result of running them.
Tool permissions
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Runs code
Shell commands in SKILL.md call:
claude
From the folder's file list and the shell code blocks in SKILL.md.
Network
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Credentials
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Context cost
Plugin Skill Development Guide loads about 5.6k tokens when it runs, and up to ~8.5k if it reads all its reference files. Until then it costs about 77 tokens; SKILL.md has 2,322 words of instructions outside code blocks.
Always· name and description, kept in context so the agent knows when to use it
~77
When it runs· the whole SKILL.md, loaded when a task matches
~5.6k
With references· SKILL.md plus every file in references/, read only if the agent opens them
~8.5k
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
Safety
Auto-check passed
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
Download SKILL.mdSave it as .claude/skills/skill-development/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
skill-development
description
This skill should be used when the user wants to "create a skill", "add a skill to plugin", "write a new skill", "improve skill description", "organize skill content", or needs guidance on skill structure, progressive disclosure, or skill development best practices for Claude Code plugins.
version
0.1.0
Skill Development for Claude Code Plugins
This skill provides guidance for creating effective skills for Claude Code plugins.
About Skills
Skills are modular, self-contained packages that extend Claude's capabilities by providing
specialized knowledge, workflows, and tools. Think of them as "onboarding guides" for specific
domains or tasks—they transform Claude from a general-purpose agent into a specialized agent
equipped with procedural knowledge that no model can fully possess.
What Skills Provide
Specialized workflows - Multi-step procedures for specific domains
Tool integrations - Instructions for working with specific file formats or APIs
Domain expertise - Company-specific knowledge, schemas, business logic
Bundled resources - Scripts, references, and assets for complex and repetitive tasks
Anatomy of a Skill
Every skill consists of a required SKILL.md file and optional bundled resources:
skill-name/
├── SKILL.md (required)
│ ├── YAML frontmatter metadata (required)
│ │ ├── name: (required)
│ │ └── description: (required)
│ └── Markdown instructions (required)
└── Bundled Resources (optional)
├── scripts/ - Executable code (Python/Bash/etc.)
├── references/ - Documentation intended to be loaded into context as needed
└── assets/ - Files used in output (templates, icons, fonts, etc.)
SKILL.md (required)
Metadata Quality: The name and description in YAML frontmatter determine when Claude will use the skill. Be specific about what the skill does and when to use it. Use the third-person (e.g. "This skill should be used when..." instead of "Use this skill when...").
Bundled Resources (optional)
Scripts (scripts/)
Executable code (Python/Bash/etc.) for tasks that require deterministic reliability or are repeatedly rewritten.
When to include: When the same code is being rewritten repeatedly or deterministic reliability is needed
Example: scripts/rotate_pdf.py for PDF rotation tasks
Benefits: Token efficient, deterministic, may be executed without loading into context
Note: Scripts may still need to be read by Claude for patching or environment-specific adjustments
References (references/)
Documentation and reference material intended to be loaded as needed into context to inform Claude's process and thinking.
When to include: For documentation that Claude should reference while working
Examples: references/finance.md for financial schemas, references/mnda.md for company NDA template, references/policies.md for company policies, references/api_docs.md for API specifications
Use cases: Database schemas, API documentation, domain knowledge, company policies, detailed workflow guides
Benefits: Keeps SKILL.md lean, loaded only when Claude determines it's needed
Best practice: If files are large (>10k words), include grep search patterns in SKILL.md
Avoid duplication: Information should live in either SKILL.md or references files, not both. Prefer references files for detailed information unless it's truly core to the skill—this keeps SKILL.md lean while making information discoverable without hogging the context window. Keep only essential procedural instructions and workflow guidance in SKILL.md; move detailed reference material, schemas, and examples to references files.
Assets (assets/)
Files not intended to be loaded into context, but rather used within the output Claude produces.
When to include: When the skill needs files that will be used in the final output
Examples: assets/logo.png for brand assets, assets/slides.pptx for PowerPoint templates, assets/frontend-template/ for HTML/React boilerplate, assets/font.ttf for typography
Use cases: Templates, images, icons, boilerplate code, fonts, sample documents that get copied or modified
Benefits: Separates output resources from documentation, enables Claude to use files without loading them into context
Progressive Disclosure Design Principle
Skills use a three-level loading system to manage context efficiently:
Metadata (name + description) - Always in context (~100 words)
SKILL.md body - When skill triggers (<5k words)
Bundled resources - As needed by Claude (Unlimited*)
*Unlimited because scripts can be executed without reading into context window.
Skill Creation Process
To create a skill, follow the "Skill Creation Process" in order, skipping steps only if there is a clear reason why they are not applicable.
Step 1: Understanding the Skill with Concrete Examples
Skip this step only when the skill's usage patterns are already clearly understood. It remains valuable even when working with an existing skill.
To create an effective skill, clearly understand concrete examples of how the skill will be used. This understanding can come from either direct user examples or generated examples that are validated with user feedback.
For example, when building an image-editor skill, relevant questions include:
"What functionality should the image-editor skill support? Editing, rotating, anything else?"
"Can you give some examples of how this skill would be used?"
"I can imagine users asking for things like 'Remove the red-eye from this image' or 'Rotate this image'. Are there other ways you imagine this skill being used?"
"What would a user say that should trigger this skill?"
To avoid overwhelming users, avoid asking too many questions in a single message. Start with the most important questions and follow up as needed for better effectiveness.
Conclude this step when there is a clear sense of the functionality the skill should support.
Step 2: Planning the Reusable Skill Contents
To turn concrete examples into an effective skill, analyze each example by:
Considering how to execute on the example from scratch
Identifying what scripts, references, and assets would be helpful when executing these workflows repeatedly
Example: When building a pdf-editor skill to handle queries like "Help me rotate this PDF," the analysis shows:
Rotating a PDF requires re-writing the same code each time
A scripts/rotate_pdf.py script would be helpful to store in the skill
Example: When designing a frontend-webapp-builder skill for queries like "Build me a todo app" or "Build me a dashboard to track my steps," the analysis shows:
Writing a frontend webapp requires the same boilerplate HTML/React each time
An assets/hello-world/ template containing the boilerplate HTML/React project files would be helpful to store in the skill
Example: When building a big-query skill to handle queries like "How many users have logged in today?" the analysis shows:
Querying BigQuery requires re-discovering the table schemas and relationships each time
A references/schema.md file documenting the table schemas would be helpful to store in the skill
For Claude Code plugins: When building a hooks skill, the analysis shows:
Developers repeatedly need to validate hooks.json and test hook scripts
scripts/validate-hook-schema.sh and scripts/test-hook.sh utilities would be helpful
references/patterns.md for detailed hook patterns to avoid bloating SKILL.md
To establish the skill's contents, analyze each concrete example to create a list of the reusable resources to include: scripts, references, and assets.
Step 3: Create Skill Structure
For Claude Code plugins, create the skill directory structure:
Note: Unlike the generic skill-creator which uses init_skill.py, plugin skills are created directly in the plugin's skills/ directory with a simpler manual structure.
Step 4: Edit the Skill
When editing the (newly-created or existing) skill, remember that the skill is being created for another instance of Claude to use. Focus on including information that would be beneficial and non-obvious to Claude. Consider what procedural knowledge, domain-specific details, or reusable assets would help another Claude instance execute these tasks more effectively.
Start with Reusable Skill Contents
To begin implementation, start with the reusable resources identified above: scripts/, references/, and assets/ files. Note that this step may require user input. For example, when implementing a brand-guidelines skill, the user may need to provide brand assets or templates to store in assets/, or documentation to store in references/.
Also, delete any example files and directories not needed for the skill. Create only the directories you actually need (references/, examples/, scripts/).
Update SKILL.md
Writing Style: Write the entire skill using imperative/infinitive form (verb-first instructions), not second person. Use objective, instructional language (e.g., "To accomplish X, do Y" rather than "You should do X" or "If you need to do X"). This maintains consistency and clarity for AI consumption.
Description (Frontmatter): Use third-person format with specific trigger phrases:
yaml
---
name: Skill Name
description: This skill should be used when the user asks to "specific phrase 1", "specific phrase 2", "specific phrase 3". Include exact phrases users would say that should trigger this skill. Be concrete and specific.
version: 0.1.0
---
Good description examples:
yaml
description: This skill should be used when the user asks to "create a hook", "add a PreToolUse hook", "validate tool use", "implement prompt-based hooks", or mentions hook events (PreToolUse, PostToolUse, Stop).
Bad description examples:
yaml
description: Use this skill when working with hooks. # Wrong person, vague
description: Load when user needs hook help. # Not third person
description: Provides hook guidance. # No trigger phrases
To complete SKILL.md body, answer the following questions:
What is the purpose of the skill, in a few sentences?
When should the skill be used? (Include this in frontmatter description with specific triggers)
In practice, how should Claude use the skill? All reusable skill contents developed above should be referenced so that Claude knows how to use them.
Keep SKILL.md lean: Target 1,500-2,000 words for the body. Move detailed content to references/:
Detailed patterns → references/patterns.md
Advanced techniques → references/advanced.md
Migration guides → references/migration.md
API references → references/api-reference.md
Reference resources in SKILL.md:
markdown
## Additional Resources
### Reference Files
For detailed patterns and techniques, consult:
- **`references/patterns.md`** - Common patterns
- **`references/advanced.md`** - Advanced use cases
### Example Files
Working examples in `examples/`:
- **`example-script.sh`** - Working example
Step 5: Validate and Test
For plugin skills, validation is different from generic skills:
Check structure: Skill directory in plugin-name/skills/skill-name/
Validate SKILL.md: Has frontmatter with name and description
Check trigger phrases: Description includes specific user queries
Verify writing style: Body uses imperative/infinitive form, not second person
Test progressive disclosure: SKILL.md is lean (~1,500-2,000 words), detailed content in references/
Check references: All referenced files exist
Validate examples: Examples are complete and correct
Test scripts: Scripts are executable and work correctly
Use the skill-reviewer agent:
Ask: "Review my skill and check if it follows best practices"
The skill-reviewer agent will check description quality, content organization, and progressive disclosure.
Show full SKILL.md (921 more words)Show less
Step 6: Iterate
After testing the skill, users may request improvements. Often this happens right after using the skill, with fresh context of how the skill performed.
Iteration workflow:
Use the skill on real tasks
Notice struggles or inefficiencies
Identify how SKILL.md or bundled resources should be updated
Implement changes and test again
Common improvements:
Strengthen trigger phrases in description
Move long sections from SKILL.md to references/
Add missing examples or scripts
Clarify ambiguous instructions
Add edge case handling
Plugin-Specific Considerations
Skill Location in Plugins
Plugin skills live in the plugin's skills/ directory:
Body is focused and lean (1,500-2,000 words ideal, <5k max)
Detailed content moved to references/
Examples are complete and working
Scripts are executable and documented
Progressive Disclosure:
Core concepts in SKILL.md
Detailed docs in references/
Working code in examples/
Utilities in scripts/
SKILL.md references these resources
Testing:
Skill triggers on expected user queries
Content is helpful for intended tasks
No duplicated information across files
References load when needed
Common Mistakes to Avoid
Mistake 1: Weak Trigger Description
❌ Bad:
yaml
description: Provides guidance for working with hooks.
Why bad: Vague, no specific trigger phrases, not third person
✅ Good:
yaml
description: This skill should be used when the user asks to "create a hook", "add a PreToolUse hook", "validate tool use", or mentions hook events. Provides comprehensive hooks API guidance.
Why good: Third person, specific phrases, concrete scenarios
Mistake 2: Too Much in SKILL.md
❌ Bad:
skill-name/
└── SKILL.md (8,000 words - everything in one file)
Focus on strong trigger descriptions, progressive disclosure, and imperative writing style for effective skills that load when needed and provide targeted guidance.
We found 21 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 9 other GitHub owners. This page covers the copy in anthropics/claude-plugins-official, which our catalogue first saw on October 7, 2026.
Plugin Skill Development Guide next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
Plugin Skill Development Guide compared with similar skills
Skill
Stars
Used in
Tokens
Auto-check
Licence
Repo updated
Plugin Skill Development Guide this skillanthropics/claude-plugins-official
A guide to creating and managing Claude Code skills with auto-activation: skill-rules.json triggers, hooks, enforcement levels, YAML frontmatter and progressive disclosure.
Shows how to build a Vibe plugin package in the Agent Plugins 1.0 format, with a plugin.json manifest and optional skills, MCP servers, hooks and other components.
Validates an Agent Skill package against a portable contract with a Python checker, then picks the smallest set of instruction, capability or lifecycle primitives for the task.
Checks and tunes token-saver output compression: reads stats, explains why a command was or was not compressed, and edits config files or environment variables.
Explains how to write agents for Claude Code plugins: the markdown file with YAML frontmatter, trigger descriptions, model and color settings, and system prompt design.
Explains how to bundle Model Context Protocol servers in a Claude Code plugin, covering config files, stdio, SSE, HTTP and WebSocket server types, and authentication.
Explains how to write Claude Code slash commands: Markdown files with YAML frontmatter, arguments, file references, bash context and interactive prompts.
Explains how to design and write skills for Claude Code plugins: SKILL.md frontmatter, bundled scripts, references and assets, and descriptions that trigger at the right time. Skills are described as self-contained packages that give the agent specialized workflows, tool and file-format instructions, domain knowledge such as schemas and company policies, and bundled resources.md with YAML frontmatter, and the `name` and `description` there decide when the skill loads, so the guide asks for a specific description written in the third person, such as saying the skill should be used when a given request comes up.
When should I use Plugin Skill Development Guide?
Plugin Skill Development Guide fits situations like: creating a new skill inside a Claude Code plugin; rewriting a skill's description so it triggers when it should; deciding what belongs in SKILL.md versus scripts or reference files.
How do I install Plugin Skill Development Guide in Claude Code?
Run `npx skills add anthropics/claude-plugins-official --skill skill-development -a claude-code`. Or copy the skill folder (plugins/plugin-dev/skills/skill-development in anthropics/claude-plugins-official) into .claude/skills/skill-development in your project. Claude Code loads it when a task matches its description.
How do I install Plugin Skill Development Guide in Codex?
Run `npx skills add anthropics/claude-plugins-official --skill skill-development -a codex`. Or copy the skill folder (plugins/plugin-dev/skills/skill-development in anthropics/claude-plugins-official) into .agents/skills/skill-development in your project. Codex loads it when a task matches its description.
Can I use Plugin Skill Development Guide in Cursor, Gemini CLI or GitHub Copilot?
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add anthropics/claude-plugins-official --skill skill-development -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/skill-development, .gemini/skills/skill-development, .github/skills/skill-development and .opencode/skills/skill-development in your project.
What does Plugin Skill Development Guide need to run?
Going by SKILL.md and its folder, Plugin Skill Development Guide needs the command-line tools its instructions call (claude).
Does Plugin Skill Development Guide access the network?
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Is Plugin Skill Development Guide safe to install?
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
What licence does Plugin Skill Development Guide use?
Plugin Skill Development Guide is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
How many tokens does Plugin Skill Development Guide use?
About 5.6k tokens (SKILL.md is roughly 23k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.9k tokens, read only when the agent opens those files.
What are the alternatives to Plugin Skill Development Guide?
Skills that share tags, products or a category with Plugin Skill Development Guide: Claude Code Skill Developer Guide (diet103/claude-code-infrastructure-showcase, 10k stars), Picoclaw Skill Creator (sipeed/picoclaw, 30k stars), Mistral Vibe Plugin Creator (mistralai/mistral-vibe, 5.1k stars) and Skill Contract Reviewer (rohitg00/ai-engineering-from-scratch, 66k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Who maintains Plugin Skill Development Guide?
anthropics (a GitHub organization, an official publisher) maintains it in anthropics/claude-plugins-official, which has 37,509 GitHub stars. The repository holds 29 skills in this directory. The repository was last updated on October 8, 2026.