Help us improve
Share bugs, ideas, or general feedback.
From all-skills
Guides creation of modular Agent Skills with progressive disclosure, covering skill structure, SKILL.md format, and best practices for capability uplift and encoded preference categories.
npx claudepluginhub vinnie357/claude-skills --plugin qaHow this skill is triggered — by the user, by Claude, or both
Slash command
/all-skills:claude-skillsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Guide for creating modular, self-contained Agent Skills that extend Claude's capabilities with specialized knowledge.
Guides creation of Agent Skills with progressive disclosure, best practices, structure, and categories. Use when building new skills or understanding skill format.
Guides creation of new Claude Code skills from scratch, listing existing user/project skills, samples, current directory, and providing metadata templates for descriptions/tags.
Creates, evaluates, and reviews Claude Code skills and agent definition files. Covers skill-vs-hook decisions, SKILL.md authoring, frontmatter optimization, baseline-first evals with MCP tooling, validation, and packaging.
Share bugs, ideas, or general feedback.
Guide for creating modular, self-contained Agent Skills that extend Claude's capabilities with specialized knowledge.
Agent Skills are organized directories containing instructions, scripts, and resources that Claude can dynamically discover and load. They enable a single general-purpose agent to gain domain-specific expertise without requiring separate custom agents for each use case.
Skills fall into two categories (source: Anthropic PDF Guide):
Capability Uplift: Enhances Claude's core abilities (coding, analysis, reasoning). These are stable across model versions because they build on general capabilities. Example: a code review skill that adds structured review steps.
Encoded Preference: Encodes user-specific workflows, formatting, and conventions. These need updates when models change because they depend on model behavior for fidelity. Example: a commit message skill that enforces team-specific format.
When creating a skill, identify its category — this determines testing strategy and maintenance expectations.
Skills operate on a principle of progressive disclosure across multiple levels:
Agent system prompts include only skill names and descriptions, allowing Claude to decide when each skill is relevant based on the task at hand.
When Claude determines a skill applies, it loads the full SKILL.md file into context, gaining access to the complete procedural knowledge and guidelines.
Additional bundled files (like references, forms, or documentation) load only when needed for specific scenarios, keeping token usage efficient.
This tiered approach maintains efficient context windows while supporting potentially unbounded skill complexity.
Every skill must have:
skill-name/
└── SKILL.md
More complex skills can include additional resources:
skill-name/
├── SKILL.md # Required: Core skill definition
├── scripts/ # Optional: Executable code for deterministic tasks
├── references/ # Optional: Documentation loaded on-demand
└── assets/ # Optional: Templates, images, boilerplate
Each SKILL.md file must begin with YAML frontmatter followed by Markdown content:
---
name: skill-name
description: Concise explanation of when Claude should use this skill
license: MIT
---
# Skill Name
Main instructional content goes here...
Source: Claude Code Skills documentation. All fields are optional; only description is recommended.
name: Display name. If omitted, defaults to the directory name. Lowercase letters, numbers, and hyphens only (max 64 characters).description (recommended): What the skill does and when to use it. Claude uses this to decide when to apply the skill. Combined description + when_to_use is truncated at 1,536 characters in the skill listing — put the key use case first.when_to_use: Additional trigger phrases or example requests, appended to description in the listing.license: License name or filename reference.The full upstream frontmatter reference (with disable-model-invocation, user-invocable, allowed-tools, model, effort, context: fork, agent, hooks, paths, shell, arguments, argument-hint, metadata) lives in references/frontmatter-fields.md. Load that reference when authoring a skill that needs anything beyond name/description/license.
Description constraints:
[What it does]. Use when [trigger conditions].Critical: The
descriptionis the ONLY text Claude sees during skill discovery (Level 1). The body's "When to Use" section only loads AFTER activation (Level 2) and cannot trigger it. All activation triggers belong in the description.
The upstream Claude Code spec allows allowed-tools on a skill — it pre-approves listed tools while the skill is active. This marketplace's test/validate-plugin.nu rejects allowed-tools on skills as a hard validation failure. Reasoning:
tools: frontmatter on an agent file), not on skills the agent loads. See the claude-agents skill.When working in this marketplace: keep skill frontmatter to name, description, optional license, optional metadata. Use allowed-tools on agents instead.
When working in another project that does not enforce this policy, the upstream allowed-tools field is valid and documented.
The content section has no structural restrictions. Include:
Before writing or editing any SKILL.md, verify:
Use when ... trigger patterndescription + when_to_use under 1,536 charactersallowed-tools field in frontmatter (this marketplace's validator rejects it; use agents for tool allowlists)references/ once exceededA failed checkbox is a blocker, not a preference.
Three patterns from the upstream docs guide what to put in the body:
disable-model-invocation: true to prevent automatic invocation.context: fork + agent: Explore|Plan|...). Skill body becomes the task prompt; skill produces a self-contained result.Skills support runtime substitution before content reaches the model. Source: Claude Code Skills docs.
Shell injection — Claude Code can run shell commands embedded in a skill before the body reaches the model; the command's stdout replaces the placeholder. Two forms:
## Current diff
!`git diff HEAD`
```!
node --version
npm --version
```
String substitutions in skill content:
$ARGUMENTS — full arguments string$ARGUMENTS[N] or $N — argument by 0-based index$name — named argument when arguments: declared in frontmatter${CLAUDE_SESSION_ID} — current session ID${CLAUDE_EFFORT} — current effort level${CLAUDE_SKILL_DIR} — absolute path to this skill's directory (use for bundled scripts: bash ${CLAUDE_SKILL_DIR}/scripts/foo.sh)Disable shell injection across user/project/plugin skills via "disableSkillShellExecution": true in settings — useful for managed environments.
Gather concrete use cases to clarify what the skill needs to support. Real-world examples reveal actual needs better than theoretical requirements.
Example:
Use Case: Help developers follow Git best practices
Examples:
- Creating conventional commit messages
- Rebasing feature branches
- Resolving merge conflicts
- Creating descriptive branch names
Analyze examples to identify needed components:
Example:
Git skill resources:
- scripts/analyze-commit.sh - Parse git diff for commit message
- references/conventional-commits.md - Detailed commit format spec
- assets/gitignore-templates/ - Common .gitignore files
Create the skill directory structure with the required SKILL.md file. Ensure the directory name matches the name property exactly.
mkdir -p my-skill/{scripts,references,assets}
touch my-skill/SKILL.md
Develop resource files and update SKILL.md with:
Use imperative/infinitive form rather than second-person instruction for clarity.
Keep core procedural information in SKILL.md and detailed reference material in separate files.
Document all sources in the plugin's sources.md. For each skill created, record:
This maintains traceability and helps others understand the skill's foundation.
Test the skill using the validation loop pattern:
For the complete evaluation methodology, see references/evaluation-guide.md.
Refine based on real-world usage and evaluation data:
For description optimization techniques, see references/evaluation-guide.md.
If a skill defines or modifies agent behavior (dispatch patterns, model selection, multi-agent coordination), cross-link /core:agent-loop "Five-Tier Decomposition Pipeline" — the canonical decomposition for complex tasks.
Skill updates that only edit markdown skip P2 (test author) — content-grep tests on markdown are tautological. Updates touching agent definitions (agents/*.md with dispatch logic) follow the full five-tier pipeline since those files are executable specifications.
The pipeline runs inside ONE bees issue per skill update slice. The Sub-team Leader (or bees-worker acting as one) spawns the five stages as separate Task invocations; intermediate artifacts go to bees comments on that issue and git commits on the feature branch. Skill updates do not produce five chained bees rows.
Build skills using an evaluation-first approach (source: Anthropic Blog Post):
For the complete methodology, see references/evaluation-guide.md. For a copyable checklist, see templates/evaluation-checklist.md.
Balance specificity against fragility in skill instructions (source: Anthropic PDF Guide):
For the full framework with examples, see references/design-patterns.md.
The context window is a shared resource (source: Claude Code Skills docs):
references/ once the body exceeds 500 lines.Skill content lifecycle: A skill loads as a single message and stays for the session. Auto-compaction keeps the first 5,000 tokens of each invoked skill, with a 25,000-token combined budget filled from most-recently-invoked first. Older skills can be dropped after compaction. Re-invoke a skill if it stops influencing behavior post-compaction.
Split unwieldy SKILL.md files into separate referenced documents:
For design patterns and detailed guidance, see references/design-patterns.md.
Compare skill effectiveness using blind evaluation (source: Anthropic Blog Post):
For detailed setup instructions, see references/evaluation-guide.md.
The skill name and description heavily influence when Claude activates it. Pay particular attention to:
git-operations, elixir-phoenix)Critical: The
descriptionis the ONLY text Claude sees during skill discovery (Level 1). The body's "When to Use" section only loads AFTER activation (Level 2) and cannot trigger it. All activation triggers must be in the description using patterns like "Use when [scenarios]".
Description optimization (source: Anthropic Blog Post):
Monitor real usage patterns and iterate based on actual behavior.
Skills run in different environments with different capabilities (source: Anthropic PDF Guide):
| Platform | Script Execution | Network | Filesystem |
|---|---|---|---|
| Claude Code (CLI) | Full Bash access | Available | Full access |
| Claude.ai (Web) | Sandbox only | Limited | Limited |
| API | Tool-dependent | Tool-dependent | Tool-dependent |
| Mobile | None | None | Read-only |
Document which platform features each skill requires. Never assume external API availability.
Work with Claude to capture successful approaches and common mistakes into reusable skill components. Ask Claude to self-reflect on what contextual information actually matters.
Use clear, imperative language that Claude can follow:
Avoid hedging language like "You should try to" or "It might be good to" or "Consider following".
Include concrete examples wherever possible to illustrate patterns and approaches.
Install skills only from trusted sources. When evaluating unfamiliar skills:
All skills MUST adhere to strict anti-fabrication requirements to ensure factual, measurable content. Every SKILL.md must include anti-fabrication rules — either inline (template below) or by referencing core:anti-fabrication.
For skill-creation-specific anti-fabrication guidance, see references/anti-fabrication.md. For the authoritative anti-fabrication guide, see the core:anti-fabrication skill.
For annotated examples of simple and complex skills with category classifications, see references/examples.md.
For common mistakes and how to avoid them, see references/examples.md.
claude-skills/ ├── references/ │ ├── design-patterns.md # Degree of freedom, validation loops, conditional workflows │ ├── evaluation-guide.md # Eval-driven development, A/B testing, multi-model testing │ ├── anti-fabrication.md # Skill-creation-specific anti-fab guidance │ └── examples.md # Annotated skill examples and common pitfalls └── templates/ ├── evaluation-checklist.md # Copyable eval checklist ├── level1.md # Example skill metadata ├── level2.md # Example skill body ├── level3.md # Example skill folder structure └── skill.md # Example basic skill
For more information: