# Agent Skills Spec

A skill is a folder of instructions, scripts, and resources that agents can discover and load dynamically to perform better at specific tasks. In order for the folder to be recognized as a skill, it must contain a `SKILL.md` file. 

# Skill Folder Layout

A minimal skill folder looks like this: 

```
my-skill/
  - SKILL.md
```

More complex skills can add additional directories and files as needed.


# The SKILL.md file

The skill's "entrypoint" is the `SKILL.md` file. It is the only file required to exist. The file must start with a YAML frontmatter followed by regular Markdown. 

## YAML Frontmatter

The YAML frontmatter has 2 required properties:

- `name`
    - The name of the skill in hyphen-case
    - Restricted to lowercase Unicode alphanumeric + hyphen
    - Must match the name of the directory containing the SKILL.md
- `description` 
    - Description of what the skill does and when Claude should use it

There are 3 optional properties:

- `license`
    - The license applied to the skill
    - We recommend keeping it short (either the name of a license or the name of a bundled license file)
- `allowed-tools` 
    - A list of tools that are pre-approved to run
    - Currently only supported in Claude Code
- `metadata`
    - A map from string keys to string values
    - Clients can use this to store additional properties not defined by the Agent Skills Spec
    - We recommend making your key names reasonably unique to avoid accidental conflicts

## Markdown Body

The Markdown body has no restrictions on it.

# Additional Information

For a minimal example, see the `template-skill` example.

# Version History

- 1.0 (2025-10-16) Public Launch
