grey-haven-plugins/core/skills/skill-creator/SKILL.md
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'.
npx skillsauth add greyhaven-ai/claude-code-config skill-creatorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Guide 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: {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: 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:
- code-style
- 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: Short, unprefixed skill name (e.g., tdd-python, not grey-haven-tdd-python)description: 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.
{domain}-{function} (short, unprefixed — the plugin provides the namespace)skills/{skill-name}/tdd-python, 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
development
Grey Haven's comprehensive testing strategy - Vitest unit/integration/e2e for TypeScript, pytest markers for Python, >80% coverage requirement, fixture patterns, and Doppler for test environments. Use when writing tests, setting up test infrastructure, running tests, debugging test failures, improving coverage, configuring CI/CD, or when user mentions 'test', 'testing', 'pytest', 'vitest', 'coverage', 'TDD', 'test-driven development', 'unit test', 'integration test', 'e2e', 'end-to-end', 'test fixtures', 'mocking', 'test setup', 'CI testing'.
development
Comprehensive test suite generation with unit tests, integration tests, edge cases, and error handling. Use when generating tests for existing code, improving coverage, or creating systematic test suites. Triggers: 'generate tests', 'add tests', 'test coverage', 'write tests for', 'create test suite'.
development
Specialized testing for React applications using TanStack ecosystem (Query, Router, Table, Form) with Vite and Vitest. Use when testing React + TanStack apps, mocking server state, testing router, or validating query behavior. Triggers: 'TanStack testing', 'React Query testing', 'test TanStack', 'mock query', 'router test'.
development
Apply Grey Haven's TanStack ecosystem patterns - Router file-based routing, Query data fetching with staleTime, and Start server functions. Use when building React applications with TanStack Start. Triggers: 'TanStack', 'TanStack Start', 'TanStack Query', 'TanStack Router', 'React Query', 'file-based routing', 'server functions'.