### **Начните со сценариев использования:** Прежде чем писать код, сформулируйте 2-3 конкретных сценария, которые ваш skill должен закрывать. --- ##### Пример хорошо описанного сценария: **Сценарий:** Планирование спринта **Когда срабатывает:** пользователь пишет «помоги спланировать спринт» или «создай задачи на спринт» **Что происходит:** 1. Забирает текущий статус проекта из Linear (через MCP) 2. Анализирует скорость и загрузку команды 3. Предлагает приоритизацию задач 4. Создаёт задачи в Linear с нужными метками и оценками **Итог:** Полностью спланированный спринт, задачи уже в трекере Ответьте себе на четыре вопроса: 1. Какую задачу хочет решить пользователь? 2. Из каких шагов складывается процесс? 3. Какие инструменты понадобятся: встроенные или через MCP? 4. Какую предметную экспертизу стоит зашить в skill? --- ### **Три типичные категории skills:** #### **1. Генерация документов и ресурсов** **Для чего:** стабильный, качественный результат: документы, презентации, дизайны, код, приложения. **Живой пример:** skill [`frontend-design`](https://github.com/anthropics/skills/tree/main/skills/frontend-design) «Создаёт выразительные, готовые к продакшену фронтенд-интерфейсы. Подходит для веб-компонентов, лендингов, артефактов и приложений.» **Характерные приёмы:** - Зашитые стайл-гайды и стандарты бренда - Шаблоны для единообразия результатов - Чеклисты качества перед финальной выдачей - Внешние инструменты не нужны, хватает встроенных возможностей Claude --- #### **2. Автоматизация рабочих процессов** **Для чего:** многоэтапные процессы, где важна единая методология, в том числе координация между несколькими MCP-серверами. **Живой пример:** skill [`skill-creator`](https://github.com/anthropics/skills/tree/main/skills/skill-creator) _«Интерактивный помощник для создания новых skills. Ведёт пользователя через формулировку сценариев, заполнение frontmatter, написание инструкций и проверку.»_ **Характерные приёмы:** - Пошаговый процесс с контрольными точками - Готовые шаблоны для типовых ситуаций - Встроенные подсказки по улучшению - Цикл «сделал, проверил, доработал» --- #### **3. Усиление MCP-интеграции:** **Для чего:** добавить слой экспертизы поверх инструментов, которые даёт MCP-сервер. **Живой пример:** skill [`sentry-code-review`](https://github.com/getsentry/sentry-for-claude/tree/main/skills) (от Sentry) _«Автоматически находит и исправляет баги в Pull Request'ах на GitHub, опираясь на данные мониторинга Sentry через MCP.»_ **Характерные приёмы:** - Цепочка из нескольких MCP-вызовов в нужном порядке - Предметная экспертиза, вшитая в логику - Контекст, который иначе пришлось бы объяснять каждый раз - Обработка типичных ошибок MCP --- ### **Как понять, что skill работает:** Это ориентиры, а не жёсткие пороги. Часть оценки неизбежно будет субъективной — и это нормально. #### Цифры: - **Skill подключается в 90% подходящих запросов** Как проверить: прогоните 10-20 тестовых запросов. Посчитайте, в скольких случаях skill загрузился сам, без ручного вызова. - **Рабочий процесс укладывается в X вызовов инструментов** Как проверить: дайте одну и ту же задачу с включённым skill и без. Сравните число вызовов и расход токенов. - **Ни одного сбойного API-вызова за весь процесс** Как проверить: смотрите логи MCP-сервера во время тестовых прогонов. #### **Ощущения:** - Пользователю не приходится подсказывать Claude, что делать дальше - Процесс доходит до конца без ручных правок - Результаты воспроизводимы от сессии к сессии --- ### **Технические требования**: #### Структура файлов ```bash your-skill-name/ ├── SKILL.md # Обязательный ├── scripts/ # Опционально - скрипты │ ├── process_data.py │ └── validate.sh ├── references/ # Опционально - справка │ ├── api-guide.md │ └── examples/ └── assets/ # Опционально - шаблоны и тп.     └── report-template.md ``` #### Железные правила: **Файл SKILL.md:** - Имя ровно `SKILL.md`, регистр важен. - Никакие вариации не пройдут: ни `SKILL.MD`, ни `skill.md` . **Имя папки:** ✅ Правильно: `notion-project-setup` , kebab-case, всё строчными, через дефис. ❌ Неправильно: `Notion Project Setup` `notion_project_setup` `NotionProjectSetup` **README.md внутри skill не нужен.**  Вся документация лежит в `SKILL.md` или `references/`. README понадобится позже, на уровне репозитория, для людей, а не для Claude. --- ### **YAML frontmatter: самое важное в skill:** Именно по YAML-шапке Claude решает, подключать ваш skill или нет. Здесь нельзя ошибиться. #### Минимально рабочий вариант ```yaml --- name: your-skill-name description: Что делает. Подключать, когда пользователь просит [конкретные фразы]. --- ``` Этого достаточно для старта. #### Обязательные поля: **name**: - Только kebab-case (строчные через дефис) - Без пробелов и заглавных - Должно совпадать с именем папки **description**: - Обязательно содержит две вещи: **что skill делает** и **когда его подключать** - Не больше 1024 символов - Никаких XML-тегов (`<` или `>`) - Перечислите конкретные фразы, которые может сказать пользователь - Укажите типы файлов, если это важно #### Опциональные поля - **license:** лицензия для открытых skills (MIT, Apache-2.0) - **compatibility:** требования к окружению (1-500 символов) - **metadata:** произвольные поля: автор, версия, mcp-server и т.д. #### Ограничения безопасности Во frontmatter запрещены: - XML-угловые скобки (`< >`) - Слова «claude» или «anthropic» в имени skill (зарезервированы) Шапка попадает прямо в системный промпт Claude, поэтому вредоносный контент мог бы подменить инструкции. --- ### Как писать описание Формула: **[Что делает] + [Когда подключать] + [Ключевые возможности]** ✅ Хорошо — конкретно и с триггерами: - Разбирает дизайн-файлы Figma и готовит документацию для передачи разработчикам. Подключать, когда пользователь загружает .fig, просит «спеки по дизайну», «документацию компонентов» или «хендофф дизайна». - Управляет проектами в Linear: планирование спринтов, создание задач, трекинг статусов. Подключать, когда пользователь упоминает «спринт», «задачи Linear», «планирование проекта» или просит «создать тикеты». - Полный онбординг клиентов PayFlow: создание аккаунта, настройка оплаты, управление подпиской. Подключать, когда пользователь просит «заонбордить клиента», «настроить подписку» или «создать аккаунт PayFlow». ❌ Плохо: - Помогает с проектами. - Создаёт системы документации. - Реализует модель Project с иерархическими связями. --- ### Как писать инструкции: После YAML-шапки идёт тело skill, обычный Markdown. Вот рекомендуемый каркас: ````yaml --- name: your-skill description: [...] --- # Название Skill ## Инструкции ### Шаг 1: [Первый шаг] Что конкретно нужно сделать. Пример: ```bash python scripts/fetch_data.py --project-id PROJECT_ID ``` Если всё прошло хорошо: [описание результата] ## Примеры ### Пример 1: [типичная ситуация] Пользователь: "Создай новую маркетинговую кампанию" Действия: 1. Забрать существующие кампании через MCP 2. Создать новую с указанными параметрами Результат: кампания создана, ссылка для подтверждения отправлена ## Если что-то пошло не так Ошибка: [текст ошибки] Почему: [причина] Что делать: [решение] ```` #### Как писать инструкции, которые работают: ✅ Хорошо: конкретно, с примерами ``` Запустите `python scripts/validate.py --input {filename}` для проверки формата. Если не прошло, типичные причины: - Не хватает обязательных полей (допишите в CSV) - Даты в неправильном формате (нужен YYYY-MM-DD) ``` ❌ Плохо: размыто, бесполезно ``` Проверьте данные перед тем как продолжить. ``` Не забывайте про **обработку ошибок** и **ссылки на справочные файлы**. Главное правило: `SKILL.md` содержит суть, а детали выносите в `references/`.