Скиллы перестали быть фишкой одного вендора: в декабре 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 правил хорошего скилла
- Один скилл — одна задача. «Финансовый помощник» — плохо, «месячный отчет о прибылях и убытках из выгрузки банка» — хорошо: агенту проще выбрать, вам проще отлаживать.
- Description — это триггер, а не реклама. Перечислите формулировки, которыми задачу реально просят, и границы: когда скилл применять не надо.
- Пишите для исполнителя. Императивные шаги («сгруппируй», «посчитай», «сравни»), а не теория предметной области — теорию модель знает без вас.
- Тело — короткое, тяжёлое — в references/. Прогрессивная загрузка работает, только если вы ей не мешаете: справочник на 300 строк в теле скилла съест контекст у каждой задачи.
- Детерминированное — в скрипты. Сверка сумм, валидация форматов, генерация файлов — это
scripts/, а не «посчитай внимательно». - Добавьте раздел «Чего не делать». Анти-инструкции экономят больше всего: именно они закрывают типовые галлюцинации вроде выдуманных статей затрат.
- Один пример входа и выхода работает лучше трёх абзацев описаний — модели отлично достраивают процедуру по образцу.
- Не дублируйте знания модели. Как писать SQL, агент знает; ваша ценность — названия таблиц, принятые метрики и исключения из правил.
- Тестируйте формулировками пользователей. Просите агента сделать задачу своими словами, без имени скилла; не сработало — правьте description, а не тело.
- Ведите скиллы как код. 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: в контексте постоянно висят только имена и описания, тело подгружается при совпадении задачи, справочники и скрипты — на конкретном шаге.
Хотите библиотеку скиллов под процессы вашей команды — от финансовых отчётов до код-ревью — пишите нам через форму на сайте, соберём и обкатаем на ваших задачах.