web24.team

Как написать SKILL.md для ИИ-агента: структура, шаблоны, правила

Формат SKILL.md стал открытым стандартом: один файл навыка работает в Claude, ChatGPT Codex, Cursor и Gemini CLI. Разбираем структуру файла, шаблоны и 10 правил на примере скилла для финансиста.

Скиллы перестали быть фишкой одного вендора: в декабре 2025 Anthropic опубликовала Agent Skills как открытую спецификацию, и за несколько месяцев формат SKILL.md поддержали больше 30 инструментов. Теперь один и тот же файл навыка работает в Claude Code, ChatGPT Codex, Cursor и Gemini CLI — а значит, писать скиллы стало базовым навыком, как когда-то README. Мы уже показывали, что дают готовые скиллы в Claude for Small Business; здесь разберём, как написать свой — со структурой файла, шаблонами и примером для финансиста.

Что такое скилл и чем он лучше промпта

Скилл — это папка с файлом SKILL.md: инструкция, как выполнять конкретную задачу, которую агент подгружает сам, когда задача возникает. От промпта в чате он отличается тремя вещами:

  • Переиспользуемость. Промпт живёт один диалог, скилл — в репозитории: версионируется в git, ревьюится, расшаривается команде.
  • Экономия контекста. Агент держит в памяти только имя и описание каждого скилла; полный текст загружается по требованию. Можно иметь сотню скиллов и не платить за них контекстным окном.
  • Детерминированность. К скиллу прикладываются скрипты — то, что должно считаться одинаково всегда, выполняет код, а не генерация модели.

Механика называется progressive disclosure — прогрессивное раскрытие: сначала метаданные (десятки токенов), при совпадении задачи — тело файла, и только на конкретном шаге — справочники и скрипты из подпапок.

Какие агенты поддерживают скиллы

Спецификацию Agent Skills на середину 2026 поддерживают:

  • Claude — Claude Code, веб-версия claude.ai (включая Cowork), API;
  • ChatGPT Codex — CLI и агент в ChatGPT;
  • Cursor, VS Code и GitHub Copilot;
  • Google Antigravity и Gemini CLI;
  • ещё пара десятков: JetBrains Junie, AWS Kiro, Goose, Amp, TRAE и другие.

У GLM и DeepSeek собственного формата скиллов нет — но обе модели работают внутри совместимых оболочек (Claude Code с GLM-бэкендом через z.ai, OpenCode и аналоги), и скиллы кладутся в каталог той оболочки, через которую вы работаете. Формат файла при этом не меняется.

Структура файла SKILL.md

Скилл — это всегда папка. Минимальный скилл — один файл, который выглядит так:

monthly-pnl-report/
├── SKILL.md              # метаданные + инструкции (обязателен)
├── references/           # справочники: загружаются по требованию
│   ├── cost-articles.md
│   └── formulas.md
└── scripts/              # код для детерминированных шагов
    └── validate_totals.py

Во фронтматтере (блок в самом начале файла между тройными дефисами для MD напрмимер) два обязательных поля: name (до 64 символов, строчные буквы и дефисы) и description (до 1024 символов). Опциональные — license, compatibility, metadata и экспериментальный allowed-tools. Всё остальное — обычный Markdown.

Пример целиком — скилл для руководителя финансового отдела, который готовит месячный P&L из выгрузок:

---
name: monthly-pnl-report
description: Готовит ежемесячный отчёт о прибылях и убытках из CSV-выгрузки банка и статей затрат из 1С. Использовать, когда просят P&L, отчёт о прибылях и убытках или «итоги месяца по деньгам».
---

# Ежемесячный P&L

## Входные данные
- CSV-выгрузка операций из банка: колонки date, amount, counterparty, purpose.
- Справочник статей затрат: references/cost-articles.md.

## Шаги
1. Сгруппируй операции по статьям из справочника. Операции без статьи
   собери отдельным списком «Разобрать вручную» — не распределяй сам.
2. Посчитай выручку, себестоимость, валовую прибыль, операционные
   расходы и чистую прибыль. Формулы — в references/formulas.md.
3. Сравни с прошлым месяцем: колонка «дельта %» обязательна.
4. Запусти scripts/validate_totals.py — суммы по статьям должны
   сходиться с итогом выписки до копейки.

## Формат результата
Таблица в Markdown и три вывода по одной строке: главный драйвер
изменений, главный риск, что проверить руками.

## Чего не делать
- Не придумывай статьи затрат, которых нет в справочнике.
- Не округляй до тысяч — только точные суммы.

Обратите внимание на description: это не аннотация, а условие срабатывания. Агент выберет скилл, если пользователь напишет посчитай прибыли и убытки за июнь» — потому что в описании перечислены формулировки, которыми такую задачу просят.

CLAUDE.md и SKILL.md: шаблоны и различия

Эти два файла постоянно путают, а разница простая — когда текст попадает в контекст:

CLAUDE.md (AGENTS.md) SKILL.md
Когда загружается Всегда, в каждой сессии Только когда задача совпала с description
Что содержит Правила проекта: стек, конвенции, запреты Процедуру одной задачи: шаги, справочники, скрипты
Сколько их Один на проект (плюс вложенные) Сколько угодно
Цена Каждый токен — в каждом запросе Почти ноль, пока скилл не нужен

Шаблон-ориентир для каждого:

<!-- CLAUDE.md: короткие постоянные правила -->
Проект: Python + Django, стили в global.css.
Зависимости ставим только через uv.
Не трогать k8s/ без явной просьбы.
<!-- SKILL.md: процедура, нужная иногда -->
---
name: release-checklist
description: Чек-лист выката на прод. Использовать при словах «релиз», «выкатываем», «деплой на прод».
---
1. Прогони тесты и сборку...

Правило разделения: то, что должно влиять на каждый ответ агента, — в CLAUDE.md; то, что нужно иногда, но целиком, — в скилл. Раздутый CLAUDE.md — самая частая причина, почему агент «забывает» правила: они тонут в контексте.

Оформление скиллов для разных агентов

Спецификация фиксирует формат файла, но не место установки — каталоги у всех свои:

Агент Скиллы проекта Личные скиллы Явный вызов
Claude Code .claude/skills/ ~/.claude/skills/ /имя-скилла
ChatGPT Codex .agents/skills/ ~/.agents/skills/ $имя-скилла или /skills
Cursor .cursor/skills/ ~/.cursor/skills/ автоактивация
Gemini CLI .gemini/skills/ ~/.gemini/skills/ автоактивация
Antigravity ~/.gemini/antigravity/skills/ автоактивация
DeepSeek / GLM каталог оболочки, в которой работает модель

Именование везде одинаковое: папка в kebab-case, имя совпадает с полем name. Если команда работает в разных инструментах, скиллы хранят в одном месте репозитория и раскладывают по каталогам агентов симлинками или установщиком — переписывать сам файл не нужно.

10 правил хорошего скилла

  1. Один скилл — одна задача. «Финансовый помощник» — плохо, «месячный отчет о прибылях и убытках из выгрузки банка» — хорошо: агенту проще выбрать, вам проще отлаживать.
  2. Description — это триггер, а не реклама. Перечислите формулировки, которыми задачу реально просят, и границы: когда скилл применять не надо.
  3. Пишите для исполнителя. Императивные шаги («сгруппируй», «посчитай», «сравни»), а не теория предметной области — теорию модель знает без вас.
  4. Тело — короткое, тяжёлое — в references/. Прогрессивная загрузка работает, только если вы ей не мешаете: справочник на 300 строк в теле скилла съест контекст у каждой задачи.
  5. Детерминированное — в скрипты. Сверка сумм, валидация форматов, генерация файлов — это scripts/, а не «посчитай внимательно».
  6. Добавьте раздел «Чего не делать». Анти-инструкции экономят больше всего: именно они закрывают типовые галлюцинации вроде выдуманных статей затрат.
  7. Один пример входа и выхода работает лучше трёх абзацев описаний — модели отлично достраивают процедуру по образцу.
  8. Не дублируйте знания модели. Как писать SQL, агент знает; ваша ценность — названия таблиц, принятые метрики и исключения из правил.
  9. Тестируйте формулировками пользователей. Просите агента сделать задачу своими словами, без имени скилла; не сработало — правьте description, а не тело.
  10. Ведите скиллы как код. Git, ревью, версии: скилл, который «немного подправили в проде», через месяц никто не сможет отладить.

Как активировать и использовать скилл

Здесь важна разница между локальным скиллом и загруженным в платформу.

Локальный скилл в проекте — папка в репозитории (.claude/skills/, .agents/skills/ и т.д.). Агент сканирует каталог на старте сессии: новый скилл подхватывается со следующего запуска, работает у всех, кто склонировал репозиторий, и живёт в git вместе с кодом. Активация — автоматическая по description или явная командой (/имя в Claude Code, $имя в Codex).

Скилл, загруженный в платформу, живёт в аккаунте, а не в проекте. В claude.ai и Claude Cowork скиллы загружаются zip-архивом в настройках (Settings → Capabilities) и доступны во всех чатах; в Claude API скилл создаётся через /v1/skills с версионированием и подключается к агенту по skill_id. Это путь для нетехнических команд и для продуктов: пользователь скилла может вообще не знать, что такое git.

Практическое правило: процедуры инженерной команды — локально в репозитории; навыки для всей компании (юристы, финансы, поддержка) — загрузкой в платформу, чтобы обновлялись централизованно.

Что дальше

Скилл отвечает за «как делать», но агенту ещё нужен доступ к данным — это уже задача MCP-серверов: как они устроены и что дают на практике, мы разбирали в кейсе с LLM-аналитикой рекламы. А посмотреть, как выглядит зрелая библиотека скиллов, можно в разборе Claude for Small Business — там 30 готовых команд от /business-pulse до /contract-review.

Коротко

Что такое SKILL.md?

Файл навыка для ИИ-агента: YAML-метаданные с именем и описанием-триггером плюс Markdown-инструкции. С декабря 2025 — открытый стандарт Agent Skills, поддержанный более чем 30 инструментами.

Чем SKILL.md отличается от CLAUDE.md?

CLAUDE.md загружается всегда и задаёт правила проекта; SKILL.md загружается только под совпавшую задачу и описывает одну процедуру. Постоянное — в CLAUDE.md, эпизодическое — в скиллы.

Нужно ли переписывать скилл под каждого агента?

Нет, формат один. Различаются только каталоги установки: .claude/skills/, .agents/skills/, .cursor/skills/, .gemini/skills/.

Как агент понимает, когда применять скилл?

По полю description: в контексте постоянно висят только имена и описания, тело подгружается при совпадении задачи, справочники и скрипты — на конкретном шаге.

Хотите библиотеку скиллов под процессы вашей команды — от финансовых отчётов до код-ревью — пишите нам через форму на сайте, соберём и обкатаем на ваших задачах.