AmigaОбучение ИИ
Модуль 1 · Навыки · урок 1 из 6

Что такое навыки

9 мин чтения▶ есть видеоверсия

Каждый раз, когда вы в третий раз объясняете Claude, как в вашей команде оформляются релиз-ноты, вы делаете работу, которую можно было сделать один раз. Навыки (Skills) — это способ записать такое объяснение в файл, чтобы Claude находил его сам, когда оно нужно. К концу урока вы будете понимать, что такое навык, из чего он состоит, где живёт и по какому признаку Claude решает его применить.

Проблема: одно и то же объяснение снова и снова

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

Первое, что приходит в голову, — записать всё в CLAUDE.md. Это работает, пока правил мало. Но CLAUDE.md загружается в контекст в начале каждой сессии целиком. Двадцать пунктов чек-листа доступности будут висеть в контексте, когда вы правите SQL-запрос, а шаблон релиз-нот — когда вы обсуждаете архитектуру. Файл разрастается, и Claude начинает хуже следовать тому, что там написано. Документация рекомендует держать CLAUDE.md в пределах двухсот строк.

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

Что такое навык

Навык — это папка, в которой лежит файл SKILL.md. Файл состоит из двух частей: YAML-шапки между строками --- и тела с инструкциями в обычном markdown.

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 мин на рабочем месте
  1. Спросите Claude Code: «Какие навыки тебе доступны?» Посмотрите на описания встроенных навыков — обратите внимание, как в них сформулировано условие срабатывания.
  2. Выпишите три задачи, которые вы объясняли Claude больше одного раза за последний месяц. Для каждой напишите одно предложение-описание так, как его сформулировал бы коллега в просьбе.
  3. Откройте 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. Он не запускается по событию, для этого есть хуки. Он не работает в отдельном контексте, для этого есть субагенты. Навык — это инструкция, которая появляется в разговоре в нужный момент. Не больше, но и не меньше. А большинство командных стандартов — это как раз инструкции.

Отметка хранится только в вашем браузере