
SKILL.md: поля frontmatter, структура папки скилла и пример для Claude
SKILL.md — файл скилла для ИИ-агента: YAML-блок с полями name и description, ниже инструкции в Markdown. Генератор собирает файл из формы, проверяет его по стандарту и упаковывает в ZIP для claude.ai.
Необязательные поля
что агент должен делать по одним и тем же правилам
имя папки совпадает с полем name
name и description между строками ---
skills-ref validate или claude plugin validate
~/.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-теги тоже запрещены.
до 64 знаков: строчные буквы и цифры (a-z, 0-9) и дефис; без дефиса в начале и в конце, без двух дефисов подряд
имя скилла, совпадает с именем папки
от 1 до 1 024 знаков
что делает скилл и когда его включать; по этому полю агент выбирает скилл
коротко: название лицензии или файла с ней
лицензия скилла
от 1 до 500 знаков
требования к среде: продукт, системные пакеты, доступ в сеть
словарь строка → строка
свои поля, например author и version
строка, инструменты через пробел
заранее разрешённые инструменты; поле экспериментальное, поддержка зависит от агента
Структура папки скилла
Скилл — папка, в которой обязателен только 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.
При запуске, у всех скиллов
Около 100 токенов на скиллКогда скилл включился
До 5 000 токенов и до 500 строкКогда понадобились
До чтения контекст не занимают; от скрипта в контекст идёт только его выводМинимальный пример 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.
Так отвечает валидатор skills-ref, когда файл начинается не с трёх дефисов. Первой строкой должна идти ---, без пустой строки, пробела или заголовка перед ней. Claude Code в этом случае прочитает весь файл как текст скилла вместе со строками ---, и поля name и description не сработают.
После полей нет второй строки ---. Закройте ей блок и только после неё начинайте инструкции.
Чаще всего YAML ломает двоеточие внутри значения без кавычек, например description: Use this skill when: the user asks about PDFs. Возьмите значение в кавычки. Claude Code с битым YAML загрузит скилл без полей: вызвать его через /имя получится, но по description Claude его не найдёт. Ошибку разбора покажет запуск с --debug.
Поле name и имя папки расходятся. Переименуйте папку или поправьте name, чтобы они совпали буква в букву. В Claude Code name задаёт имя команды и может отличаться от папки, для других агентов по стандарту держите их одинаковыми.
В name допустимы только строчные буквы, цифры и дефис. Соседние ошибки Skill name cannot start or end with a hyphen и Skill name cannot contain consecutive hyphens означают дефис на краю имени или два дефиса подряд.
Описание длиннее 1 024 знаков. Сократите его до нескольких предложений, подробности перенесите в тело или в references/. В Claude Code description и when_to_use вместе обрезаются на 1 536 знаках.
Нет обязательного поля. Стандарт требует оба поля, name и description. Клиентам советуют пропускать скилл без description целиком, потому что без описания агент не поймёт, когда его включать.
Ошибка при загрузке скилла в claude.ai, через Skills API или при упаковке package_skill.py: во frontmatter есть поле сверх шести стандартных. Поля Claude Code вроде argument-hint и when_to_use уберите из копии для загрузки.
Проверка 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-skillSkill 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/skills/<имя>/SKILL.md
всем вашим проектам на этом компьютере
.claude/skills/<имя>/SKILL.md
сессиям в этом репозитории; закоммитьте папку, и скилл получит вся команда
<плагин>/skills/<имя>/SKILL.md
везде, где включён плагин, командой /плагин:имя
.agents/skills/<имя>/SKILL.md
агентам, которые её читают: VS Code, Codex, Cursor, Gemini CLI, Goose, OpenCode и другим
~/.agents/skills/<имя>/SKILL.md
тем же агентам во всех проектах
ZIP с папкой скилла: Customize → Skills → Upload a skill
чату claude.ai на любом тарифе, от Free до Enterprise, с включённым выполнением кода
Частые вопросы
Что такое SKILL.md?
Как создать скилл для Claude?
Что такое Skill Creator в Claude?
Где скачать SKILL.md?
Что значит ошибка «SKILL.md must start with YAML frontmatter»?
Источники: 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