Claude Code: как создавать кастомные навыки и команды

Claude Code: как создавать кастомные навыки и команды

Большинство разработчиков используют Claude Code как продвинутый чат в терминале, раз за разом печатая одни и те же инструкции для код-ревью или написания тестов. Но что если я скажу вам, что вы можете превратить повторяющиеся задачи в атомарные, программируемые команды, которые выполняются одной короткой фразой? Секрет кроется в системе пользовательских «скиллов», которые превращают инструмент из простого ассистента в полноценную платформу автоматизации разработки.

Пользовательские команды-скиллы в Claude Code: почему это меняет правила игры?

Вот в чем дело: стандартные команды вроде /compact или /init полезны, но они универсальны. В реальной работе вам нужна специфика вашего проекта, ваших линтеров и ваших архитектурных паттернов. Кастомные скиллы (skills) позволяют инкапсулировать сложные воркфлоу в простые слэш-команды. Это не просто сохраненные промпты, а полноценные сценарии с доступом к файловой системе и инструментам анализа.

Результаты внедрения кастомных команд:

  • Сокращение времени на постановку типовых задач на 80% за счет исключения повторных инструкций.
  • Стандартизация кода в команде: агент всегда следует правилам, описанным в SKILL.md.
  • Минимизация галлюцинаций: четко заданные границы инструментов (allowed-tools) не дают ИИ «фантазировать» лишнего.
  • Автоматизация пред-проверки: возможность инъекции вывода терминала (например, git diff) сразу в контекст запроса.

Для тех, кто хочет глубже погрузиться в экосистему эффективной разработки и автоматизации, рекомендую изучить подходы, которыми делится Олег Тестов | Соло-фаундер в найме, где разбираются не только инструменты, но и архитектура личной продуктивности программиста.

Как создать и настроить свой первый скилл?

Процесс создания команды в Claude Code удивительно прост и напоминает создание обычного Markdown-файла с небольшими дополнениями в формате YAML. Здесь нет необходимости писать сложный JS-код — достаточно описать логику на естественном языке и задать метаданные.

Шаг 1: Создайте структуру папок. В корне вашего проекта (или в домашней директории для глобального доступа) создайте путь .claude/skills/[имя-команды]/. Например, если вы хотите создать команду /audit, путь будет .claude/skills/audit/.

Шаг 2: Создайте файл SKILL.md. Этот файл является «мозгом» вашей команды. Он состоит из двух частей: заголовка между тройными дефисами (YAML) и тела инструкции.

---
name: audit
description: Полный аудит безопасности и зависимостей проекта
---
1. Выполни команду `npm audit` для поиска уязвимостей.
2. Попробуй автоматически исправить их через `npm audit fix`.
3. Запусти все существующие тесты проекта, чтобы убедиться, что исправления ничего не сломали.

Но здесь есть нюанс: чтобы команда заработала, файл должен находиться строго по указанному пути. Как только вы сохраните файл, Claude Code автоматически подхватит его, и вы сможете вызвать /audit в терминале.

Как использовать аргументы для динамических команд?

Статические команды хороши, но часто нам нужно передать конкретный контекст: путь к файлу, название фичи или номер тикета. Для этого в Claude Code предусмотрены переменные $ARGUMENTS или позиционные аргументы $1, $2.

Рассмотрим пример создания скилла для написания тестов /write-tests:

Параметр Значение в SKILL.md Описание
name write-tests Имя вызываемой команды
argument-hint [filepath] Подсказка, которая отобразится в интерфейсе
Контекст Vitest + RTL Описание стека для единообразия тестов

Внутри SKILL.md это выглядит так:

Напиши тесты для файла: $ARGUMENTS. Используй Vitest. Файлы создавай в папке __tests__ рядом с исходником. Обязательно покрой happy path и крайние случаи.

Вызов команды будет выглядеть максимально лаконично: /write-tests src/components/Button.tsx. Claude подставит путь к файлу вместо переменной и сразу приступит к выполнению по вашему шаблону.

Продвинутые возможности: Инструменты и Shell-инъекции

И вот тут становится по-настоящему интересно. Скиллы в Claude Code — это не просто текст сообщения. Это возможность ограничить или расширить способности агента в рамках конкретной задачи. Согласно внутренней документации Anthropic, правильное ограничение инструментов (sandboxing) значительно повышает точность работы LLM на сложных задачах.

Используйте следующие параметры в YAML-шапке:

  • allowed-tools: Список разрешенных инструментов. Например, Read, Grep, Bash(git *) позволит агенту читать файлы и использовать только git-команды в терминале.
  • context: fork: Запускает выполнение команды в изолированном субагенте. Это идеально для исследовательских задач, чтобы не "загрязнять" основной чат лишними данными.
  • Shell-инъекции (Backticks): Самая мощная фича. Вы можете вставить выполнение Bash-команды прямо в текст промпта с помощью синтаксиса !`команда`.

Представьте команду /review-changes, которая перед началом анализа сама вытягивает диффы из гита. Это позволяет Claude получить реальные данные еще до того, как он начнет "думать", что экономит токены и время. Разбор таких сложных автоматизаций часто встречается в профильных сообществах, например, на канале Олег Тестов | Соло-фаундер в найме, где детально обсуждаются воркфлоу современных разработчиков.

Часто задаваемые вопросы

Где лучше хранить скиллы — в проекте или глобально?

Если команда специфична для проекта (например, запуск определенных тестов), храните ее в .claude/skills/ внутри репозитория и коммитьте в Git. Если это общая утилита для ревью любого кода, лучше положить ее в ~/.claude/skills/.

Можно ли использовать несколько аргументов в одной команде?

Да, вы можете использовать $1, $2 и так далее для позиционной передачи параметров или $ARGUMENTS для захвата всей строки после имени команды.

Как обновить список скиллов, если я добавил новый файл?

Claude Code сканирует директории со скиллами при запуске и в процессе работы. Обычно достаточно просто сохранить файл SKILL.md, и команда станет доступна мгновенно. Если нет — перезапустите сессию.

Подведение итогов

Кастомные команды в Claude Code — это эффективный мост между хаотичным общением с ИИ и строгой автоматизацией разработки. Вместо того чтобы каждый раз объяснять агенту, что тесты должны быть на Vitest, а код-стайл соответствовать Airbnb, вы фиксируете эти правила один раз в SKILL.md.

Запомните три главных правила создания скиллов:

  1. Используйте allowed-tools для повышения безопасности и предсказуемости.
  2. Внедряйте Shell-инъекции типа !`git diff`, чтобы дать агенту свежий контекст без лишних уточнений.
  3. Разделяйте проектные и глобальные команды для чистоты вашего окружения.

Применяя эти методы, вы превращаете Claude Code в персонализированную IDE на стероидах, которая понимает специфику вашего продукта с полуслова.

Готовы автоматизировать свою разработку на максимум?

Больше прикладных советов по ИИ и продуктивности → Подписаться на канал Олега Тестова

Read more

План А: как спасти человечество от гонки ИИ-вооружений

План А: как спасти человечество от гонки ИИ-вооружений

Мир стоит на пороге технологической сингулярности, и вопрос уже не в том, когда появится сверхразум, а в том, как человечество переживет момент его рождения. Создатели нашумевшего проекта AI 2027 представили новый сценарий будущего под названием «Plan A» — амбициозный манифест по предотвращению глобальной катастрофы. Пока ведущие державы наращивают вычислительные мощности в

Как скрыть ИИ: 5 способов изменить ритм текста для обхода детекторов

Как скрыть ИИ: 5 способов изменить ритм текста для обхода детекторов

Вы наверняка это чувствовали: читаешь статью, и внутри срабатывает тихий звоночек. Вроде бы все грамматически верно, факты на месте, но текст ощущается «пластиковым». Это «запах» нейросети. Сегодня детекторы ИИ и обычные читатели стали невероятно чуткими к определенным паттернам, которые выдают машину с потрохами. Проблема не в использовании ChatGPT как таковом,

7 техник промптинга от Anthropic: как получать умные ответы от ИИ

7 техник промптинга от Anthropic: как получать умные ответы от ИИ

Каждый, кто активно работает с нейросетями, рано или поздно сталкивается с «эффектом плато»: ответы становятся предсказуемыми, плоскими и лишенными той глубины, которая необходима для серьезных исследовательских или бизнес-задач. Проблема не в модели, а в подходе к постановке задачи. Когда мы просим ИИ «просто решить проблему», мы получаем усредненный результат из

7 способов сохранить лицо в ИИ-видео: решаем проблему за 30 секунд

7 способов сохранить лицо в ИИ-видео: решаем проблему за 30 секунд

Вы провели часы, оттачивая промпт, выбрали лучшую модель, нажали «Сгенерировать», и первый кадр выглядит потрясающе. Но к третьему шоту ваш главный герой внезапно меняет черты лица, освещение в комнате превращается из дневного в закатное, а одежда живет своей жизнью. Знакомая ситуация? Виртуальная «преемственность» (continuity) — это главная стена, о которую разбиваются