Skills vs Commands vs Sub-agents - что выбрать
В Claude Code есть три способа упаковать переиспользуемый воркфлоу, и они начинают конкурировать друг с другом, как только проект вырастает за пределы пары файлов. Разбираем чем они реально отличаются и когда что брать
Skills (.claude/skills/SKILL.md)
Метаинформация загружается в контекст при старте сессии (см. прошлый пост про контекст)
Тело SKILL.md грузится только когда Claude решит, что скилл релевантен задаче
Может тащить с собой связанные файлы - доку, шаблоны, примеры
Один и тот же скилл работает в Claude.ai, Claude Code и Claude Desktop
Подходит для правил, которые должны всплывать сами в нужный момент - типа «когда пишешь миграцию - используй apps.get_model и не импортируй текущую модель»
Commands (.claude/commands/*.md)
Запускаются явно через /command - это команда от пользователя, не от агента
Детерминированный сценарий, ты сам решаешь когда дернуть
Обычно один файл без бандла
Подходит для воркфлоу по запросу - /review, /seo, /pr-check
Sub-agents (.claude/agents/*.md)
Работают в отдельном окне контекста, в основное возвращается только сжатый результат работы
Со своим набором инструментов, моделью, системным промптом
Запускаются основным агентом, когда тот решит делегировать
Подходит для тяжелых задач, которые засирают контекст - security review модуля, ресерч по большому документу, рефакторинг между фреймворками
Матрица выбора получается простая:
Кто инициирует - юзер или агент? Юзер - command. Агент сам решит - skill или subagent
Важно сохранить основной контекст чистым? Да - subagent. Нет - skill
Нужна вспомогательная дока, шаблоны, примеры? Да - skill. Нет - command
Ошибка - все пихать в скиллы. У них есть бюджет (5k токенов на одно тело скилла и 25k всего на сессию после /compact), и метаинфа всех скиллов сидит в контексте всегда. Если что-то требуется раз в месяц при конкретном действии - это команда, а не скилл
Самое мощное сочетание - команда/скилл, которая внутри вызывает сабагента. /security-review запускает изолированного агента, тот читает 20 файлов, выдает отчет на 200 строк, в основной контекст возвращается только summary. И контекст экономишь, и копнуть глубоко можешь
Поддержать на Boosty
Посмотреть на Youtube
В Claude Code есть три способа упаковать переиспользуемый воркфлоу, и они начинают конкурировать друг с другом, как только проект вырастает за пределы пары файлов. Разбираем чем они реально отличаются и когда что брать
Skills (.claude/skills/SKILL.md)
Метаинформация загружается в контекст при старте сессии (см. прошлый пост про контекст)
Тело SKILL.md грузится только когда Claude решит, что скилл релевантен задаче
Может тащить с собой связанные файлы - доку, шаблоны, примеры
Один и тот же скилл работает в Claude.ai, Claude Code и Claude Desktop
Подходит для правил, которые должны всплывать сами в нужный момент - типа «когда пишешь миграцию - используй apps.get_model и не импортируй текущую модель»
Commands (.claude/commands/*.md)
Запускаются явно через /command - это команда от пользователя, не от агента
Детерминированный сценарий, ты сам решаешь когда дернуть
Обычно один файл без бандла
Подходит для воркфлоу по запросу - /review, /seo, /pr-check
Sub-agents (.claude/agents/*.md)
Работают в отдельном окне контекста, в основное возвращается только сжатый результат работы
Со своим набором инструментов, моделью, системным промптом
Запускаются основным агентом, когда тот решит делегировать
Подходит для тяжелых задач, которые засирают контекст - security review модуля, ресерч по большому документу, рефакторинг между фреймворками
Матрица выбора получается простая:
Кто инициирует - юзер или агент? Юзер - command. Агент сам решит - skill или subagent
Важно сохранить основной контекст чистым? Да - subagent. Нет - skill
Нужна вспомогательная дока, шаблоны, примеры? Да - skill. Нет - command
Ошибка - все пихать в скиллы. У них есть бюджет (5k токенов на одно тело скилла и 25k всего на сессию после /compact), и метаинфа всех скиллов сидит в контексте всегда. Если что-то требуется раз в месяц при конкретном действии - это команда, а не скилл
Самое мощное сочетание - команда/скилл, которая внутри вызывает сабагента. /security-review запускает изолированного агента, тот читает 20 файлов, выдает отчет на 200 строк, в основной контекст возвращается только summary. И контекст экономишь, и копнуть глубоко можешь
Поддержать на Boosty
Посмотреть на Youtube