Template for creating Claude Code skills. Use this as a starting point when building new skills for code formatting, testing, documentation generation, or other specialized workflows. Include both functionality and usage triggers in descriptions.
Provides a starting template for creating new Claude Code skills with proper structure, YAML configuration, and documentation guidelines. Use when building skills for code formatting, testing, documentation generation, or other specialized workflows.
/plugin marketplace add jwplatta/prompt-library/plugin install template-plugin@jwplatta-claude-toolsThis skill is limited to using the following tools:
examples.mdreference.mdThis is a template for creating Claude Code skills. Skills are model-invoked capabilities that Claude autonomously decides to use based on the request context and skill description.
Skills extend Claude's capabilities through modular, discoverable packages. Unlike slash commands (user-invoked), skills are autonomously activated by Claude when the description matches the user's request.
Use this template when creating new skills that:
Create the directory structure:
.claude/skills/my-skill-name/
├── SKILL.md (required)
├── reference.md (optional)
├── examples.md (optional)
└── scripts/ (optional)
Define the YAML frontmatter:
name: Display name for the skilldescription: Critical for discovery - include functionality AND trigger termsallowed-tools: Optional list to restrict tool accessWrite clear instructions:
Test thoroughly:
Name Field: The display name shown to users. Keep it concise and descriptive.
Description Field: This is the most important field for skill discovery. Include:
Good example:
description: Extract text and tables from PDF files, fill forms, merge documents. Use when working with PDF files or when the user mentions PDFs, forms, or document extraction.
Bad example:
description: PDF helper
Allowed-Tools Field: When specified, Claude uses only these tools without requesting permission. Useful for:
When omitted, Claude has access to all available tools.
---
name: Code Formatter
description: Automatically format code files using language-specific formatters like prettier, gofmt, rubocop. Use when formatting code, fixing code style, or when user mentions code formatting or linting.
allowed-tools: Read, Bash, Edit
---
# Code Formatter
Format code files according to language-specific standards.
## Supported Languages
- JavaScript/TypeScript: prettier
- Go: gofmt
- Ruby: rubocop --auto-correct
- Python: black
## Process
1. Detect file language from extension
2. Run appropriate formatter
3. Show diff of changes made
---
name: Test Generator
description: Generate comprehensive test files for Ruby, JavaScript, Python code. Use when creating tests, writing specs, or when user mentions testing, test coverage, or unit tests.
allowed-tools: Read, Grep, Glob, Write
---
# Test Generator
Create test files following project conventions.
## Steps
1. Read source file to understand code structure
2. Search for existing test patterns in the project
3. Generate tests matching the project's style
4. Include edge cases and error scenarios
---
name: Documentation Builder
description: Generate API documentation, README files, inline code comments. Use when documenting code, creating API docs, or when user mentions documentation, comments, or README files.
allowed-tools: Read, Grep, Glob, Write
---
# Documentation Builder
Build comprehensive documentation from code.
See [reference.md](./reference.md) for documentation templates.
See [examples.md](./examples.md) for sample outputs.
This skill can reference:
reference.md - Detailed reference documentationexamples.md - Practical usage examplesscripts/ - Helper scripts and utilitiestemplates/ - Reusable templatesReference these files using relative links. Claude loads them progressively to manage context.
When using allowed-tools:
Read, Grep, GlobEdit, Write carefullyBash should be restricted to trusted skillsSkills without allowed-tools have full tool access and will prompt for permission on sensitive operations.