Skill — это способ упаковать доменные знания (например, о работе с Bot API мессенджера Макс) в переиспользуемый модуль, который Claude Code подгружает по требованию, а не в каждую сессию. Это экономит токены и позволяет переносить опыт между проектами: один раз дистиллировали знания из проекта первого бота — используете во всех последующих.
Официальная документация: Extend Claude with skills
Skill — это папка с файлом SKILL.md внутри: YAML-frontmatter вверху (обязательные поля name и description) и markdown-инструкции ниже. Опционально рядом лежат вспомогательные файлы.
Загрузка происходит по принципу прогрессивного раскрытия (progressive disclosure) в три уровня:
| Уровень | Что это | Когда загружается в контекст |
|---|---|---|
| Метаданные | Frontmatter (name, description) | Всегда, при старте каждой сессии — по ним Claude решает, релевантен ли skill |
| Инструкции | Тело SKILL.md | Только когда skill реально выбран |
| Ресурсы | Файлы в references/, assets/, scripts/ | Только по мере необходимости во время выполнения |
Экономика проста: вы держите библиотеку skill'ов, платя лишь малую фиксированную цену за их описания, а полное содержимое загружается ровно тогда, когда оно нужно. Это ключевое отличие от CLAUDE.md, который загружается целиком в каждую сессию.
~/.claude/skills/max-bot-api/
├── SKILL.md # обязательный файл: frontmatter + инструкции
└── references/ # опционально: справочники, читаются по требованию
├── api-endpoints.md # эндпоинты и форматы Bot API
└── pitfalls.md # известные грабли и их решения
Откройте Claude Code в проекте существующего бота и попросите выгрузить накопленные знания сразу в структуру skill'а:
Проанализируй проект и собери все знания о работе с Bot API мессенджера Макс в структуру skill'а. Создай в /tmp/max-bot-api/: 1. SKILL.md — сжатая выжимка: архитектура бота, ключевые концепции API, типовые паттерны (обработка обновлений, клавиатуры, состояния диалога) 2. references/api-endpoints.md — справочник по эндпоинтам и форматам 3. references/pitfalls.md — грабли, которые мы встретили, и их решения Пиши только проверенные факты из этого проекта, без воды.
Этот шаг выполняется один раз; дальше skill переносится в любой новый проект без затрат.
| Расположение | Область действия | Когда использовать |
|---|---|---|
~/.claude/skills/<имя>/ | Личный skill, доступен во всех проектах пользователя | Знания о платформе Макс нужны в нескольких ботах |
<проект>/.claude/skills/<имя>/ | Проектный skill, коммитится в репозиторий | Знания нужны команде в рамках одного репозитория |
При совпадении имён приоритет у проектного skill'а — так можно локально переопределить личный.
Перенос дистиллированного skill'а:
mkdir -p ~/.claude/skills cp -r /tmp/max-bot-api ~/.claude/skills/
Пример для знаний о Максе:
--- name: max-bot-api description: Знания о Bot API российского мессенджера Макс — эндпоинты, авторизация, webhook, клавиатуры, состояния диалогов, известные грабли. Использовать всегда, когда работа касается бота в Максе, Bot API Макса, отправки сообщений, обработки обновлений или интеграции с мессенджером Макс, даже если пользователь не упомянул слово «Макс» явно, но проект — чат-бот для этого мессенджера. user-invocable: false --- # Bot API мессенджера Макс ## Ключевые концепции - Авторизация: токен бота передаётся ... - Получение обновлений: webhook / long polling, особенности ... ## Типовые паттерны - Роутер команд: ... - Inline-клавиатуры: ... ## Справочники - Полный список эндпоинтов: см. references/api-endpoints.md - Известные проблемы и решения: см. references/pitfalls.md
| Поле | Назначение | Рекомендации |
|---|---|---|
name | Идентификатор skill'а | Совпадает с именем папки; до 64 символов |
description | Триггер — по нему Claude решает, загружать ли skill | Писать конкретно, перечислять реальные фразы и сценарии; до 200 символов в Claude.ai, в Claude Code можно длиннее |
user-invocable: false | Skill вызывает только Claude, команды /max-bot-api не будет | Для фоновых знаний, которые не являются осмысленной командой |
disable-model-invocation: true | Skill вызывает только пользователь вручную | Для действий с побочными эффектами (деплой, коммит) — не наш случай |
Три момента, критичных для качества:
references/: контент оттуда загружается только при реальной необходимости, а тот же контент в теле SKILL.md грузился бы при каждой активации.~/.claude/skills/ создана впервые — перезапустите сессию Claude Code (новая директория верхнего уровня начинает отслеживаться только после перезапуска). Последующие правки SKILL.md подхватываются прямо в работающей сессии./skills показывает установленные skill'ы и позволяет менять их видимость./doctor диагностирует, почему skill не появляется или не срабатывает.| Симптом | Действие |
|---|---|
| Skill не срабатывает | Добавить в description буквальные фразы из ваших запросов |
| Срабатывает слишком часто | Сузить description или поставить disable-model-invocation: true и вызывать вручную |
| Знания устарели / появились новые грабли | Пополнять references/pitfalls.md по ходу работы над новыми ботами |
Со временем skill превращается в общую базу знаний обо всех ботах на платформе Макс, доступную в каждом новом проекте за минимальную цену в токенах.
| Механизм | Загрузка | Для чего |
|---|---|---|
CLAUDE.md проекта | Целиком, в каждую сессию | Короткая специфика конкретного проекта (команды, конвенции) |
| Skill | Описание — всегда; тело — по требованию | Объёмные доменные знания, нужные не в каждой сессии |
docs/ + ссылки из CLAUDE.md | По требованию, вручную | Справочники внутри одного репозитория |
| Auto memory | Индекс MEMORY.md — при старте, тематические файлы — по требованию | Заметки, которые Claude ведёт сам; привязаны к проекту |