Guide for creating effective skills. Use when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations. Also use when users ask about skill best practices, frontmatter fields, or skill structure.
How this skill is triggered — by the user, by Claude, or both
Slash command
/advanced-plugin-creator:skill-creatorThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Skills are modular packages that extend Claude's capabilities. They follow the [Agent Skills](https://agentskills.io) open standard. A skill is a directory with a `SKILL.md` entrypoint and optional supporting files.
Skills are modular packages that extend Claude's capabilities. They follow the Agent Skills open standard. A skill is a directory with a SKILL.md entrypoint and optional supporting files.
The context window is a shared resource. Only add context Claude doesn't already have. Prefer concise examples over verbose explanations. Challenge each piece: "Does Claude really need this?"
Skills use three-level loading to manage context:
skill-name/
├── SKILL.md # Main instructions (required)
├── reference.md # Detailed docs (loaded when needed)
├── examples/ # Example outputs
└── scripts/
└── helper.py # Executable scripts
Two parts:
--- markers): Controls triggering and behaviorOnly description is formally recommended. All fields are optional:
| Field | Description |
|---|---|
name | Display name and /slash-command. Defaults to directory name. |
description | What the skill does and WHEN to use it. Primary trigger mechanism. |
argument-hint | Autocomplete hint, e.g. [issue-number]. |
disable-model-invocation | true = only user can invoke. For side-effect workflows. |
user-invocable | false = hidden from / menu. For background knowledge. |
allowed-tools | Tools allowed without permission when skill is active. |
model | Model to use when skill is active. |
context | fork to run in isolated subagent. |
agent | Subagent type with context: fork (e.g. Explore, Plan). |
hooks | Hooks scoped to skill lifecycle. |
Critical: The description is the primary trigger. Include both WHAT the skill does and WHEN to use it. All trigger info goes here, not in the body (body only loads after triggering).
For complete field documentation and examples, see references/frontmatter-reference.md.
Reference files from SKILL.md so Claude knows they exist and when to load them:
## Additional resources
- For complete API details, see [reference.md](reference.md)
- For usage examples, see [examples.md](examples.md)
scripts/: Executable code for deterministic/repeated operations. Token-efficient, can be executed without loading into context.
references/: Documentation loaded into context as needed. For files >100 lines, include a table of contents. If >10k words, include grep patterns in SKILL.md.
assets/: Files used in output (templates, images, fonts). Not loaded into context.
Guidelines:
Do not create extraneous files: README.md, INSTALLATION_GUIDE.md, CHANGELOG.md, etc. Skills are for AI agents, not human documentation.
For subagent execution (context: fork), dynamic context injection (!`command`), string substitutions ($ARGUMENTS, $N), visual output, permissions, and storage locations, see references/advanced-patterns.md.
When a skill supports multiple variations or frameworks, keep core workflow in SKILL.md and move variant details to reference files:
Pattern 1: High-level guide with references
# PDF Processing
## Quick start
[code example]
## Advanced features
- **Form filling**: See [forms.md](forms.md)
- **API reference**: See [reference.md](reference.md)
Pattern 2: Domain-specific organization
bigquery-skill/
├── SKILL.md (overview and navigation)
└── references/
├── finance.md
├── sales.md
└── product.md
Pattern 3: Framework variants
cloud-deploy/
├── SKILL.md (workflow + provider selection)
└── references/
├── aws.md
├── gcp.md
└── azure.md
Skip only when usage patterns are already clear. Ask targeted questions:
Avoid overwhelming users with too many questions at once.
For each example, consider:
Examples:
scripts/rotate_pdf.pyassets/hello-world/ templatereferences/schema.md with table schemasSkip if iterating on an existing skill. For new skills:
scripts/init_skill.py <skill-name> --path <output-directory>
Creates skill directory with SKILL.md template and example resource directories.
The skill is for another Claude instance to use. Include non-obvious procedural knowledge and domain-specific details.
name: Kebab-case, max 64 charactersdescription: Include what + when. Max 1024 characters. This is the trigger mechanism.disable-model-invocation: true for skills with side effects (deploy, commit)user-invocable: false for background knowledge skillscontext: fork and agent for skills that should run in isolationallowed-tools to restrict tool accessFocus on instructions Claude needs after triggering. Do NOT put "When to Use" sections in the body (this info belongs in the description).
scripts/package_skill.py <path/to/skill-folder> [output-directory]
Validates automatically, then creates a distributable .skill file (zip format).
npx claudepluginhub tymoj/marketplace --plugin advanced-plugin-creatorGuides creation of Claude Code skills with SKILL.md structure, frontmatter metadata for auto-activation, and bundled resources like scripts, references, and assets.
Guides creation of Claude Code skills, covering SKILL.md structure, YAML metadata best practices, and optional bundled resources like scripts, references, and assets.
Guides developers in creating and updating effective Claude skills with best practices, core principles, resource links, and workflow advice for specialized extensions.