5 ошибок Claude Code: Skills, Subagents, MCP, Plugins
Subagent там, где должен быть skill, в Claude Code жжёт токены в 3-5 раз больше. Это самая частая ошибка, которую я ловлю у вайб-кодеров: каждый второй кладёт минимум одну штуку из четырёх (skill, subagent, MCP, plugin) не туда. Деньги уходят в воздух, скорость падает, поведение становится непредсказуемым.
Я живу в Claude Code 8 часов в день. Сейчас в работе 7 своих skills, 11 subagents, 4 MCP-сервера и 3 plugins из маркетплейса. До этого расклада я добирался через 3 месяца боли «положил методологию не в тот слой и теперь жгу токены». Этот текст - то, что я бы дал себе год назад: 5 типичных ошибок выбора между skills, subagents, MCP и plugins, дерево из 4 вопросов перед каждой задачей и матрица «10 типичных задач → правильный слой».
Сразу к артефакту, который я зашиваю в Claude Code каждый раз, когда обновляю CLAUDE.md в новом репозитории.
Дерево из 4 вопросов - артефакт под рукой
Перед каждой задачей, когда чувствую «надо что-то добавить в Claude», я задаю 4 вопроса по порядку. Первый «да» - решение. Если на все 4 «нет» - не делаю ничего, базовое поведение Claude плюс CLAUDE.md уже закрывают задачу.
Этот блок копируется в начало моего CLAUDE.md в каждом новом репозитории. Не как красивая схема, а как 4 вопроса в <reminder>-блоке, которые Claude перечитывает в начале каждой сессии. Это меняет поведение: вместо того чтобы прыгать в subagent на любую новую задачу, Claude сначала спрашивает «слушай, это не больше одного раза в день? Может, skill?».
Порядок вопросов не случайный. Skill идёт первым - самый дешёвый слой по токенам, и он закрывает 60-70% задач, которые люди по ошибке кладут в subagent или MCP. Subagent оправдан только при тяжёлом контексте. MCP - только при живом доступе наружу. Plugin - только если кто-то уже сделал то же самое лучше тебя.
Дальше - 5 типичных ошибок, которые я ловлю у себя и у других вайб-кодеров. Каждая ошибка ниже - это нарушение этого порядка.
Ошибка 1: subagent там, где должен быть skill
Самая дорогая и самая частая. Я наступал на эти грабли первые 2 месяца, потом сам провёл инвентаризацию.
Симптом: автор сделал subagent под названием blog-post-writer или code-reviewer. Каждый раз когда запускает - subagent поднимается отдельной сессией, читает методологию из 2 КБ инструкции, генерит результат и закрывается. Через неделю замечает, что каждый запуск жжёт лишних 5К токенов на загрузку отдельного контекста.
Цена в цифрах: subagent дороже skill в 3-5 раз. Skill загружается в основной чат по триггер-фразе - подгрузил пару килобайт инструкции, применил, забыл. Subagent открывает отдельную Claude-сессию со своим контекстом, своим раундтрипом, своим закрытием. Без необходимости в изоляции это плата за лишнюю инфраструктуру.
Как должно быть: «как писать пост в блог» - процедура с триггер-фразой, кладётся в ~/.claude/skills/blog-post/SKILL.md с frontmatter, где описано когда применять, какую структуру использовать, какие проверки прогнать. Skill загружается в основной чат при первом совпадении триггера. Дешевле в 3-5 раз, быстрее на одну итерацию.
Когда subagent всё-таки оправдан: задача требует прочитать 20-30 файлов и вернуть в основной чат только сводку. Я гоняю research-subagent, который собирает сигналы с Reddit, Hacker News, X (Twitter) - каждый канал отдельно, потом взвешиваю результаты по 9 осям в основном чате. Без subagent этот этап растягивается на 2-3 часа сжигания основного контекста. С subagent - 6 минут параллельно.
У меня есть отдельный материал - там 5 рабочих конфигов и куда какой ставить: пошаговая инструкция по subagents Claude Code. Забирай и адаптируй.
Тест простой: нужны ли тебе 200К токенов мусора в основном чате на пути к ответу? Нет - skill. Да и иначе не получится - subagent.
Ошибка 2: MCP-сервер вместо skill
Симптом из репозиториев, которые я смотрю: автор написал MCP-сервер, выдающий инструкцию «как делать code review» или «правила оформления PR». В контексте постоянно висит декларация tools этого MCP, схема аргументов, описания. На каждый запрос съедается 2-3К токенов ради того, чтобы Claude помнил «вот у меня есть инструмент, который вернёт текст инструкции».
Процедура, упакованная в дорогую инфраструктуру. MCP оправдан, когда Claude нужно физически залезть в Sentry за последними ошибками, вытащить issue из GitHub, прочитать строку из базы, открыть страницу в Playwright. Возврат текста методологии - другой случай.
Anthropic в инженерном блоге дали короткую формулу разницы. В переводе: «MCP связывает Claude с данными, Skills учат Claude, что с этими данными делать. Если ты объясняешь, как пользоваться инструментом или следовать процедуре - это Skill. Если тебе нужно, чтобы Claude в принципе получил доступ к базе или Excel-файлам - это MCP» (источник: claude.com/blog/skills-explained, 13 ноября 2025).
Эта формула спасает от 80% промахов выбора. Skill «как анализировать GitHub-issues» без MCP-сервера для GitHub не сработает - Claude физически не может прочитать issue из репозитория. С другой стороны, MCP для GitHub без skill «как структурировать review issue» вывалит на тебя сырое содержимое.
Цена в цифрах. Я недавно делал инвентаризацию подключённых MCP-серверов в одном из своих проектов. 4 MCP постоянно занимают 8-12К токенов в каждой новой сессии до того, как я хоть что-то спросил. Базовый налог на инфраструктуру. Если 2 из этих 4 - на самом деле упакованные инструкции, я плачу 4-6К токенов в сессию за то, что закрылось бы skill'ом за 1-2К на вызов.
Как должно быть: «как делать code review» - skill. «Возьми последние 5 issues из github.com/owner/repo и оцени» - MCP для GitHub плюс skill «как оценивать issue». Граница проходит по линии «методология vs живой канал к внешней системе».
Ошибка 3: plugin вместо CLAUDE.md
Plugin - официальный механизм Anthropic для распространения готовых наборов skills, subagents, hooks и MCP-конфигов. Маркетплейс, версионирование, установка одной командой /plugin install <name>. На звучании - идеальный способ передать «как у нас принято в проекте».
И именно здесь начинается ошибка. Автор упаковывает в plugin правила своего проекта - «всегда используй TypeScript strict mode», «не пиши длинные тире», «используй pnpm, не npm» - и ставит у себя. Каждая новая сессия теперь подгружает plugin, дублирующий то, что должно жить в CLAUDE.md.
Почему это больно: plugin рассчитан на распространение между несколькими репозиториями и людьми. У него есть namespace, версия, marketplace-дескриптор. Инфраструктура для команды из 10 человек или 3+ разных репозиториев. Правила одного проекта живут в его CLAUDE.md, в одном файле, который Claude перечитывает при каждом cd в репозиторий.
Как должно быть:
- Правила одного проекта - CLAUDE.md в корне. Версионируется через git, обновляется через PR, доступно всем.
- Готовая методология для 5+ человек или 3+ репозиториев - skill или plugin. Skill, если ты единственный автор. Plugin, если хочешь обновлять у всех одной командой.
Тест: если не можешь представить, что кто-то другой ставит этот набор у себя и получает пользу - это CLAUDE.md, без plugin.
Ошибка 4: skill через hook (попытка автозапуска методологии)
Hook - детерминированный код, который запускается на событие. Перед git push, после git commit, перед записью файла. Hook возвращает exit code и опционально пишет в stdout. LLM он не дёргает.
Симптом, который я ловил у двух разных вайб-кодеров за последний месяц: автор решает, что hook на pre-write должен «применять методологию» при каждом редактировании файла. Hook стартует Claude через CLI, передаёт путь файла и просит «прогнать через инструкцию ~/.claude/skills/code-style/SKILL.md». Через 10 минут такой работы - бесконечный цикл триггеров, выжженный контекст, файлы открываются в 3 раза медленнее.
Почему ломается. Hook видит каждое сохранение файла, в том числе сохранения, которые делает сам Claude по результатам прогона skill'а. Claude сохраняет → срабатывает hook → дёргает Claude с skill → Claude правит файл → срабатывает hook... Рекурсия, которая жгёт токены, пока ты не выключишь hook вручную или не упрёшься в лимит API.
Как должно быть:
- Hook - детерминированная команда. npm run build перед git push и блок пуша если build упал. prettier --check перед коммитом. Код без LLM-вызова.
- Skill - регламент с триггер-фразой. Хочешь, чтобы Claude всегда применял методологию X - пиши в CLAUDE.md явное правило, или сделай триггер-фразу skill достаточно широкой для автоподгрузки на нужных задачах.
Правило снизу: задача определяется правилом - bash-скрипт. Задача определяется пониманием - skill или промт в чат. Через hook к LLM ходить нельзя.
Ошибка 5: лишний слой когда вообще ничего не нужно
Эта ошибка про лишнее проектирование там, где задача встречается раз в месяц.
Симптом: автор читает гайды про Claude Code, решает «надо упаковать методологию» и тратит вечер на skill для задачи «написать письмо после стрима». Через месяц обнаруживается, что стримы он делает раз в 6 недель, а skill приходится дёргать и поддерживать каждый раз когда меняется формат рассылок.
Boris Cherny из Anthropic в интервью anup.io сформулировал правило коротко: «Если ты делаешь что-то больше одного раза в день - превращай это в slash-команду или skill» (источник: anup.io/35-claude-code-tips-from-the-guy-who-built-it).
Меньше одного раза в день - кидаешь задачу в чат ad-hoc и идёшь дальше. Skill для редкой задачи становится техническим долгом, не экономией времени.
Как должно быть:
- Одноразовая задача - в чат, без обвязки. «Вычисти из этого файла лишние console.log» закрывается промтом.
- 1-2 раза в неделю - подумай. Методология в голове и Claude её хорошо понимает с промта на 3-4 строки - оставь ad-hoc. Каждый раз копируешь playbook на 1500 слов - время для skill.
- Больше одного раза в день - всегда skill.
Контр-интуитивный вывод. Большинство соло-вайб-кодеров обходятся CLAUDE.md плюс 5-7 skills. Всё остальное - subagent для тяжёлого research, 2-4 MCP для внешних систем, 1-2 plugin из готовых - подключается по мере роста задач.
Что про консолидацию сказал Anthropic
27 мая 2026 на Hacker News появился тред про фрагментацию в Claude Code. 422 голоса за два дня. Главный коммент - что есть пять способов сделать одно code review: slash-команда, skill, subagent, plugin или просто промт в чат. В сущности это варианты одного и того же «вставь заготовленный промт» - отличаются только способом установки и контекстом выполнения.
Boris Cherny, который ведёт Claude Code в Anthropic, ответил прямо в треде:
«I agree, we're working on consolidating these. In the future this'll just be a built-in /code-review skill.» - Boris Cherny, Anthropic, news.ycombinator.com/item?id=48289950
В переводе: «Согласен, мы работаем над консолидацией. В будущем это будет просто встроенный skill /code-review».
Что из этого следует.
Skills становятся главным слоем для процедурных задач - Anthropic делает ставку на самый дешёвый и предсказуемый. Если в 2026 ты не понимаешь, зачем нужен skill - начни с него.
Subagent уходит в узкую специализацию. Generic типа qa-engineer или backend-developer - на выход. Остаются специфичные: migration-test-writer, api-route-reviewer, viral-trend-scout. Чем точнее имя - тем точнее Claude выберет нужного.
Anthropic строит инфраструктуру под автоматизированные системы из 10+ агентов. 28 мая 2026 запустили команду /workflows для оркестрации десятков subagent'ов. 15 июня 2026 - Agent SDK billing split, программное использование переезжает на отдельный пул.
Для соло вайб-кодера это значит простое: 4 слоя продержатся ещё минимум полгода, потом часть сольётся. Дерево из 4 вопросов про природу задачи не зависит от того, как Anthropic назовёт слои в следующем релизе.
Матрица: 10 типичных задач и правильный слой
Чек-лист перед каждой новой задачей.
- Claude промахивается с одним правилом 2-3 раза за сессию → CLAUDE.md.
- Печатаю одинаковый длинный промт больше раза в день → skill.
- В третий раз вставляю в чат playbook на 1500 слов → skill.
- Задача пожирает основной чат чтением 20+ файлов → subagent.
- Нужно 5 параллельных одинаковых проверок (QA, review, lint) → subagents, запуск через run_in_background.
- Хочу читать issues из GitHub или последние ошибки из Sentry → MCP.
- Хочу запускать команду автоматически перед каждым git push → hook.
- Хочу перенести свой setup на второй репозиторий или новую машину → plugin.
- Команда из 10 человек работает по одинаковым правилам → plugin в team-marketplace.
- Нужно реагировать на webhook от внешнего сервиса (Telegram, GitHub Actions) → MCP-канал или Agent SDK.
Главное правило - не пытайся «сделать все 10 сразу». Большинство соло-вайб-кодеров обходятся CLAUDE.md плюс 5-7 skills плюс 2-4 MCP.
Что я бы сделал на твоём месте
Если ты в первой неделе с Claude Code и не понимаешь с чего начать.
- CLAUDE.md в первую очередь. Один файл, 200-400 строк: правила проекта, стек, договорённости, явные «не делай так». Этого хватит, чтобы Claude был адекватным на простых задачах. Без skills, без subagents, без MCP, без plugins.
- 1-2 skill под повторяющиеся процедуры. Под то, что ты реально делаешь каждый день. Триггер-фраза плюс 500-1500 слов методологии в SKILL.md. Я собрал расширенную версию: библиотека skills Claude Code под свои задачи. Если интересно - забирай и адаптируй.
- MCP подключай по требованию. Один MCP-сервер, нужный в большинстве сессий, оставь в постоянном списке. Остальные - через --mcp <name> флаг, чтобы не держать налог в каждой новой сессии.
- Plugin ставь готовый, свой не пиши. Поставь frontend-design или playwright из официального marketplace, посмотри как они устроены изнутри, и только потом решай что упаковать в свой.
- Subagent отложи. В первые 2-3 месяца он скорее всего не нужен. Subagent работает против перегрузки контекста, не против незнания методологии.
Финальный вывод. Anthropic будет консолидировать слои - это сказал сам Boris Cherny. Дерево из 4 вопросов отталкивается от природы задачи, конкретные имена слоёв вторичны. Skill закрывает повторяющиеся процедуры с триггером, subagent выручает в задачах с изоляцией тяжёлого контекста, MCP нужен для живого доступа к внешним системам, plugin даёт чужую готовую упаковку. Anthropic может слить часть в одну команду - дерево всё равно сработает.
А у тебя как - на каком из 4 слоёв ты лажал больше всего? Subagent вместо skill, MCP вместо skill, plugin вместо CLAUDE.md или skill через hook?