create-skill
Create a new Claude Code agent skill with proper folder structure and SKILL.md format. Use when the user wants to add a model-invoked skill that Claude uses autonomously based on context. Handles skill folder creation with SKILL.md and optional reference files.
Best use case
create-skill is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Create a new Claude Code agent skill with proper folder structure and SKILL.md format. Use when the user wants to add a model-invoked skill that Claude uses autonomously based on context. Handles skill folder creation with SKILL.md and optional reference files.
Teams using create-skill should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/create-skill/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How create-skill Compares
| Feature / Agent | create-skill | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Create a new Claude Code agent skill with proper folder structure and SKILL.md format. Use when the user wants to add a model-invoked skill that Claude uses autonomously based on context. Handles skill folder creation with SKILL.md and optional reference files.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Create Skill Skill
Create new Claude Code agent skills that Claude invokes autonomously based on task context.
## Skill Structure
Each skill lives in its own folder within `skills/`:
```
skills/
└── skill-name/
├── SKILL.md # Main skill definition (required)
├── examples/ # Example files (optional)
│ └── example.md
└── templates/ # Templates (optional)
└── template.md
```
## SKILL.md Format
```markdown
---
name: skill-name
description: When and how Claude should use this skill. Be specific about triggers and use cases.
user-invocable: false
---
# Skill Title
Detailed instructions for how to apply this skill...
```
## Required Frontmatter Fields
| Field | Description | Example |
|-------|-------------|---------|
| `name` | Unique identifier (kebab-case) | `python-best-practices` |
| `description` | When Claude should invoke this skill | `Apply Python best practices when writing or reviewing Python code. Use for type hints, docstrings, and PEP compliance.` |
## Optional Frontmatter Fields
| Field | Description | Default | Example |
|-------|-------------|---------|---------|
| `user-invocable` | Whether users can invoke skill with `/skill-name` | `true` | `false` for knowledge skills, `true` for action skills |
## Writing Effective Descriptions
The description is **critical** - it tells Claude when to use the skill. Include:
1. **Trigger conditions**: When should this skill activate?
2. **Use cases**: What tasks benefit from this skill?
3. **Scope**: What does and doesn't this skill cover?
### Good Description Examples
```yaml
description: Apply React best practices when creating or modifying React components. Use for hooks, state management, component structure, and performance optimization.
```
```yaml
description: Enforce security best practices when writing code that handles user input, authentication, or sensitive data. Covers input validation, SQL injection prevention, and XSS protection.
```
```yaml
description: Generate API documentation when creating or updating REST endpoints. Produces OpenAPI-compatible documentation with examples.
```
### Bad Description Examples
```yaml
# Too vague - Claude won't know when to use it
description: Helps with Python code
```
```yaml
# Too broad - will trigger too often
description: Use this for all coding tasks
```
## Skill Body Content
The body should include:
1. **Context**: Background information Claude needs
2. **Rules/Guidelines**: Specific practices to follow
3. **Examples**: Concrete examples of correct usage
4. **Anti-patterns**: What to avoid
5. **Output format**: How to present results
## Example Skill
```markdown
---
name: conventional-commits
description: Apply conventional commit message format when the user is committing code or asking about commit messages. Enforces type prefixes, scope, and message structure.
user-invocable: false
---
# Conventional Commits
Format all commit messages following the Conventional Commits specification.
## Format
```
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
```
## Types
| Type | Description |
|------|-------------|
| `feat` | New feature |
| `fix` | Bug fix |
| `docs` | Documentation only |
| `style` | Formatting, no code change |
| `refactor` | Code restructuring |
| `perf` | Performance improvement |
| `test` | Adding tests |
| `chore` | Maintenance tasks |
## Examples
### Feature
```
feat(auth): add OAuth2 login support
```
### Bug Fix
```
fix(api): handle null response in user endpoint
```
### Breaking Change
```
feat(api)!: change response format for /users endpoint
BREAKING CHANGE: Response now returns array instead of object
```
## Rules
1. Type is required and lowercase
2. Description starts lowercase, no period at end
3. Use imperative mood ("add" not "added")
4. Keep first line under 72 characters
```
## Adding Subfolders
Skills can include reference materials:
```
skills/
└── api-design/
├── SKILL.md
├── examples/
│ ├── rest-example.md
│ └── graphql-example.md
└── templates/
└── openapi-template.yaml
```
Reference these in your SKILL.md:
```markdown
See `examples/rest-example.md` for a complete REST API example.
```
## File Location
Save skills to:
```
plugins/<plugin-name>/skills/<skill-name>/SKILL.md
```Related Skills
create-qa-test
Create a new QA test procedure for a feature
create-prd
Interactive PRD creation wizard with comprehensive question flow
create-prd-feature
Create a feature-specific PRD (FRD) for individual features
create-persona
Create detailed user persona with guided questions
create-tech-spec
Create a new Technical Specification for implementation details
create-rfc
Create a new RFC (Request for Comments) technical specification
create-plugin
Create a new Claude Code plugin with proper directory structure and manifest. Use when the user wants to create a new plugin from scratch. Sets up plugin.json, directory structure, and optional components.
create-command
Create a new Claude Code slash command with proper YAML frontmatter structure. Use when the user wants to add a custom slash command to a plugin. Handles command file creation with description, argument hints, allowed tools, and all advanced features.
zod
Zod schema validation patterns and type inference. Auto-loads when validating schemas, parsing data, validating forms, checking types at runtime, or using z.object/z.string/z.infer in TypeScript.
typescript-import-style
Merge-friendly import formatting (one-per-line, alphabetical). Auto-loads when writing TypeScript/JavaScript imports to minimize merge conflicts in parallel development. Enforces consistent grouping and sorting.
setup-mcp-auth
Configure authentication for an existing FastMCP server
fastmcp
FastMCP TypeScript framework patterns for MCP servers. Auto-loads when building MCP servers, creating tools/resources/prompts, implementing authentication, configuring transports, or working with FastMCP in TypeScript.