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.
Запомните три главных правила создания скиллов:
- Используйте
allowed-toolsдля повышения безопасности и предсказуемости. - Внедряйте Shell-инъекции типа
!`git diff`, чтобы дать агенту свежий контекст без лишних уточнений. - Разделяйте проектные и глобальные команды для чистоты вашего окружения.
Применяя эти методы, вы превращаете Claude Code в персонализированную IDE на стероидах, которая понимает специфику вашего продукта с полуслова.
Готовы автоматизировать свою разработку на максимум?
Больше прикладных советов по ИИ и продуктивности → Подписаться на канал Олега Тестова