Skip to content
Back to skills

Create Skill

ASecurity

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.

  • 15 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added May 27, 2026
developmentpythongosqlreactapisecurityperformancedocumentation

Works with

  • claude code
  • api

Security analysis

A100/100

Scanned May 27, 2026

npx -y skills add jpoutrin/product-forge --skill create-skill --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Create Skill?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Create Skill
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/jpoutrin-create-skill/badge)](https://www.skillsdirectory.com/skills/jpoutrin-create-skill)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: create-skill
description: 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.
---

# 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
```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.