Как выбрать функцию: CLAUDE.md vs Skill vs Hook vs MCP vs Subagent
📚 Навигация по серии: Предыдущая статья 29 Agent teams: многосеансовое сотрудничество научила вас использовать Agent teams для параллельной работы нескольких агентов. В этой статье мы подводим итоги четвертого блока. Изучив CLAUDE.md, Skill, Hook, MCP и Subagent, легко запутаться и сделать неправильный выбор, когда вся эта информация свалена в голове в кучу. Я дам вам таблицу принятия решений и дерево решений, чтобы вы могли напрямую сопоставить «потребность» и «что использовать», и больше не сомневались.
Друзья, дойдя до этого момента, вы собрали приличный арсенал точек расширения.
CLAUDE.md, Skill, Hook, MCP, Subagent, плюс повсеместные slash commands (slash-команды) — пять или шесть терминов, каждый из которых по отдельности понятен. Но когда дело доходит до вопроса «Для этой задачи что мне использовать?», в 9 из 10 случаев вы застрянете. Люди, только что изучившие этот набор, чаще всего спрашивают: «Здесь нужен Skill или Subagent?», «Могу ли я прописать это в CLAUDE.md?».
Проще говоря, дело не в нехватке знаний, а в том, что не выстроена связь «потребность → решение». Вы читали официальные описания каждой точки расширения, но они организованы по принципу «что это такое», а не «что вы хотите сделать». В этой статье мы пойдем от обратного: исходя из ваших потребностей, вычислим, что следует использовать.
Представьте себе это так: в предыдущих девяти статьях вам поочередно вручали пять видов оружия, а в этой статье вас научат, какое из них выхватывать в бою.
Прочитав эту статью, вы получите:
- Четкое, в одном предложении, позиционирование для пяти основных точек расширения (плюс slash command): «что решает, когда выбирать, когда не использовать».
- Таблицу принятия решений «потребность → рекомендуемое решение» для быстрого поиска.
- Дерево решений, пройдя по которому, задав 3-4 вопроса, вы сразу определите, что использовать.
- Разбор нескольких пар, которые чаще всего путают (Skill vs Subagent, CLAUDE.md vs Skill, Hook vs правила доступа (permissions)).
- Понимание того, как эти точки расширения комбинируются и как упаковываются с помощью plugin.
01 Сначала построим общий каркас: шесть точек расширения встроены в разные этапы «цикла агента»
Прежде чем начать выбирать, нужно построить общую структуру в голове. Эти точки расширения — не шесть параллельных опций, а шесть крючков, подвешенных на разных этапах рабочего процесса Claude.
Вспомните третью статью о «цикле агента»: работа Claude — это цикл «подумал → сделал → посмотрел». Эти шесть точек расширения (CLAUDE.md, Skill, slash command, MCP, Subagent, Hook) как раз и встроены в разные части этого цикла: некоторые добавляют контекст перед тем, как он «подумает», другие подключают внешние ресурсы или создают клонов, когда он «делает», а третьи автоматически срабатывают в определенные моменты. Официальная формулировка очень точна, ее стоит запомнить:
Расширения вставляются в разные части цикла агента.
Аналогия: Регистратура в больнице. Когда вы чувствуете себя плохо и приходите в больницу, вы не бросаетесь в первый попавшийся кабинет. Вы идете в регистратуру и называете «симптомы»: болит голова — к невропатологу, болит живот — к гастроэнтерологу, нужен рентген — в отделение лучевой диагностики. Регистратура не лечит, она направляет вас в нужное отделение в зависимости от симптомов. В этой статье я выступаю в роли регистратуры: вы называете «потребность», я направляю вас к правильной «точке расширения».
В реальных ситуациях ваши сомнения обычно сводятся к нескольким фразам: «Я хочу, чтобы он каждый раз соблюдал определенное правило», «Нужно, чтобы он автоматически применял определенный навык при необходимости», «Нужно, чтобы что-то происходило автоматически в определенный момент», «Нужно подключить внешние данные или сервисы». Как только потребность сформулирована четко, выбрать «отделение» совсем не сложно. В следующих разделах мы разберем каждое «отделение», а в конце я дам вам сводную таблицу и дерево.
💡 Вкратце: Шесть точек расширения — это не параллельные опции для выбора, а крючки, встроенные в разные этапы «подумал → сделал → посмотрел». Ключ к выбору — не в том, «какая из них мощнее», а в том, «на какой крючок повесить вашу потребность».
02 Шесть «отделений»: распознаем специализацию каждого одним предложением
Сначала закрепим «специализацию» каждой из шести точек расширения одной фразой. Это фундамент, на котором будет строиться таблица принятия решений ниже. Я классифицирую их в соответствии с официальной таблицей функций и добавлю наиболее типичный сценарий для каждой.
CLAUDE.md — правила, которые он должен «помнить всегда». Соглашения проекта, команды сборки, правила типа «всегда использовать pnpm, не использовать npm», «перед коммитом запускать тесты» — контекст, который действует постоянно. Он загружается автоматически для каждого сеанса, и Claude видит его с самого начала работы.
Skill — специализированные навыки, которые он «применяет автоматически при необходимости». Переиспользуемые знания или процессы: руководство по стилю API, чеклист развертывания, шаблон отладки. В обычном состоянии они занимают только текст описания, а полное содержимое загружается только тогда, когда оно нужно; вы также можете вызвать их вручную с помощью /<name>.
slash command — фиксированный процесс, который вы «вызываете вручную одной командой». По сути, это способ использования Skill (тот, что запускается через /<name>). Разница лишь в том, «кто инициирует»: Skill может быть вызван Claude автоматически, если он решит, что это необходимо, а slash command — это когда вы сами вводите /deploy, чтобы запустить процесс.
MCP — интерфейс для подключения к «внешнему миру». Запросы к вашей базе данных, отправка сообщений в Slack, управление браузером — все, до чего не дотягиваются встроенные инструменты Claude и что требует подключения к внешним сервисам или данным, делается через MCP (подробнее в статье 22).
Subagent — создание «независимого клона» для выполнения грязной работы. Когда нужно прочитать десятки файлов, выполнить масштабный поиск, но вам нужен только результат и вы не хотите забивать основной диалог промежуточными этапами — отправьте Subagent'а (подробнее в статье 23). Он работает в изолированном контексте и, завершив работу, возвращает только резюме.
Hook (Хук) — автоматическое «нажатие на спусковой крючок» в определенный момент. Hook — это «набор действий, которые выполняются автоматически при возникновении определенного события». При срабатывании события жизненного цикла (например, «каждый раз после изменения файла», «каждый раз при запуске сеанса») он выполняется неукоснительно — запускает линтер, блокирует опасные команды, отправляет уведомления. Он не полагается на мышление Claude, его срабатывание гарантировано.
Мы еще не обсуждали концепцию Hook подробно, здесь достаточно составить общее впечатление: это «автоматическое действие, запускаемое событием». Полный синтаксис и список прослушиваемых событий будут рассмотрены в 33-й статье.
Если просто рассказывать, легко запутаться. Посмотрим на сравнительную таблицу — так все сразу встанет на свои места:
| Точка расширения | Специализация в одной фразе | Кто запускает | Занимает ли постоянный контекст |
|---|---|---|---|
| CLAUDE.md | Правила проекта, которые нужно соблюдать всегда | Автоматически, загружается в каждом сеансе | Занимает (полный текст постоянно в памяти) |
| Skill | Специализированные знания/процессы, вызываемые по требованию | Claude автоматически ИЛИ вы через /<name> | Мало (обычно только описание) |
| slash command | Фиксированный процесс, вызываемый вами вручную | Вы вводите /xxx | Мало (как и Skill) |
| MCP | Подключение внешних сервисов / данных | Claude, при использовании инструмента | Мало (сначала только имя инструмента) |
| Subagent | Изолированный контекст / специализированные параллельные задачи | Вы или Claude раздаете задачи | Не занимает главное окно (изолированный контекст) |
| Hook | Автоматическое выполнение действий по событию | События жизненного цикла | Ноль (если не возвращает вывод) |
Вам не нужно учить эту таблицу наизусть, но колонки «Кто запускает» и «Занимает ли постоянный контекст» являются определяющими для всех последующих решений — одна определяет «проактивны ли вы, или автоматизированы действия», другая — «стоит ли держать это постоянно открытым».
💡 Вкратце: Специализация шести точек расширения различна — правила идут в CLAUDE.md, навыки — в Skill, процессы в один клик — это slash command, внешние подключения — через MCP, изолированная работа — Subagent, автоматические действия в заданное время — Hook.
03 Таблица принятия решений: назови потребность, получи решение
С общим каркасом и специализациями разобрались, теперь перейдем к ядру этой статьи — таблице «потребность → рекомендуемое решение». Пользоваться ею очень просто: в левом столбце найдите фразу, наиболее близкую к вашей потребности, в правом столбце будет указана точка расширения, которую следует использовать, а в последнем — объяснение, «почему именно она, и почему не соседняя».
| Ваша потребность (фраза в голове) | Рекомендуемое решение | Почему оно / Как не ошибиться |
|---|---|---|
| «Пусть каждый раз делает по нашим правилам» (использовать pnpm, перед коммитом прогнать тесты) | CLAUDE.md | Постоянно действующие правила, которые он должен видеть в каждом сеансе |
| «Этот API-справочник / руководство по стилю ему может понадобиться, пусть имеет возможность посмотреть» | Skill | Справочные материалы. Чтобы не занимать контекст постоянно, загружаются по необходимости |
«Я хочу ввести /deploy и запустить весь процесс развертывания» | slash command (разновидность Skill) | Фиксированный многошаговый процесс, запускаемый вами вручную |
| «Пусть сделает запрос в нашу корпоративную БД / напишет в Slack» | MCP | Нужно подключить внешние сервисы или данные, куда встроенные инструменты не дотягиваются |
| «Пусть прочитает десятки файлов и даст мне только выводы» | Subagent | Нужна изоляция контекста, чтобы промежуточные шаги не забили основное окно |
| «Эти несколько задач нужно выполнить одновременно, они не зависят друг от друга» | Subagent (несколько параллельно) | Параллельные специализированные задачи, каждый делает свое и возвращает резюме |
| «Каждый раз после изменения файла автоматически прогонять форматирование через prettier» | Hook (PostToolUse) | Автоматическое действие в заданный момент, не требующее его раздумий |
«Команду rm -rf / блокировать намертво» | Hook (PreToolUse) или правила доступа | Требуется «гарантированная» блокировка, нельзя полагаться на подсказки |
| «Он все время забывает про это правило, я уже дважды напоминал» | CLAUDE.md | Повторяющиеся ошибки нужно записывать как постоянные правила, а не корректировать на ходу в чате |
| «Я каждый день набираю один и тот же вступительный prompt» | Skill | Повторяющийся ввод prompt'а сохраняйте как вызываемый Skill |
| «Я хочу перенести эту конфигурацию в другой проект один в один» | Plugin (слой упаковки) | Связывает Skill / Hook / Subagent / MCP вместе, чтобы можно было переносить |
Я вложил сюда логику из официальной таблицы «Как выстраивать настройки со временем»: многие потребности рождаются из «повторений» — если вы набираете одну и ту же подсказку третий раз или второй раз исправляете одну и ту же ошибку, это сигнал к тому, чтобы «закрепить» ее в соответствующей точке расширения, а не надеяться на указания на ходу.
Здесь кроется ловушка, в которую легко попасть. Ради удобства хочется вставить список API на триста строк прямо в CLAUDE.md, с мыслью «пусть он всегда это помнит, это же удобно». Что в итоге? Каждый сеанс начинается с того, что огромный кусок контекста сразу съедается, работа еще не началась, а рабочее пространство уже заполнено; и что еще хуже, Claude часто упускает те несколько ключевых правил, которые вы действительно хотели подчеркнуть, утопая в куче деталей API. Перенесите список API в Skill, а в CLAUDE.md оставьте только фразу: «спецификации API см. в api-skill», и мир сразу станет чище. Об этом же говорит и официальное руководство:
Сохраняйте CLAUDE.md объемом менее 200 строк. Если он растет, перенесите справочные материалы в skills.
💡 Вкратце: Когда сомневаетесь, переведите свою потребность в «фразу в голове» и сопоставьте с этой таблицей; особенно запомните: «действует постоянно → CLAUDE.md, справочная информация по запросу → Skill, внешние подключения → MCP, изолированная работа → Subagent, фиксированное время → Hook».
04 Дерево решений: 3-4 вопроса и точный результат
Таблица помогает, если вы уже четко знаете свою потребность, но иногда вы сами до конца не уверены, что вам нужно. В таком случае дерево решений работает лучше — отвечайте на вопросы «да/нет», спускаясь вниз, пока не дойдете до «листа», который и будет ответом.
Я разработал следующую логику оценки. Достаточно задать четыре вопроса в этом порядке, и вы вряд ли ошибетесь:

На этой схеме процесс «У меня есть потребность, что мне использовать?» разбит на цепочку вопросов «сверху вниз» — сначала спрашиваем «нужна ли жесткая гарантия / подключение к внешнему ресурсу», затем — «это должно работать автоматически или вручную». Спускаясь по развилкам, вы попадаете на конечный узел («лист»), который является конкретной точкой расширения.
Если пройтись по этому дереву на словах, вы увидите, что логика весьма естественна:
Вопрос первый: Требует ли эта задача «подключения к внешним службам или данным»? Да — например, запросы в БД, отправка сообщений в Slack, управление браузером — используем MCP, и на этом всё. Это определить проще всего, поэтому отсеиваем это первым.
Вопрос второй: Должна ли эта задача выполняться «каждый раз, безусловно, без расчета на сознательность Claude»? Нужна жесткая принудительность уровня «гарантии» — например, «файл .env категорически запрещено редактировать», «запуск rm -rf / нужно заблокировать», «после каждого изменения файла запускать lint» — используем Hook (или правила доступа, см. следующий раздел). Ключевое слово здесь — «гарантия»: Hook всегда срабатывает при наступлении события, это предопределено; правило, написанное в CLAUDE.md — это всего лишь «просьба», Claude может ее выполнить, а может и проигнорировать.
Вопрос третий: Это «одноразовая черновая работа, которую нужно изолировать»? Нужно прочитать кучу файлов, выполнить масштабный поиск, но вам нужен только результат и вы не хотите забивать диалог промежуточными этапами, или вы хотите запустить несколько задач параллельно — отправьте Subagent'а. Он работает в изолированном контексте и после завершения возвращает только резюме.
Если вы дошли сюда и еще не получили ответ, значит, вам нужно выбрать из трех: «знания / правила / процесс». Задаем последний вопрос:
Вопрос четвертый: Это должно быть у него «всегда перед глазами» или он должен «заглядывать туда только при необходимости»?
- Правила, которые он должен видеть всегда (соглашения, команды сборки, "никогда не делай Х") → CLAUDE.md.
- Знания или процессы, в которые он заглядывает только при необходимости (документация API, чеклист развертывания, методы отладки) → Skill.
- Если в рамках Skill это «многошаговый процесс, который вы хотите запускать вручную одним нажатием» — привяжите к этому Skill команду
/<name>и используйте его как slash command.
Четыре вопроса, начиная с «самых очевидных внешних подключений» и заканчивая «тонкими различиями между знаниями и правилами» — просеивая потребности слой за слоем, вы получите правильный ответ на конце. При выборе точки расширения просто проговаривайте эти четыре вопроса про себя.
💡 Вкратце: Порядок работы с деревом решений таков: «Подключение к внешним ресурсам? → Нужна жесткая гарантия? → Нужна изоляция? → Должен видеть всегда или по запросу?». Четыре вопроса сразу приведут вас к нужному результату, что гораздо удобнее, чем заучивать определения.
05 Три пары, которые путают чаще всего: разберемся раз и навсегда
Даже с деревом решений всегда найдутся пары, которые похожи друг на друга и вызывают сомнения при выборе. Я выделил три группы, которые вызывают больше всего вопросов у новичков, и разберу каждую. Когда вы поймете эти три группы, таблица принятия решений заработает безупречно.
Skill vs Subagent
Эту пару путают чаще всего, потому что «в обоих случаях можно заложить определенный процесс». Но решают они совершенно разные задачи.
Аналогия: Руководство vs Командировка. Skill — это общий справочник; кому нужно — тот листает, и прочитанное становится частью вашей текущей «рабочей тетради». Subagent — это командированный сотрудник, отправленный с задачей; он выполняет ее и возвращается только с итоговым отчетом, а сколько справочников он перелопатил там, вас совершенно не касается.
Ключевое отличие заключается в одном слове: контекст.
| Критерий для сравнения | Skill | Subagent |
|---|---|---|
| Что это такое | Переиспользуемые знания / процессы | Изолированный исполнитель с независимым контекстом |
| Куда идет содержимое | Загружается в ваше основное окно | Использует свое окно, в основное возвращается только результат |
| Влияет ли на основной диалог | Занимает основной контекст | Изолирован, почти не занимает основное окно |
| Лучше всего подходит для | Справочных материалов, вызываемых процессов | Чтения большого количества файлов, параллельных задач, специализированной работы |
Резюме: если нужно «загрузить содержимое сюда для использования» — выбирайте Skill, если нужно, чтобы «процесс работы не засорял ваше окно, и нужен только результат» — выбирайте Subagent. Они могут работать и в связке: при запуске Subagent'а можно предварительно загрузить определенный Skill, что равносильно «командированному сотруднику со специализированным справочником в руках».
CLAUDE.md vs Skill
Оба варианта служат для «сохранения инструкций», разница в способе загрузки.
| Критерий для сравнения | CLAUDE.md | Skill |
|---|---|---|
| Когда загружается | В каждом сеансе, автоматически | По необходимости (только когда используется) |
| Может ли запускать рабочий процесс | Нет | Да, с помощью /<name> |
| Лучше всего подходит для | Правил типа «всегда делай Х» | Справочных материалов, вызываемых процессов |
Официальное правило для выбора очень простое: То, что «Claude должен знать всегда», помещается в CLAUDE.md, то, что «нужно только иногда» — в Skill. Ловушка с «API на триста строк в CLAUDE.md», описанная в разделе 03, по сути является следствием того, что в CLAUDE.md поместили то, что должно было быть в Skill.
Hook vs Правила доступа (permissions)
Сомнения в этой группе возникают при решении вопроса: «Для блокировки опасного действия» использовать Hook или правила доступа (настройка deny из статьи 20)?
Сначала об общем: и то, и другое — это жесткие ограничения уровня «гарантии», они не полагаются на добросовестность Claude — в этом они едины и категорически отличаются от «просьб, записанных в CLAUDE.md». Официальная документация расставляет точки над i:
Такие инструкции в CLAUDE.md или skill, как «никогда не редактируй
.env», являются просьбами, а не гарантиями. ХукPreToolUse, предотвращающий редактирование, — это принудительное выполнение.
Разница заключается в том, «насколько широки полномочия и насколько сложны действия»:
- Правила доступа (permissions): Декларативные, отвечают только на вопрос «разрешен ли этот инструмент / команда». Написав одно правило
Bash(rm -rf *)в правилахdeny(то есть"deny": ["Bash(rm -rf *)"]вsettings.json), вы жестко блокируете команду. Это лаконично и идеально подходит для простой проверки «разрешено/запрещено». - Hook (Хук): Может запускать скрипт, поэтому помимо «блокировки» может попутно сделать что-то еще — записать в журнал, отправить уведомление, автоматически перезаписать параметры. Подходит для «блокировки + дополнительных действий» или сложных проверок, которые нельзя выразить через правила доступа.
Практическое правило: Для черно-белой проверки «разрешено/запрещено» в первую очередь используйте правила доступа — это решается одной строкой; если в момент блокировки нужно сделать что-то еще (записать, уведомить, переписать), тогда используйте Hook. Они не конфликтуют и часто используются вместе — правила доступа задают базу, а Hook дополняет ее теми задачами, где нужно «сделать что-то еще после блокировки».
💡 Вкратце: Skill попадает в мой контекст / Subagent работает изолированно и дает только выводы; CLAUDE.md виден всегда / Skill виден по запросу; правила доступа решают «разрешено/запрещено» / Hook отвечает за «блокировку + дополнительные действия» — разграничьте эти три группы, и проблема выбора исчезнет.
06 Комбинации — это норма: когда устанете от единичного выбора, помните, что их можно сочетать
До этого момента вам могло казаться, что выбор точки расширения — это вопрос с одним правильным ответом. На самом деле все наоборот — в реальных проектах почти всегда используются комбинации. Каждая точка расширения делает то, в чем она лучше всего, и вместе они составляют полноценный «инструментарий».
Приведу несколько классических комбинаций из официальной документации и объясню, как они выглядят в реальности:
| Комбинация | Как взаимодействуют | Как это выглядит на практике |
|---|---|---|
| Skill + MCP | MCP отвечает за «подключение», Skill — за «как правильно использовать» | MCP подключается к базе данных, Skill описывает структуру таблиц и типовые запросы |
| Skill + Subagent | Skill запускает Subagent'ов для параллельной работы | Один Skill /audit одновременно отправляет трех Subagent'ов для проверки безопасности, производительности и стиля |
| CLAUDE.md + Skill | В CLAUDE.md лежат постоянные правила, в Skill — детальные инструкции по запросу | CLAUDE.md предписывает «Соблюдать наши стандарты API», а Skill содержит само руководство по стилю |
| Hook + MCP | Hook при наступлении события выполняет внешнее действие через MCP | После изменения важного файла Hook автоматически отправляет уведомление в Slack через MCP |
Взглянув на комбинацию «Skill + MCP», вы сразу поймете прелесть такого подхода: если использовать только MCP, Claude сможет подключиться к БД, но не будет знать структуру таблиц и как писать оптимальные запросы; если использовать только Skill, он будет знать, как писать, но не сможет подключиться. Только объединив их, мы получим «и подключено, и правильно используется». Вот как обычно и настраивается рабочая среда: MCP подключает БД, а Skill заполняется информацией «для проверки заказов клиентов используем эту таблицу, статистика собирается по этому полю». В таком случае запросы, написанные Claude, почти не требуют переделок.
А как перенести этот набор настроек в другой проект или поделиться им с коллегами? Ответ — Plugin (плагин). Это тот слой, который позволяет «упаковать все и взять с собой».
Аналогия: Чемодан. Отправляясь в поездку, вы не несете рубашки, бритву и зарядное устройство в руках. Вы аккуратно складываете их все в чемодан и берете с собой. Plugin — это и есть такой чемодан: он упаковывает Skill, Hook, Subagent, MCP server в единый устанавливаемый модуль. Когда вам понадобятся те же настройки в другом проекте, просто установите этот plugin. При этом Skills внутри получают пространство имен (например, /my-plugin:review), так что несколько плагинов не будут конфликтовать именами. Официально об этом сказано прямо:
Plugin объединяет skills, hooks, subagents и MCP servers в единый устанавливаемый модуль.
Как создавать плагины, обсуждалось в статье 24, здесь вам нужно только запомнить его место в системе: остальные пять элементов — это «функции», а plugin — это «слой, который упаковывает и распространяет эти функции».
💡 Вкратце: Выбор точки расширения — не вопрос с одним ответом, реальные конфигурации почти всегда представляют собой комбинации (Skill+MCP, CLAUDE.md+Skill...); чтобы перенести весь набор в другое место или поделиться им, используйте Plugin, чтобы упаковать все в «чемодан» и взять с собой.
07 Практика: «Распределяем по отделениям» реальный список потребностей
Недостаточно просто смотреть на таблицу — нужно попробовать «направить» потребности самому. Ниже представлен смоделированный список реальных потребностей, которые часто возникают в проектах. Ваша задача — следуя дереву решений из предыдущих разделов, распределить каждую потребность в правильное «отделение». Здесь не нужно вводить команды, это исключительно мысленное упражнение, но оно полезнее, чем заучивание десяти определений.
Шаг первый: Скопируйте этот список потребностей в свои заметки (или просто прочитайте)
Список потребностей (выберите одну точку расширения для каждой):
A. Команда договорилась «всегда использовать pnpm, npm запрещен», хочу, чтобы он всегда это соблюдал
B. Хочу, чтобы он мог делать запросы во внутреннюю базу данных PostgreSQL компании
C. Хочу набрать одну команду и запустить весь процесс выпуска релиза: «установка тега → обновление changelog → push»
D. Каждый раз, когда он редактирует любой файл, пусть автоматически запускает форматирование prettier
E. Пусть он за один раз прочитает весь каталог utils и скажет мне только то, какие функции не используются
F. Очень длинная таблица соответствия внутренних кодов ошибок, иногда ему нужно туда заглядывать
G. «Скрипт миграции боевой БД категорически запрещено выполнять», нужно жестко заблокироватьШаг второй: Пройдитесь по дереву решений сами и запишите ответы после каждого пункта
Не спешите смотреть дальше. Сначала используйте четыре вопроса из раздела 04 (Внешние? Жесткая гарантия? Изоляция? Всегда или по запросу?), чтобы самому определить решение.
Шаг третий: Проверьте ответы
Ниже приведены правильные ответы и обоснования. Не так важно, сколько ответов совпало, важнее понять, «почему» они совпали:
| Потребность | Решение | Обоснование (по какому пути дерева пошли) |
|---|---|---|
| A Всегда pnpm | CLAUDE.md | Не внешнее, не скрипт, не изоляция; это правило, которое нужно «видеть всегда» |
| B БД компании | MCP | Попало на первый же вопрос: нужно подключение к внешним службам и данным |
| C Релиз в один клик | slash command | Инициируемый вручную фиксированный многошаговый процесс, привяжите Skill к /release |
| D Авто-форматирование | Hook (PostToolUse) | Заданный момент времени, выполнять всегда, не требует раздумий |
| E Чтение каталога в поиске мертвого кода | Subagent | Прочтение кучи файлов только ради вывода; изоляция, чтобы не забивать основной диалог |
| F Иногда проверить коды ошибок | Skill | Справочный материал по требованию, не надо пихать в CLAUDE.md |
| G Блок миграции | Правила доступа / Hook | Требуется «гарантированная» блокировка, нельзя полагаться на подсказки; для простой блокировки приоритет у правил доступа |
Ожидание: Если вы не перепутали A и F (одно в CLAUDE.md, другое в Skill), D и G (одно — автозапуск Hook, другое — жесткая блокировка правилами), и для E выбрали Subagent, а не Skill — значит, ваша логика «распределения» уже выстроена. В дальнейшем с реальными потребностями просто следуйте этому процессу.
Если где-то ошиблись, вернитесь к разделу 05, перечитайте соответствующее сравнение, и, скорее всего, всё станет понятно. Эту логику нужно немного потренировать, чтобы сформировалась мышечная память. В первые разы вы легко можете «попытаться запихнуть работу Subagent'а в Skill», и только когда основной диалог переполнится промежуточными шагами, вы запомните: «нужен только результат — отправляй клона».
💡 Вкратце: Собственноручный проход по дереву решений со списком реальных потребностей в сто раз полезнее зубрежки определений. Если где-то застряли, возвращайтесь к «парам, которые путают», и все встанет на свои места.
08 Резюме
В этой статье мы завершили четвертый блок, перевернув пять изученных вами точек расширения (плюс slash command) от «что это такое» до «что использовать, когда возникает потребность».
Давайте обобщим ключевые моменты:
| Ваша фраза в голове | Отделение, куда обратиться | Ключевой момент в одной фразе |
|---|---|---|
| «Нужно соблюдать каждый раз» | CLAUDE.md | Постоянно действующие правила, загружаются в каждом сеансе автоматически. Держите в пределах 200 строк. |
| «Автоматически вызывает / Я запускаю одним кликом» | Skill / slash command | Знания и процессы по запросу, в обычном режиме не занимают контекст |
| «Подключить внешние сервисы и данные» | MCP | Подключает внешние ресурсы, если не хватает встроенных инструментов |
| «Прочитать кучу файлов и дать только выводы» | Subagent | Изолированный контекст, параллельные задачи, возвращает только резюме |
| «Автозапуск в заданное время, требуется гарантия» | Hook | Определенные действия по событиям, ограничения уровня ограждения |
| «Упаковать и забрать с собой / поделиться с другими» | Plugin | Упаковывает всё вышеперечисленное в устанавливаемый модуль |
Теперь вы должны уметь: получив потребность «Я хочу, чтобы Claude...», не теряться среди пяти или шести терминов. Мысленно задайте четыре вопроса (Внешние? Жесткая гарантия? Изоляция? Всегда или по запросу?), спуститесь по дереву решений и точно определите нужный вариант. Столкнувшись со спорными Skill vs Subagent, CLAUDE.md vs Skill, Hook vs правила доступа, вы сможете объяснить, в чем разница. Только когда выстроится эта связь «потребность → решение», инструменты из предыдущих девяти статей действительно оживут, и вы сможете брать их по мере необходимости.
На этом четвертый блок (расширенные функции) завершен. Вы потрогали все пять видов оружия и знаете, какое из них применять в бою. Остается только научиться пользоваться ими в совершенстве.
В следующей статье мы переходим к пятому блоку — «Конфигурация системы и оптимизация». Начнем с 31 «settings.json: конфигурация на уровне пользователя и проекта». Вы уже писали CLAUDE.md, настраивали правила доступа (permissions) и скоро будете настраивать Hook. В какой именно файл следует записывать эти настройки, кто главнее — пользовательский уровень или уровень проекта? Пришло время разложить всё по полочкам. Подумайте об этом: одно и то же правило, написанное в вашем домашнем каталоге и в каталоге проекта, может дать совершенно противоположный эффект. Обо всех этих тонкостях поговорим в следующей статье.