SKILL.md: поля frontmatter, структура папки скилла и пример для Claude

Проверено 13.11.2026

SKILL.md — файл скилла для ИИ-агента: YAML-блок с полями name и description, ниже инструкции в Markdown. Генератор собирает файл из формы, проверяет его по стандарту и упаковывает в ZIP для claude.ai.

Пример:
Необязательные поля
1Задача

что агент должен делать по одним и тем же правилам

2Папка и SKILL.md

имя папки совпадает с полем name

3Frontmatter

name и description между строками ---

4Проверка

skills-ref validate или claude plugin validate

5Установка

~/.claude/skills/, .agents/skills/ или ZIP в claude.ai

Поля frontmatter в SKILL.md

SKILL.md начинается с YAML-блока между двумя строками ---, после него идут инструкции в Markdown. Спецификация Agent Skills задаёт шесть полей: два обязательных и четыре по желанию.

Claude Code читает те же шесть полей и добавляет свои, например when_to_use, disable-model-invocation, context и paths. В Claude Code все поля необязательны: без name команда берёт имя папки, без description — первую непустую строку текста. При загрузке в claude.ai, через Skills API и при упаковке скриптом package_skill.py лишнее поле даёт ошибку, поэтому в переносимом скилле держитесь шести полей стандарта.

Claude API строже к name: в нём нельзя слова anthropic и claude и XML-теги. В description XML-теги тоже запрещены.

nameобязательно
Ограничение

до 64 знаков: строчные буквы и цифры (a-z, 0-9) и дефис; без дефиса в начале и в конце, без двух дефисов подряд

Зачем

имя скилла, совпадает с именем папки

descriptionобязательно
Ограничение

от 1 до 1 024 знаков

Зачем

что делает скилл и когда его включать; по этому полю агент выбирает скилл

licenseпо желанию
Ограничение

коротко: название лицензии или файла с ней

Зачем

лицензия скилла

compatibilityпо желанию
Ограничение

от 1 до 500 знаков

Зачем

требования к среде: продукт, системные пакеты, доступ в сеть

metadataпо желанию
Ограничение

словарь строка → строка

Зачем

свои поля, например author и version

allowed-toolsпо желанию
Ограничение

строка, инструменты через пробел

Зачем

заранее разрешённые инструменты; поле экспериментальное, поддержка зависит от агента

Структура папки скилла

Скилл — папка, в которой обязателен только SKILL.md. Папки scripts/, references/ и assets/ спецификация советует как удобную раскладку, рядом можно класть любые другие файлы.

В scripts/ лежит код, который агент запускает. Набор языков зависит от агента, обычно это Python, Bash и JavaScript. В references/ — справка, которую агент читает при необходимости, в assets/ — шаблоны, картинки и таблицы данных.

На файлы ссылайтесь относительными путями от корня скилла и с одного уровня: из SKILL.md сразу на нужный файл, без цепочек ссылок. Пути пишите через прямой слэш даже на Windows: с обратным слэшем скилл ломается на Unix-системах.

roll-dice/
├── SKILL.md       # обязателен: поля и инструкции
├── scripts/       # код, который агент запускает
├── references/    # справка, агент читает её при необходимости
├── assets/        # шаблоны, картинки, таблицы данных
└── ...            # любые другие файлы и папки

Как агент загружает скилл

Агент читает скилл по частям и берёт подробности, только когда задача их требует. При запуске он знает лишь имена и описания всех скиллов, тело SKILL.md подгружает после включения скилла, остальные файлы — по мере надобности.

В Claude Code список скиллов с описаниями занимает до 1 % окна контекста. Если скиллов много, часть описаний выпадает из списка, и Claude теряет слова, по которым узнаёт задачу. Поля description и when_to_use вместе обрезаются на 1 536 знаках, поэтому главный сценарий ставьте в начало.

Тело скилла Claude Code добавляет в диалог один раз и больше не перечитывает файл. После сжатия длинного диалога от каждого скилла остаются первые 5 000 токенов, на все скиллы вместе — 25 000. Важные правила держите в верхней части SKILL.md.

1name и description

При запуске, у всех скиллов

Около 100 токенов на скилл
2Тело SKILL.md

Когда скилл включился

До 5 000 токенов и до 500 строк
3Файлы из scripts/, references/, assets/

Когда понадобились

До чтения контекст не занимают; от скрипта в контекст идёт только его вывод

Минимальный пример SKILL.md

Скилл бросает кубик. Положите файл в .agents/skills/roll-dice/SKILL.md, для Claude Code — в .claude/skills/roll-dice/SKILL.md.

Имя папки roll-dice совпадает с полем name. В description сказано и что делает скилл, и на какие просьбы его включать. Чтобы проверить установку в Claude Code, спросите «What skills are available?» или вызовите скилл напрямую командой /roll-dice.

---
name: roll-dice
description: Roll dice using a random number generator. Use when asked to roll a die (d6, d20, etc.), roll dice, or generate a random dice roll.
---

Чтобы бросить кубик, выполни команду. Она выдаёт случайное число
от 1 до числа граней:

```bash
echo $((RANDOM % <sides> + 1))
```

Вместо <sides> подставь число граней: 6 для обычного кубика, 20 для d20.

Как написать description и тело скилла

Что и когда

В description два ответа: что делает скилл и в каких случаях его включать. Добавьте слова, которыми пользователь назовёт задачу: форматы файлов, названия сервисов, типичные просьбы. По этому полю Claude выбирает нужный скилл из сотни и больше доступных.

От третьего лица

Anthropic просит писать description от третьего лица: «Processes Excel files and generates reports». Описание попадает в системный промпт, и формулировки вида «I can help you…» или «You can use this…» мешают Claude найти скилл.

Про намерение пользователя

Описывайте, чего хочет добиться пользователь, без внутренней механики скилла. Перечислите случаи, где скилл нужен, в том числе те, где пользователь не называет область прямо. Обычно хватает нескольких предложений: длинные описания раздувают контекст, когда скиллов много.

Простые просьбы скилл не включают

Агенты обращаются к скиллам за тем, чего не умеют сами. Просьба вроде «прочитай этот PDF» может пройти мимо PDF-скилла даже при подходящем описании. Скилл окупается на незнакомых API, внутренних процессах и редких форматах.

Коротко в теле

Claude и так много знает. В тело пишите только то, чего модели не хватает, и про каждый абзац спрашивайте себя, стоит ли он своих токенов. Держите тело короче 500 строк, подробности выносите в отдельные файлы.

Один способ по умолчанию

Вместо списка равноценных вариантов дайте один способ и запасной на особый случай. Примеры входа и выхода передают нужный стиль точнее описаний.

Без дат

Не пишите в скилл сведения, которые устареют, например «до августа 2025 используйте старый API». Отжившие способы держите в отдельном разделе со старыми приёмами.

Имя скилла

Anthropic советует имена в форме герундия: processing-pdfs, analyzing-spreadsheets. Подходят и pdf-processing или process-pdfs. Размытые helper, utils, tools и слишком общие documents, data, files не годятся.

Сначала проверки

Прежде чем писать длинные инструкции, прогоните Claude без скилла на типичных задачах и запишите, где он ошибается. Соберите из этих ошибок три сценария и пишите ровно столько текста, сколько нужно, чтобы их пройти.

Частые ошибки SKILL.md и как их исправить

В заголовках карточек — текст ошибки, как его выводят валидаторы и загрузка в claude.ai.

SKILL.md must start with YAML frontmatter (---)

Так отвечает валидатор skills-ref, когда файл начинается не с трёх дефисов. Первой строкой должна идти ---, без пустой строки, пробела или заголовка перед ней. Claude Code в этом случае прочитает весь файл как текст скилла вместе со строками ---, и поля name и description не сработают.

SKILL.md frontmatter not properly closed with ---

После полей нет второй строки ---. Закройте ей блок и только после неё начинайте инструкции.

Invalid YAML in frontmatter

Чаще всего YAML ломает двоеточие внутри значения без кавычек, например description: Use this skill when: the user asks about PDFs. Возьмите значение в кавычки. Claude Code с битым YAML загрузит скилл без полей: вызвать его через /имя получится, но по description Claude его не найдёт. Ошибку разбора покажет запуск с --debug.

Directory name 'my-skill' must match skill name 'myskill'

Поле name и имя папки расходятся. Переименуйте папку или поправьте name, чтобы они совпали буква в букву. В Claude Code name задаёт имя команды и может отличаться от папки, для других агентов по стандарту держите их одинаковыми.

Skill name 'PDF-Processing' must be lowercase

В name допустимы только строчные буквы, цифры и дефис. Соседние ошибки Skill name cannot start or end with a hyphen и Skill name cannot contain consecutive hyphens означают дефис на краю имени или два дефиса подряд.

Description exceeds 1024 character limit

Описание длиннее 1 024 знаков. Сократите его до нескольких предложений, подробности перенесите в тело или в references/. В Claude Code description и when_to_use вместе обрезаются на 1 536 знаках.

Missing required field in frontmatter: description

Нет обязательного поля. Стандарт требует оба поля, name и description. Клиентам советуют пропускать скилл без description целиком, потому что без описания агент не поймёт, когда его включать.

Unexpected key(s) in SKILL.md frontmatter: argument-hint

Ошибка при загрузке скилла в claude.ai, через Skills API или при упаковке package_skill.py: во frontmatter есть поле сверх шести стандартных. Поля Claude Code вроде argument-hint и when_to_use уберите из копии для загрузки.

Description cannot contain angle brackets (< or >)

Проверка skill-creator перед упаковкой не пропускает угловые скобки в description, Claude API тоже запрещает в нём XML-теги. Уберите теги и скобки из описания.

Как проверить SKILL.md валидатором

У стандарта есть эталонная библиотека skills-ref на Python, она проверяет frontmatter и правила имени. Ставится из репозитория agentskills/agentskills, нужен Python 3.11 или новее.

Команде validate можно дать папку скилла или сам файл SKILL.md. Если ошибок нет, она печатает Valid skill, если есть — Validation failed и список ошибок с кодом выхода 1. Ещё две команды: skills-ref read-properties выводит поля в JSON, skills-ref to-prompt собирает XML-блок available_skills для системного промпта агента. Авторы предупреждают, что библиотека демонстрационная и для продакшена не предназначена.

В Claude Code 2.1.233 и новее скиллы с битым frontmatter находит команда claude plugin validate: claude plugin validate .claude/skills для скиллов проекта и claude plugin validate ~/.claude/skills для личных.

git clone https://github.com/agentskills/agentskills.git
cd agentskills/skills-ref
python -m venv .venv
source .venv/bin/activate
pip install -e .

skills-ref validate ./my-skill

Skill Creator: скилл для создания скиллов

skill-creator от Anthropic создаёт новые скиллы, правит готовые, прогоняет проверки и подбирает description, чтобы скилл включался на нужные просьбы. В Claude Code он ставится плагином.

Если Claude Code ответит, что маркетплейс claude-plugins-official не найден, добавьте его командой /plugin marketplace add anthropics/claude-plugins-official и повторите установку. Затем попросите, например: evaluate my summarize-changes skill with skill-creator. Тестовые запросы плагин хранит в evals/evals.json внутри папки скилла, а результаты прогонов со скиллом и без него сводит в benchmark.json.

/plugin install skill-creator@claude-plugins-official

Куда положить SKILL.md

Claude Code следит за папками скиллов: новый или исправленный SKILL.md подхватывается в текущей сессии без перезапуска. Если папку skills создали уже после запуска, выполните /reload-skills. Папку скилла не называйте synced: это имя Claude Code занял под скиллы, скачанные из claude.ai.

Готовые скиллы с командами установки для разных агентов собраны в каталоге /mcp/skills/.

Claude Code, личные
Путь

~/.claude/skills/<имя>/SKILL.md

Кому доступен

всем вашим проектам на этом компьютере

Claude Code, проект
Путь

.claude/skills/<имя>/SKILL.md

Кому доступен

сессиям в этом репозитории; закоммитьте папку, и скилл получит вся команда

Claude Code, плагин
Путь

<плагин>/skills/<имя>/SKILL.md

Кому доступен

везде, где включён плагин, командой /плагин:имя

Общая папка, проект
Путь

.agents/skills/<имя>/SKILL.md

Кому доступен

агентам, которые её читают: VS Code, Codex, Cursor, Gemini CLI, Goose, OpenCode и другим

Общая папка, личные
Путь

~/.agents/skills/<имя>/SKILL.md

Кому доступен

тем же агентам во всех проектах

claude.ai
Путь

ZIP с папкой скилла: Customize → Skills → Upload a skill

Кому доступен

чату claude.ai на любом тарифе, от Free до Enterprise, с включённым выполнением кода

Частые вопросы

Что такое SKILL.md?
Файл с инструкциями для ИИ-агента в папке скилла. Сверху YAML-блок с полями name и description, ниже текст в Markdown. Формат придумала Anthropic и выпустила как открытый стандарт Agent Skills, его читают Claude Code, Codex, Cursor, VS Code, Gemini CLI и другие агенты.
Как создать скилл для Claude?
Создайте папку ~/.claude/skills/имя-скилла и положите в неё SKILL.md: первой строкой ---, затем name и description, снова --- и инструкции. Claude Code подхватит скилл сам, вызвать его можно командой /имя-скилла. Для claude.ai заархивируйте папку в ZIP и загрузите в Customize → Skills. Заготовку файла соберёт генератор вверху страницы.
Что такое Skill Creator в Claude?
Скилл Anthropic, который помогает написать новый скилл, улучшить готовый, прогнать проверки и подобрать description. В Claude Code он ставится командой /plugin install skill-creator@claude-plugins-official.
Где скачать SKILL.md?
Шаблон соберите генератором вверху страницы или возьмите минимальный пример из раздела выше. Готовые скиллы Anthropic лежат в репозитории anthropics/skills, в Claude Code его подключают командой /plugin marketplace add anthropics/skills. Скиллы для разных агентов с командами установки собраны в каталоге /mcp/skills/.
Что значит ошибка «SKILL.md must start with YAML frontmatter»?
Файл начинается не со строки ---. Удалите всё, что стоит перед ней: пустые строки, пробелы, заголовок. Проверьте, что блок полей закрыт второй строкой ---, и запустите skills-ref validate ./my-skill.

Источники: https://agentskills.io/specification, https://agentskills.io/skill-creation/quickstart, https://agentskills.io/skill-creation/optimizing-description, https://agentskills.io/client-implementation/adding-skills-s, agentskills/agentskills/tree/main/skills-ref, https://code.claude.com/docs/en/skills, https://platform.claude.com/docs/en/agents-and-tools/agent-s, https://platform.claude.com/docs/en/agents-and-tools/agent-s