Что такое навыки
Каждый раз, когда вы в третий раз объясняете Claude, как в вашей команде оформляются релиз-ноты, вы делаете работу, которую можно было сделать один раз. Навыки (Skills) — это способ записать такое объяснение в файл, чтобы Claude находил его сам, когда оно нужно. К концу урока вы будете понимать, что такое навык, из чего он состоит, где живёт и по какому признаку Claude решает его применить.
Проблема: одно и то же объяснение снова и снова
В агентстве много повторяющихся задач с собственными правилами. Релиз-ноты пишутся по шаблону: заголовок с версией, три раздела, ссылки на задачи в трекере. Проверка вёрстки на доступность идёт по чек-листу из двадцати пунктов. Миграция базы оформляется так, чтобы её можно было откатить. Ни одно из этих правил Claude не знает — он не работал в вашей команде.
Первое, что приходит в голову, — записать всё в CLAUDE.md. Это работает, пока правил мало. Но CLAUDE.md загружается в контекст в начале каждой сессии целиком. Двадцать пунктов чек-листа доступности будут висеть в контексте, когда вы правите SQL-запрос, а шаблон релиз-нот — когда вы обсуждаете архитектуру. Файл разрастается, и Claude начинает хуже следовать тому, что там написано. Документация рекомендует держать CLAUDE.md в пределах двухсот строк.
Навыки решают эту проблему иначе: инструкция хранится отдельно и попадает в контекст только тогда, когда действительно нужна.
Что такое навык
Навык — это папка, в которой лежит файл SKILL.md. Файл состоит из двух частей: YAML-шапки между строками --- и тела с инструкциями в обычном markdown.
---
name: release-notes
description: Пишет релиз-ноты по шаблону команды из коммитов и задач трекера. Используй, когда просят подготовить релиз-ноты, changelog или описание релиза.
---
Собери релиз-ноты для версии, которую назвал пользователь.
1. Возьми список коммитов с прошлого тега.
2. Сгруппируй изменения: «Новое», «Исправлено», «Изменено».
3. Для каждого пункта — одна строка в прошедшем времени
и ссылка на задачу, если в коммите есть её номер.
4. Убери из списка служебные коммиты (merge, bump version, lint).
Шаблон — ниже. Не добавляй разделов, которых в нём нет.Папка может содержать и другие файлы: подробные справочники, шаблоны, скрипты. SKILL.md — обязательный минимум, остальное по необходимости. О многофайловых навыках — в уроке «Конфигурация и многофайловые навыки».
Два поля шапки важнее прочих. name — отображаемое имя. description — по нему Claude решает, когда навык применять. Именно description делает навык навыком, а не просто заметкой.
Как Claude решает, что пора
Здесь ключевой механизм. При старте сессии Claude Code загружает в контекст список навыков: только имена и описания. Тела навыков в контекст не попадают. Это дёшево: даже двадцать навыков занимают несколько строк.
Когда вы пишете «подготовь релиз-ноты для 2.4», Claude смотрит на список и видит навык с описанием «пишет релиз-ноты по шаблону команды… используй, когда просят подготовить релиз-ноты». Совпадение есть — Claude загружает полное тело SKILL.md в разговор и следует инструкциям. Если бы вы попросили «поправь отступы в таблице», навык остался бы нетронутым.
Отсюда практическое правило: описание — это условие срабатывания. В нём должны быть слова, которыми люди реально формулируют просьбу: «релиз-ноты», «changelog», «описание релиза». Описание «навык для релизов» сработает хуже, потому что слово «релизы» в просьбах встречается реже, чем кажется.
Вызвать навык можно и самому — командой /release-notes 2.4. Имя команды для проектных и личных навыков — это имя папки. Оба пути включены по умолчанию, но в шапке можно отключить любой из них: сделать навык только ручным (для операций с побочными эффектами вроде деплоя) или только автоматическим (для справочной информации, которую человек не вызывает командой).
Тело навыка, однажды загруженное, остаётся в разговоре на следующие ходы — повторно грузить его не нужно.
Где живут навыки
| Где | Путь | Для кого |
|---|---|---|
| Проект | .claude/skills/<имя>/SKILL.md |
Вся команда, через git |
| Личные | ~/.claude/skills/<имя>/SKILL.md |
Только вы, во всех проектах |
| Плагин | <плагин>/skills/<имя>/SKILL.md |
Там, где плагин включён; команда /плагин:имя |
| Организация | Управляемые настройки | Все сотрудники, разворачивает IT |
Есть и вложенные навыки — .claude/skills/ внутри поддиректории монорепозитория; они подключаются, когда Claude работает с файлами этой поддиректории. Для командных стандартов правильное место — проектная папка в репозитории: изменения проходят ревью, и навык получает каждый, кто клонирует проект.
Если у навыков совпали имена, приоритет такой: организация выше личных, личные выше проектных. Плагинные живут в собственном пространстве имён и ни с кем не конфликтуют.
Навыки и слэш-команды
Если вы раньше держали файлы в .claude/commands/, они продолжают работать: .claude/commands/deploy.md и .claude/skills/deploy/SKILL.md оба создают команду /deploy. Custom commands объединили с навыками. Навыки добавляют то, чего у команд не было: папку для вспомогательных файлов, управление тем, кто вызывает (вы или Claude), автоматическое срабатывание по описанию. Если и команда, и навык с одним именем существуют, побеждает навык.
Claude Code также поставляется с набором встроенных навыков — например, /code-review и /debug. Они устроены так же, и на них полезно смотреть как на образцы.
Что навык не делает
Навык не даёт Claude новых инструментов — для этого есть MCP. Навык не запускается сам по расписанию или по событию — для этого есть хуки. Навык не работает в отдельном контексте — для этого есть субагенты (хотя навык можно запустить внутри субагента). Навык — это инструкция, которая появляется в разговоре в нужный момент. Не больше, но и не меньше: большинство командных стандартов — это именно инструкции.
Попробуйте сами
10–15 мин на рабочем месте- Спросите Claude Code: «Какие навыки тебе доступны?» Посмотрите на описания встроенных навыков — обратите внимание, как в них сформулировано условие срабатывания.
- Выпишите три задачи, которые вы объясняли Claude больше одного раза за последний месяц. Для каждой напишите одно предложение-описание так, как его сформулировал бы коллега в просьбе.
- Откройте CLAUDE.md любого своего проекта и отметьте абзацы, которые нужны не в каждой сессии, а только для конкретного типа задачи. Это кандидаты на превращение в навыки.
Коротко
- Навык — папка с
SKILL.md: YAML-шапка (name,description) и инструкции в теле. - При старте в контекст попадают только имена и описания; тело загружается, когда навык сработал.
- Claude применяет навык, сопоставляя просьбу с
description; описание — условие срабатывания. - Вызвать можно и самому:
/имя-навыка аргументы. - Живут в
.claude/skills/(проект),~/.claude/skills/(личные), в плагинах и в настройках организации. - Файлы из
.claude/commands/работают как навыки; при совпадении имён побеждает навык.
Видеоверсия
Сценарий озвучки · 468 слов, ≈ 4 мин
Каждый раз, когда вы в третий раз объясняете Claude, как в вашей команде пишутся релиз-ноты, вы делаете работу, которую можно было сделать один раз. Навыки — это способ записать объяснение в файл так, чтобы Claude находил его сам, когда нужно.
Начнём с проблемы. В агентстве много повторяющихся задач со своими правилами. Релиз-ноты — по шаблону. Проверка доступности — по чек-листу из двадцати пунктов. Миграции — так, чтобы можно было откатить. Claude этих правил не знает, он не работал в вашей команде. Первая мысль — записать всё в клод-эм-дэ. Но этот файл загружается целиком в начале каждой сессии. Чек-лист доступности будет висеть в контексте, когда вы правите запрос к базе. Файл разрастается, и Claude хуже следует тому, что там написано.
Навык решает это иначе. Инструкция хранится отдельно и попадает в контекст только тогда, когда действительно нужна.
Что такое навык технически? Это папка, в которой лежит файл скилл-эм-дэ. В начале файла — шапка с двумя главными полями: имя и описание. Дальше — инструкции обычным текстом: что сделать, в каком порядке, по какому шаблону. В папке могут лежать и другие файлы — справочники, шаблоны, скрипты, — но обязательный минимум один.
Теперь главный механизм: как Claude решает, что пора применить навык. При старте сессии в контекст загружается список навыков — только имена и описания. Тела не загружаются. Это дёшево: двадцать навыков занимают несколько строк. Когда вы пишете «подготовь релиз-ноты для версии два-четыре», Claude смотрит на список, видит навык с описанием «пишет релиз-ноты по шаблону команды, используй, когда просят релиз-ноты или changelog», находит совпадение и загружает полный текст навыка в разговор. Если бы вы попросили поправить отступы в таблице, навык остался бы нетронутым.
Отсюда правило: описание — это условие срабатывания. В нём должны быть слова, которыми люди реально формулируют просьбу. «Релиз-ноты», «changelog», «описание релиза». Описание «навык для релизов» сработает хуже.
Вызвать навык можно и самому — командой через слэш и имя папки. Оба пути включены по умолчанию, но любой можно отключить: сделать навык только ручным, если у него есть побочные эффекты вроде деплоя, или только автоматическим, если это справка, которую человек командой не вызывает.
Где живут навыки. Проектные — в папке точка-клод, скиллс внутри репозитория; их получает вся команда через git. Личные — в такой же папке в домашней директории, они работают во всех ваших проектах. Ещё навыки приходят с плагинами и разворачиваются организацией централизованно. Для командных стандартов правильное место — проект: изменения проходят ревью, и навык получает каждый, кто клонирует репозиторий.
Если вы раньше держали слэш-команды в папке коммандс, они продолжают работать: команды объединили с навыками. Навыки просто умеют больше: вспомогательные файлы, управление тем, кто вызывает, автоматическое срабатывание.
И напоследок — чего навык не делает. Он не даёт Claude новых инструментов, для этого есть MCP. Он не запускается по событию, для этого есть хуки. Он не работает в отдельном контексте, для этого есть субагенты. Навык — это инструкция, которая появляется в разговоре в нужный момент. Не больше, но и не меньше. А большинство командных стандартов — это как раз инструкции.
