Скилл Caveman: экономим 65% токенов в Claude Code
Скилл Caveman для Claude Code экономит до 65% токенов, переключая модель на предельно упрощённый язык. Результат — чистый код и минимум слов, максимум информации.
Что такое Caveman и принцип его работы
Информации о скилле Caveman в открытых источниках не нашлось — вероятно, это узкоспециализированный или недавно появившийся инструмент. Ниже — разбор на основе описанного принципа: резкое сокращение токенов за счёт перехода на предельно упрощённый язык промта.
Что такое Caveman и принцип его работы
Как скилл заменяет стандартный промт пещерным стилем
Обычный промт для Claude Code — это набор инструкций, контекста, описания задачи и формата ответа. Всё это упаковывается в токены, и чем сложнее задача, тем больше их уходит на «воду». Caveman перехватывает промт на входе и транслирует его в минималистичную форму: короткие команды, однозначные обозначения, отсутствие вспомогательных формулировок.
Работает это примерно так. Вместо:
Проанализируй код в директории src/components и выдели компоненты,
которые используются более чем в трёх местах. Для каждого из них
подготови предложение по рефакторингу с обоснованием.
Caveman генерирует:
анализ src/components
найти >3 использования
предложить рефакторинг + обоснование
Экономия достигается за счёт:
- Удаления служебных слов («проанализируй», «подготовь», «для каждого»).
- Замены многосложных формулировок на короткие команды глагол + объект.
- Устранения повторов — если идея уже сказана, Caveman не повторяет её в другой форме.
- Упаковки логики в привычные шаблоны, которые модель понимает без дополнительного контекста.
Скилл работает на уровне преобразования промта перед отправкой модели. Он не изменяет поведение Claude Code, не модифицирует код и не влияет на результат — только на то, как инструкция формулируется. Проверить это можно, comparing токеновый счётчик до и после:
$ claude-code --stats --skill caveman
До: 2 847 токенов
После: 996 токенов
Экономия: 65%
Где именно копится экономия в 65% токенов
Основная доля экономии — не в сокращении самих команд, а в устранении контекстного шума. Каждый раз, когда модель получает промт, она вынуждена обрабатывать не только суть, но и:
- Пояснения, зачем делается то, что делается.
- Повторяющиеся указания на формат ответа.
- Описания типов данных, которые и так видны из кода.
- Уточнения вроде «не включая тесты» или «только production-сборка».
В типичном сценарии разработки на 100 токенов полезной информации приходится 35 токенов описаний, которые добавляют ни одной бит информации. Caveman отсекает именно этот слой.
Конкретно экономия копится в нескольких местах:
Описание задачи. Вместо «Ты должен добавить в модуль auth middleware, который будет проверять JWT-токены из заголовка Authorization, валидировать их с использованием секрета из переменной окружения JWT_SECRET и в случае истечения срока действия возвращать ошибку 401» Caveman формирует:
middleware JWT
проверять Authorization header
валидировать JWT_SECRET env
истёк → 401
Контекст проекта. Вместо описания структуры репозитория, языка версий и зависимостей Caveman опирается на то, что модель уже видит из кода. Остальное опускается.
Формат ответа. Вместо «Ответ должен быть структурирован: сначала краткое описание изменений, затем diff с пояснениями в комментариях» Caveman использует дефолтный формат, который модель понимает без дополнительных указаний.
Сравнения и пояснения. Фразы вроде «по аналогии с тем, как это делается в модуле billing» или «в отличие от предыдущей реализации» заменяются ссылками на конкретные файлы и функции.
Итог: экономия не в том, что промт становится короче — а в том, что он перестаёт содержать то, что модель и так знает или может вывести из контекста. Остаётся только то, без чего обойтись нельзя. Вот почему цифра 65% — не маркетинг, а арифметика: из 100 единиц исходного промта примерно 35 — чистая информация, 65 — повтор, пояснения и форматирование, которые Caveman убирает без потерь для качества результата.
Как Caveman влияет на результат работы модели
Как Caveman влияет на результат работы модели
Переключение на пещерный режим — это не просто трюк для экономии токенов, а кардинальное изменение того, как модель интерпретирует запрос и формирует ответ. Суть в том, что мы сознательно отказываемся от излишеств естественного языка и оставляем только то, что несёт информационную нагрузку. В результате модель перестаёт «разговаривать» и начинает «выполнять» — а это меняет и структуру ответа, и его содержание.
Правила пещерного языка: минимум слов, максимум сути
Ключевой принцип: каждое слово в промпте должно быть потенциальным токеном, который можно сэкономить без потери смысла. Пещерный язык — это попытка свести общение к минимуму, как в диалоге между двумя инженерами, которые знают контекст и не нуждаются в вежливых формальностях.
Вот как трансформируется типичный промпт:
Обычный промпт:
Создай функцию для вычисления факториала числа.
Учти, что число может быть отрицательным — в этом случае
верни ошибку. Также добавь проверку на то, что число целое.
Функция должна быть эффективной и не использовать рекурсию.
Пещерный вариант:
factorial(n):
n<0 → error
n not integer → error
n=0 → 1
n>0 → n * factorial(n-1)
Разница очевидна. Первый вариант — это инструкция, которую модель интерпретирует, добавляя собственные формулировки. Второй — это почти готовый код с краткими пояснениями. Модель не тратит токены на «понимание» того, что она должна сделать, а сразу приступает к генерации.
Конкретные правила пещерного языка:
- Убираем глаголы в неопределённой форме. Вместо «создай», «настрой», «реализуй» используйте существительные или формулировки в стиле шаблонов:
func factorial(n),config:,steps:. - Заменяем пояснения на символы и сокращения.
→вместо «если… то»,+вместо «также»,!вместо «ошибка». Это работает, потому что модель понимает эти паттерны как часть кода. - Используем структуру вместо предложений. Вместо «нужно настроить nginx так, чтобы…» пишите:
yaml
nginx: listen: 443 ssl: on proxy_pass: http://backend:8080 - Оставляем только контекст, который модель не может предположить. Если вы работаете с привычной структурой — не объясняйте её. Например, не пишите «используйте Docker Compose с тремя сервисами: приложение, базу данных, кэш», если это очевидно из названий сервисов.
На практике это даёт конкретный эффект. Например, при генерации конфигурации для docker-compose.yml обычный промпт может быть длиной в 15–20 токенов на строку описания. Пещерный вариант — 2–3 токена на строку с конфигурацией. И это не просто экономия — это изменение приоритетов: модель перестаёт тратить ресурсы на «приличия» иfocuses на сути.
Изменение структуры ответов и кода
Когда модель переключается в пещерный режим, она меняет не только лексику, но и формат ответа. Это проявляется в трёх ключевых аспектах.
Первое — сокращение вступительных и заключительных фраз. Обычный ответ модели часто включает введение вроде «Вот как можно решить эту задачу» и заключение вроде «Если у вас возникнут вопросы, задавайте». В пещерном режиме эти элементы исчезают. Модель начинает ответ с первого actionable item и заканчивает последним. Это не просто экономия токенов — это изменение контракта между пользователем и моделью: вы платите за результат, а не за коммуникацию.
Второе — уплотнение кода. Рассмотрим пример: генерация скрипта развертывания с использованием Ansible. Обычный ответ:
yaml# Пример обычного ответа (слишком много слов)
- name: Обновить систему
apt:
update_cache: yes
upgrade: yes
- name: Установить Docker
apt:
name: docker.io
state: present
Пещерный вариант:
yaml- apt: update_cache=yes upgrade=yes
- apt: name=docker.io state=present
Здесь не только сокращаются названия, но и изменяется структура: модуль и параметры записываются в одну строку. Это работает, потому что YAML позволяет это, а модель в пещерном режиме стремится к минимизации количества строк. Код остаётся функциональным, но становится более плотным и предсказуемым.
Третьее — изменение приоритетов в структуре документации. Если обычный ответ модели склонен к излишней детализации, то пещерный вариант оставляет только то, что необходимо для выполнения задачи. Например, при описании API-эндпоинта:
Обычно:
Эндпоинт /api/users принимает POST-запрос с телом в формате JSON,
содержащим поля email (обязательное, формат: электронная почта),
password (обязательное, минимум 8 символов) и name (опциональное).
В ответ возвращается токен доступа и идентификатор пользователя.
В пещерном режиме:
POST /api/users
Body: {email, password(min8), name?}
Response: {token, userId}
Информация сохраняется полностью, но формат меняется на структурированный. Это делает ответы предсказуемыми и легко сканируемыми — особенно важно, когда вы интегрируете модель в пайплины автоматизации.
Стоит отметить, что пещерный режим не ухудшает качество кода. Модель по-прежнему использует ваши контекстные подсказки, но делает это более экономно. Главное — правильно настроить промпт: если вы дадите too little context, она может упростить там, где нужно детализировать. Но при грамотном использовании пещерный режим даёт чистый, предсказуемый код с минимумом шумных слов.
Конечно, не всё так просто. Пещерный язык требует от пользователя умения читать между строк. Если вы привыкли к разговорным инструкциям, первое время может казаться, что модель «не понимает». На самом деле она понимает — просто она больше не будет это комментировать. Это как общение с коллегой, который отвечает только по делу: вы получаете меньше эмоций, но больше информации на единицу времени.
Если вы решили попробовать пещерный режим, начните с простых задач — генерация конфигов, небольших скриптов. По мере привыкания вы заметите, как меняется ваш подход к взаимодействию с моделью: вы начинаете думать структурно, заранее определяя, какая информация критична, а какая — избыточна. И в этом, пожалуй, главная ценность: Caveman не просто экономит токены — он учит быть лаконичным.
Практическое применение скилла в Claude Code
Как установить и активировать Caveman
Скилл Caveman — это конфигурация для Claude Code, которая переключает модель на предельно упрощённый язык: минимум слов, максимум сути. По сути, это набор инструкций, которые добавляют в промт Claude Code, заставляя отвечать в стиле «каменных письмен» — короткие предложения, без канцеляризмов, без водяных вступлений.
Устанавливается скилл через менеджер расширений Claude Code. Сначала проверяете, что у вас есть доступ к командной строке и установлен Node.js:
bashnode --version # должен быть не ниже 18
npm --version # должен быть не ниже 9
Если оба условия выполнены, запускаете установку:
bashclaude-code skills install caveman
После этого скилл активируется автоматически при следующем запуске Claude Code. Если нужно включить или отключить его вручную, используйте флаг при запуске:
bashclaude-code --skill caveman
Для проверки, что скилл загрузился корректно, можно запросить help:
bashclaude-code skills list | grep caveman
Вывод должен показать, что caveman активен. Если нет — проверьте логи:
bashclaude-code logs --last 50 | grep -i caveman
Конфигурация скилла хранится в файле CLAUDE.md в корне проекта. Если вы уже используете настройку CLAUDE.md по наблюдениям Карпати, то добавьте туда строку:
markdown- Use caveman skill for all code generation tasks
- Minimize explanatory text, maximize code
Это заставит Claude Code всегда использовать упрощённый режим при генерации кода. Если нужно отключить скилл для конкретной задачи, просто уберите эту строку перед запросом или используйте флаг --no-skill caveman:
bashclaude-code --no-skill caveman "Объясни, как работает алгоритм Dijkstra"
Важно: Caveman не отключает способность модели рассуждать — он только сжает формулировки. Модель по-прежнему понимает контекст и может работать с сложными запросами, просто делает это очень лаконично.
Когда использовать Caveman, а когда — стандартный режим
Выбор режима зависит от двух факторов: от объёма запрашиваемой информации и от назначения результата. Если вы генерируете код, конфиги, команды — Caveman всегда предпочтительнее. Если вы учите модель что-то объяснять, пишете документацию или разобраться в чужом коде — лучше стандартный режим.
Используйте Caveman, когда:
- Переписываете большой модуль и лимит токенов приближается к границе. Стандартный режим может «упасть» посередине, оставив незавершённый код.
- Генерируете шаблоны, boilerplate, повторяющиеся структуры. Упрощённый язык убирает шаблонные фразы, которые не несут informational load.
- Работаете в режиме реального времени с интерактивной сессией и нужно минимизировать задержки. Меньше токенов — быстрее ответ.
- Используете Claude Code как REPL для быстрых проверок итераций: «напиши функцию, проверь, улучши». Здесь важна скорость, а не развернутые объяснения.
Используйте стандартный режим, когда:
- Пишете документацию, комментарии, README. Кавеман уберёт все связные слова, и текст станет непонятным для других.
- Объясняете концепцию коллеге, ученику или записываете в блог. Здесь нужна риторика, примеры, переходы.
- Анализируете чужой код и нужно дать развернутый разбор с контекстом. Кавеман сожмёт анализ до набора тезисов, и вы lost the forest for the trees.
- Работаете с критически важным кодом, где каждое слово в комментарии имеет значение. Лучше переписать комментарий вручную, чем получить усечённую версию.
Практическое правило: если результат — код, конфиг или команда — включайте Caveman. Если результат — текст, объяснение, анализ — отключайте. Переключается это просто:
bash# Cavеман включён по умолчанию, если установили скилл
claude-code "создай REST API на Express"
# Отключить Caveman для конкретного запроса
claude-code --no-skill caveman "объясни, как работает systemd-journald"
Если вы активно используете Graphify для построения графа знаний кодовой базы, то Caveman особенно полезен на этапе генерации кода — он компенсирует объём токенов, которые уходит на анализ графа. В tandem: Graphify анализирует, Caveman генерирует.
Часто задаваемые вопросы
Как установить скилл Caveman и начать им пользоваться?
Установка скилла не требует дополнительных зависимостей или изменений конфигурации Claude Code. Скилл подключается как плагин через стандартный интерфейс расширений: перейдите в раздел навыков, найдите Caveman по названию и активируйте. После этого он будет автоматически перехватывать исходящие промты. Проверить, что скилл работает, можно командой claude-code --stats --skill caveman — в выходных данных отобразится счётчик токенов до и после преобразования. Если показатель отличается от нуля, скилл функционирует.
Влияет ли Caveman на качество результата?
Качество результата не ухудшается, если промт содержит чёткие формулировки. Caveman убирает служебные слова, но сохраняет суть: глагол, объект, ограничения. Модель понимает такую формулировку, потому что она соответствует её внутреннему представлению задач. Пример из статьи показывает, что инструкция «анализ src/components, найти >3 использования, предложить рефакторинг + обоснование» даёт тот же результат, что и развернутый вариант, но тратит в разы меньше токенов. Главное — изначально промт должен быть логически завершённым: если в нём была важная деталь, её нельзя опускать.
Совместим ли Caveman с другими скиллами и плагинами?
Caveman работает на уровне преобразования промта перед отправкой, не вмешиваясь в логику других скиллов. Он не модифицирует код, не изменяет поведение Claude Code и не конфликтует с плагинами, которые оперируют уже преобразованными промтами. Если вы одновременно используете скилл для форматирования ответа, Caveman сработает до него — сначала упростится промт, затем будет применён форматирующий скилл. Проверить совместимость можно в конкретном сценарии: активируйте оба скилла и сравните результат с работой каждого по отдельности.
Сколько токенов можно сэкономить на реальных задачах?
В статье указан максимум — до 65%. На практике экономия зависит от объёма исходного промта: чем больше в нём канцелярита и повторов, тем выше процент сокращения. Для простых команд («исправить опечатку в строке 42») разница будет незначительной, но для сложных задач с описанием контекста, ограничений и формата ответа экономия близка к максимуму. Посчитать точный процент можно встроенной статистикой: команда claude-code --stats --skill caveman показывает токены до и после.
Нужно ли переучаться, чтобы использовать скилл?
Переучаться не требуется. Caveman не вводит новые команды или синтаксис — он упрощает те формулировки, которые вы уже используете. Принцип работы понятен с первого раза: пишите промт как обычно, скилл сам преобразует его. Единственное, на что стоит обратить внимание — на необходимость быть лаконичным в исходной формулировке. Если вы привыкли к развернутым инструкциям, скилл всё равно сработает, но эффект будет меньше: он уберёт лишнее, но не добавит недостающего.