Сжимает markdown-файлы памяти в caveman-стиль для сокращения токенов, сохраняя все блоки кода, URL и технические термины.
Caveman Compress
Назначение
Сжимает файлы на естественном языке (CLAUDE.md, todos, настройки) в «caveman»-стиль, чтобы сократить входные токены. Сжатая версия перезаписывает оригинал. Человекочитаемая резервная копия сохраняется как <filename>.original.md.
Триггер
/caveman-compress <filepath> или когда пользователь просит сжать файл памяти.
Процесс
- Скрипты сжатия лежат в
scripts/ (рядом с этим SKILL.md). Если путь не очевиден, найдите scripts/__main__.py рядом с SKILL.md.
- Из каталога с SKILL.md выполните:
python3 -m scripts <absolute_filepath>
- CLI: определит тип файла (без токенов); вызовет Claude для сжатия; провалидирует вывод (без токенов); при ошибках — точечная правка через Claude (только адресные фиксы, без пересжатия); до 2 повторов; если после 2 повторов всё ещё неудача — сообщит об ошибке, оставит оригинал нетронутым.
- Вернёт результат пользователю.
Правила сжатия
Удалить
- Артикли: a, an, the
- «Воду»: just, really, basically, actually, simply, essentially, generally
- Любезности: «sure», «certainly», «of course», «happy to», «I'd recommend»
- Смягчения: «it might be worth», «you could consider», «it would be good to»
- Избыточные обороты: «in order to» → «to», «make sure to» → «ensure», «the reason is because» → «because»
- Связочную «воду»: «however», «furthermore», «additionally», «in addition»
Сохранить ТОЧНО (никогда не менять)
- Код-блоки (огороженные ``` и с отступом)
- Инлайн-код (
содержимое в кавычках)
- URL и ссылки (полные URL, markdown-ссылки)
- Пути файлов (
/src/components/..., ./config.yaml)
- Команды (
npm install, git commit, docker build)
- Технические термины (имена библиотек, API, протоколы, алгоритмы)
- Имена собственные (названия проектов, люди, компании)
- Даты, номера версий, числовые значения
- Переменные окружения (
$HOME, NODE_ENV)
Сохранить структуру
- Все заголовки markdown (точный текст заголовка, сжать тело ниже)
- Иерархию маркеров (сохранить вложенность)
- Нумерованные списки (сохранить нумерацию)
- Таблицы (сжать текст ячеек, сохранить структуру)
- Фронтматтер/YAML-заголовки в markdown-файлах
Сжать
- Короткие синонимы: «big» вместо «extensive», «fix» вместо «implement a solution for», «use» вместо «utilize»
- Фрагменты ОК: «Run tests before commit» вместо «You should always run tests before committing»
- Убрать «you should», «make sure to», «remember to» — просто укажите действие
- Слить избыточные маркеры, говорящие одно и то же по-разному
- Оставить один пример, где несколько показывают один паттерн
КРИТИЧНОЕ ПРАВИЛО: всё внутри ``` ... ``` копируется ТОЧНО. Не: удалять комментарии, удалять пробелы, переставлять строки, сокращать команды, что-либо упрощать. Инлайн-код (...) сохраняется ТОЧНО.
Если файл содержит код-блоки: считайте их «только для чтения»; сжимайте только текст вне них; не сливайте секции вокруг кода.
Паттерн
Оригинал: «You should always make sure to run the test suite before pushing any changes to the main branch...»
Сжато: «Run tests before push to main. Catch bugs early, prevent broken prod deploys.»
Оригинал: «The application uses a microservices architecture with the following components...»
Сжато: «Microservices architecture. API gateway route all requests to services. Auth service manage user sessions + JWT tokens.»
Границы
- Сжимать ТОЛЬКО файлы на естественном языке (.md, .txt, .typ, .typst, .tex, без расширения)
- НИКОГДА не менять: .py, .js, .ts, .json, .yaml, .yml, .toml, .env, .lock, .css, .html, .xml, .sql, .sh
- При смешанном содержимом (проза + код) сжимать ТОЛЬКО прозу
- Если не уверены, код это или проза — оставьте без изменений
- Оригинал бэкапится как FILE.original.md перед перезаписью
- Никогда не сжимать FILE.original.md (пропускать)