Навыки (Skills)
Как использовать и создавать Skills в Claude Code
Навыки (Skills)¶
Skills — это компоненты уровня знаний в Claude Code, предоставляющие Claude специализированные знания и рекомендации в конкретных областях. В отличие от команд, которые требуют ручного вызова, Skills активируются автоматически в зависимости от контекста задачи.
Что такое Skills?¶
Skills — это модули специализированных знаний, хранящиеся в файлах SKILL.md:
-
Автоматическая активация: Claude автоматически использует подходящий Skill в зависимости от контекста задачи
-
Доменные знания: предоставляют лучшие практики и рекомендации для конкретной области
-
Расширяемость: можно создавать пользовательские Skills для специфических потребностей
-
Контекстная осведомлённость: вызываются только в релевантных сценариях
Skills vs Commands vs Agents¶
| Компонент | Способ вызова | Назначение |
|---|---|---|
| Commands | Ручной вызов пользователем (/command) |
Выполнение конкретных задач |
| Skills | Автоматическая активация | Предоставление доменных знаний |
| Agents | Делегированный вызов | Обработка сложных рабочих процессов |
Использование встроенных Skills¶
Плагины Claude Code обычно включают несколько встроенных Skills. Когда ваша задача совпадает с описанием Skill, Claude автоматически его использует.
Пример: Ревью кода¶
Когда вы говорите «Помоги проверить безопасность этого кода», если установлен плагин с Skill по безопасности, Claude автоматически применит знания этого Skill для проведения проверки.
Просмотр доступных Skills¶
Skills обычно устанавливаются вместе с плагинами:
# Установка плагина (плагин может содержать несколько Skills)
/plugin install plugin-name@marketplace
Создание пользовательских Skills¶
Базовая структура¶
Простейший Skill требует только файла SKILL.md:
my-skill/
└── SKILL.md
Формат SKILL.md¶
---
name: Руководство по стилю кода
description: Используется, когда пользователь спрашивает о «стиле кода», «соглашениях об именовании», «форматировании кода» или обсуждает стандарты кода
version: 1.0.0
---
# Руководство по стилю кода
## Соглашения об именовании
- Переменные — camelCase
- Константы — UPPER_SNAKE_CASE
- Классы — PascalCase
- Приватные члены — с префиксом подчёркивания
## Правила форматирования
- Отступы — 2 пробела
- Длина строки не более 80 символов
- Использование завершающей запятой
## Лучшие практики
- Функция должна иметь единственную ответственность
- Избегайте глубокой вложенности
- Используйте осмысленные имена переменных
Пол�� frontmatter¶
| Поле | Обязательное | Описание |
|---|---|---|
name |
Да | Название Skill |
description |
Да | Описание условий активации (ключевое!) |
version |
Нет | Номер версии |
Написание эффективного Description¶
Поле description определяет, когда Skill будет активирован, и должно содержать конкретные триггерные фразы:
Хороший пример:
description: Используется, когда пользователь спрашивает о «создании hook», «добавлении PreToolUse hook», «валидации использования инструментов» или упоминает hook-события
Плохой пример:
description: Руководство по hooks # Слишком расплывчато
Полная структура Skill¶
Для сложных Skills можно включать дополнительные ресурсы:
my-skill/
├── SKILL.md # Основной документ знаний
├── references/ # Детальные справочные материалы
│ ├── patterns.md # Паттерны проектирования
│ └── advanced.md # Продвинутые приёмы
├── examples/ # Примеры кода
│ ├── basic.ts # Базовый пример
│ └── advanced.ts # Продвинутый пример
└── scripts/ # Вспомогательные скрипты
└── validate.sh # Скрипт валидации
Ссылки на ресурсы¶
Ссылки на другие ресурсы в SKILL.md:
---
name: Руководство по разработке API
description: Используется, когда пользователь спрашивает о «проектировании API», «REST-интерфейсах», «лучших практиках API»
version: 1.0.0
---
# Руководство по разработке API
Подробные паттерны проектирования API см. в @references/patterns.md
## Быстрый пример
См. @examples/basic.ts для базового использования
Использование Skills в плагинах¶
Структура директорий¶
Skills размещаются в директории skills/ плагина:
my-plugin/
├── .claude-plugin/
│ └── plugin.json
├── commands/ # Уровень команд
├── agents/ # Уровень агентов
└── skills/ # Уровень знаний
├── code-style/
│ └── SKILL.md
└── api-docs/
├── SKILL.md
└── references/
Ссылка на Skill в команде¶
Команды могут явно ссылаться на знания Skill:
---
description: Генерация API-документации по стандартам
argument-hint: [api-file]
---
Сгенерируй API-документацию для @$1.
Используй Skill api-docs, чтобы документация включала:
- Полное описание эндпоинтов
- Спецификации параметров
- Форматы ответов
- Коды ошибок
- Примеры использования
Практические примеры¶
Пример 1: Skill стандартов проекта¶
---
name: Стандарты проекта
description: Используется, когда пользователь спрашивает о «структуре проекта», «организации файлов», «стандартах директорий»
version: 1.0.0
---
# Стандарты проекта
## Структура директорий
\`\`\`
src/
├── components/ # React-компоненты
├── hooks/ # Пользовательские Hooks
├── services/ # API-сервисы
├── utils/ # Утилиты
└── types/ # Типы TypeScript
\`\`\`
## Именование файлов
- Компоненты: PascalCase (например, `UserProfile.tsx`)
- Утилиты: camelCase (например, `formatDate.ts`)
- Константы: UPPER_SNAKE_CASE (например, `API_ENDPOINTS.ts`)
## Порядок импортов
1. Связанные с React
2. Сторонние библиотеки
3. Внутренние модули
4. Определения типов
5. Файлы стилей
Пример 2: Skill Git-воркфлоу¶
---
name: Git-воркфлоу
description: Используется, когда пользователь спрашивает о «стратегии ветвления», «стандартах коммитов», «Git-процессе»
version: 1.0.0
---
# Стандарты Git-воркфлоу
## Именование веток
- Функция: `feature/описание`
- Исправление: `fix/описание`
- Срочное исправление: `hotfix/описание`
## Формат сообщения коммита
\`\`\`
<type>(<scope>): <subject>
<body>
<footer>
\`\`\`
### Типы Type
- `feat`: новая функциональность
- `fix`: исправление бага
- `docs`: обновление документации
- `style`: форматирование кода
- `refactor`: рефакторинг
- `test`: тесты
- `chore`: сборка/инструменты
Пример 3: Skill аудита безопасности¶
---
name: Аудит безопасности
description: Используется, когда пользователь спрашивает о «проверке безопасности», «сканировании уязвимостей», «лучших практиках безопасности» или проверяет безопасность кода
version: 1.0.0
---
# Руководство по аудиту безопасности
## Проверка распространённых уязвимостей
### SQL-инъекции
- Проверьте использование параметризованных запросов
- Избегайте конкатенации строк в SQL
### XSS-атаки
- Проверьте экранирование пользовательского ввода
- Используйте CSP-заголовки
### Конфиденциальные данные
- Убедитесь, что пароли не хранятся в открытом виде
- Не хардкодьте API-ключи
- Проверьте, не утекают ли конфиденциальные данные в логи
## Чеклист проверки
- [ ] Валидация ввода
- [ ] Кодирование вывода
- [ ] Механизм аутентификации
- [ ] Проверка авторизации
- [ ] Использование шифрования
- [ ] Обработка ошибок
Лучшие практики¶
1. Чёткое описание триггеров¶
Используйте конкретные триггерные фразы вместо расплывчатых описаний:
# Хорошо
description: Используется, когда пользователь спрашивает о «создании компонента», «шаблоне React-компонента», «лучших практиках компонентов»
# Плохо
description: Связано с React-компонентами
2. Структурированные знания¶
Организуйте знания в чёткую иерархическую структуру:
-
Используйте уровни заголовков
-
Предоставляйте примеры кода
-
Включайте чеклисты
3. Поддержание актуальности¶
-
Регулярно обновляйте содержимое Skill
-
Номер версии отражает изменения
-
Фиксируйте важные обновления
4. Модульное проектирование¶
-
Каждый Skill фокусируется на одной области
-
Используйте директорию references для детальных материалов
-
Предоставляйте практические примеры через examples
Отладка Skills¶
Если Skill не активируется как ожидалось:
-
Проверьте description: убедитесь, что триггерные фразы соответствуют вводу пользователя
-
Проверьте формат: убедитесь, что YAML frontmatter корректен
-
Протестируйте активацию: попробуйте точные фразы из description
Следующие шаги¶
-
Система плагинов — полное руководство по разработке плагинов
-
MCP-серверы — расширение инструментальных возможностей Claude
-
Советы по CLI — повышение эффективности работы с командной строкой