Guide for creating effective skills that extend Claude's capabilities. Use when users want to create a new skill, update an existing skill, or need guidance on skill structure and best practices. Triggers: 'create skill', 'new skill', 'skill template', 'build skill', 'skill structure', 'skill design'.
/plugin marketplace add greyhaven-ai/claude-code-config/plugin install core@grey-haven-pluginsThis skill is limited to using the following tools:
references/output-patterns.mdreferences/workflows.mdscripts/init_skill.pyGuide for creating effective skills that extend Claude's capabilities.
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—they transform Claude from a general-purpose agent into a specialized agent equipped with procedural knowledge.
The context window is a public good. Skills share context with system prompts, conversation history, other skills, and user requests.
Default assumption: Claude is already very smart. Only add context Claude doesn't already have. Challenge each piece: "Does Claude really need this?" and "Does this justify its token cost?"
Prefer concise examples over verbose explanations.
Match specificity to task fragility:
| Freedom Level | When to Use | Format |
|---|---|---|
| High | Multiple approaches valid, context-dependent | Text-based instructions |
| Medium | Preferred pattern exists, some variation OK | Pseudocode or parameterized scripts |
| Low | Operations fragile, consistency critical | Specific scripts, few parameters |
Think of Claude exploring a path: narrow bridge needs guardrails (low freedom), open field allows many routes (high freedom).
Every Grey Haven skill follows this structure:
skill-name/
├── SKILL.md (required)
│ ├── YAML frontmatter (required)
│ │ ├── name: grey-haven-{skill-name}
│ │ ├── description: (comprehensive, includes triggers)
│ │ ├── skills: (optional, v2.0.43)
│ │ └── allowed-tools: (optional, v2.0.74)
│ └── Markdown body (required)
└── Bundled Resources (optional)
├── scripts/ - Executable code
├── references/ - Documentation for context
├── examples/ - Usage examples
├── templates/ - Reusable templates
└── checklists/ - Validation checklists
---
name: grey-haven-your-skill
description: "What the skill does. When to use it. Trigger phrases."
# v2.0.43: Auto-load these skills when this skill activates
skills:
- grey-haven-code-style
- grey-haven-testing-strategy
# v2.0.74: Restrict available tools when skill is active
allowed-tools:
- Read
- Write
- Bash
- TodoWrite
---
Description is critical: This is the primary trigger mechanism. Include:
| Directory | Purpose | When to Include |
|---|---|---|
scripts/ | Executable code | Repeated code, deterministic operations |
references/ | Documentation | Detailed guides, schemas, API docs |
examples/ | Usage examples | Complex patterns, before/after |
templates/ | Reusable formats | Boilerplate, standard structures |
checklists/ | Validation | Quality gates, pre-flight checks |
Skills use a three-level loading system:
Keep SKILL.md under 500 lines. Split into reference files when approaching this limit. Always reference split files from SKILL.md with clear "when to read" guidance.
Before creating, understand concrete usage:
Conclude when you clearly understand the functionality needed.
Analyze each example:
Example analyses:
| Skill Goal | Analysis | Resource Needed |
|---|---|---|
| Rotate PDFs | Same code every time | scripts/rotate_pdf.py |
| Build webapps | Same boilerplate each time | templates/react-starter/ |
| Query BigQuery | Rediscover schemas each time | references/schema.md |
Run the initialization script:
python scripts/init_skill.py my-skill --path grey-haven-plugins/core/skills
This creates:
Writing Guidelines:
Frontmatter:
name: Use grey-haven- prefixdescription: Include what + when + triggersskills: Optional dependent skillsallowed-tools: Optional tool restrictionsBody:
Design Patterns (see references/):
references/workflows.mdreferences/output-patterns.mdAfter creating:
Skills should only contain essential files. Do NOT create:
The skill is for Claude, not humans. Include only what helps Claude do the job.
grey-haven-{domain}-{function}skills/{skill-name}/grey-haven-tdd-python, grey-haven-api-design-standardsdescription: "{What it does}. {When to use it}. Triggers: '{trigger1}', '{trigger2}', '{trigger3}'."
skill-name/
├── SKILL.md
├── examples/
│ └── practical-example.md
├── references/
│ └── detailed-guide.md
├── templates/
│ └── reusable-template.md
└── checklists/
└── validation-checklist.md
# Initialize new skill
python scripts/init_skill.py my-new-skill --path grey-haven-plugins/core/skills
# Edit the generated SKILL.md
# Add resources as needed
# Test with real usage
Skill Version: 1.0 Based on: Anthropic skill-creator (Dec 2025) Last Updated: 2025-01-15
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.