AIDive

Пакет к видео

Восемь репозиториев Claude Code на одном проекте: цена сессии, абляции, вердикты

13 мин чтения

Коротко

  • Восемь популярных репозиториев для Claude Code установили на уровне проекта в одну реальную кодовую базу и измерили: токены на старте сессии, выходные токены на трёх задачах по коду и то, что каждый из них записал за пределами проекта.
  • Исход изменил только один из восьми: anti-slop, запущенный как линтер, поймал один и тот же небезопасный каст во всех 3 прогонах T3 ценой +95 токенов на старте сессии и нуля на каждый ход.
  • Наборы правил для краткого вывода не выдержали проверку на работе с инструментами: заявленные Chisle 52% от базовой линии превратились в 94% базовых выходных токенов, а его вариант с учётом входных токенов стоил дороже базовой линии в двух задачах из трёх.
  • Три MCP-сервера не были вызваны ни разу за 63 прогона. Установлено не значит используется.
  • Стек аддитивен: все восемь вместе добавили +6,804 токена на старте сессии, на 63 токена меньше суммы частей.
  • Две установки вышли за пределы проекта. Один кодмод зарегистрировал себя в глобальных конфигах 8 других агентов; другой инструмент жёстко прописывает --dangerously-skip-permissions и копирует файл с учётными данными, поэтому его не запускали.

Что показывают измерения

Токены на старте сессии воспроизводимы, а стоимость в долларах нет: каждое условие вернуло одинаковую сумму входных токенов в обоих прогонах, тогда как стоимость того же условия колебалась от $0.0183 до $0.0035 в зависимости от состояния кэша промптов, поэтому везде метрика это число токенов. Базовый проект стартует с 17,378 токенов s4.

Схемы MCP-инструментов в этой версии Claude Code отложены, и теперь стоимость зависит от числа имён инструментов, которые объявляет сервер, а не от размера схем. 39 инструментов ouroboros стоят +1,642 токена, 19 инструментов reticle стоят +895, 2 инструмента ui-skills стоят +37: примерно 42-47 токенов на имя инструмента. По умолчанию все MCP-инструменты отложены и подгружаются по требованию, а режим auto переменной ENABLE_TOOL_SEARCH откладывает их, когда их определения достигают 10% контекстного окна s4. img2threejs поставляет SKILL.md на 32,902 байта и 352 файла, а стоит +107 токенов на старте сессии, потому что загружается только описание из frontmatter. Документация по скиллам ограничивает каждое описание в списке 1,536 символами и сокращает описания под бюджет списка, когда скиллов много; после компактации вызванные скиллы прикрепляются заново по 5,000 токенов каждый в общем бюджете 25,000 токенов s5. Из-за этого бюджета списка 40 скиллов могут стоить 3,060 токенов за ход в конфигурации, где ни один из них не вызывается s10, и поэтому обрезаются описания, а не отбрасываются скиллы s11.

Хук UserPromptSubmit у Chisle добавляет 287 байт additionalContext на каждом ходу; за 22 хода задачи именно поэтому его вариант стоил на +41,539 входных токенов больше на T3 по сравнению с базовой линией. caveman, измеренный как эталон, ничего не внедряет, пока промпт не начинается с /caveman. Когда несколько хуков на одном событии возвращают additionalContext, Claude получает все их склеенными, с лимитом 10,000 символов на хук s15. Когда Chisle, caveman и ouroboros подключены вместе, получилось 3 регистрации на SessionStart, 3 на UserPromptSubmit и 2 на PostToolUse, то есть +4,269 токена на старте s15.

README Chisle заявляет счёт за 20 задач на уровне 52% от базовой линии, и сам же README относит эту цифру к одноходовым промптам без инструментов s3. На трёх задачах в реальном репозитории, по 3 прогона каждая, суммарные средние выходные токены Chisle составили 9,007 против 9,615 у базовой линии, то есть 94%; у caveman 10,820, то есть 113%, на выборке, где разброс T3 был 2,014 токенов, так что ни в одну сторону это не выходит за пределы шума s3. Компрессор вывода Chisle не записал ни одной записи об экономии за 63 прогона.

anti-slop, вендоренный в tools/oxlint/ со всеми 18 общими правилами плюс oxc/no-accumulating-spread, нашёл 109 проблем в нетронутом проекте на 4,775 строк, 83% из них от двух правил домашнего стиля (require-readable-spacing 50, require-safety-comment-for-type-assertion 41) s8. В коде, написанном Claude, он поймал maxLength={field.maxLength as number} во всех 3 прогонах T3: Claude копирует собственный небезопасный каст кодовой базы s8. Плагин это ESM, поэтому в хост-проекте нужен "type": "module", иначе oxlint падает с Cannot use import statement outside a module.

Кодмод init у Reticle, запущенный с заданным RETICLE_STATE_DIR и выключенной телеметрией, сообщил, что зарегистрировал MCP-сервер ещё у 8 агентов (пользовательский уровень VS Code, GitHub Copilot CLI, Warp, Factory Droid, Kiro, Amazon Q Developer CLI, Cline CLI, Amp) и заранее одобрил его инструменты в Gemini CLI; сопряжение затем упало с ERR_OSSL_EVP_UNSUPPORTED s6. Caliper отклонили: claude_code.py:106 жёстко прописывает --dangerously-skip-permissions, а seed_files() копирует ~/.claude/.credentials.json с запасным вариантом через Keychain s2. Хук UserPromptSubmit у ouroboros отвечает на обычный промпт вроде write prd for reading time строкой REQUIRED SKILL: /ouroboros:setup, шагом, который установка на уровне проекта выполнить не может s7.

Статья по 2,545 траекториям на библиотеках из 52, 102 и 202 скиллов сообщает об объединённых падениях доли успешных прогонов на .08, .14 и до 21%, причём похожие описания перекрывают друг друга, и это всё больше вклада в потери s20.

Измерения

Протокол: один реальный TypeScript-проект, каждый репозиторий установлен только на уровне проекта. Старт сессии: промпт Reply with OK в JSON-режиме -p с одинаковыми флагами, 2 прогона на условие, показатель = input_tokens + cache_creation_input_tokens + cache_read_input_tokens первого хода. Абляция: три задачи по коду (T1 короткая, T2 средняя, T3 длинная задача по UI) с проверками прохождения и барьером проверки типов, 3 прогона на ячейку, условия = базовая линия, каждый постоянно включённый репозиторий отдельно, все восемь вместе. anti-slop: oxlint 1.78.0 с вендоренным набором правил на нетронутом проекте и на коде, написанном в 9 базовых прогонах.

репозиторий что установлено на уровне проекта токенов добавлено на старте сессии стоимость на ход
базовая линия ничего 17,378 нет
Chisle 4 скилла, 4 команды, 3 хука +3,496 +287 байт additionalContext на каждом ходу
ouroboros MCP-сервер, 39 имён инструментов +1,642 условное внедрение
reticle MCP-сервер, 19 имён инструментов +895 / +903 не замечена
fwc-swiftui-skills 2 скилла +304 нет
caliper 2 скилла +172 нет
img2threejs 1 скилл, 352 файла, SKILL.md = 32,902 Б +107 нет
anti-slop 1 скилл + вендоренный набор правил +95 нет
ui-skills удалённый MCP, 2 инструмента +37 нет
все восемь вместе всё перечисленное выше +6,804 только на ход у Chisle
caveman (эталон) 4 скилла, 2 хука +744 0
задача условие прошло новых ошибок типов выходных токенов, среднее выходных токенов, от и до входных токенов всего, среднее стоимость, среднее ходов вызовов MCP
T1 базовая линия 3/3 0 1,668 1,619 до 1,739 95,462 $0.0519 7.0 0
T1 Chisle 3/3 0 1,434 1,341 до 1,502 106,001 $0.0576 7.7 0
T1 ui-skills 3/3 0 1,756 1,644 до 1,885 96,279 $0.0535 7.3 0
T1 reticle 3/3 0 1,899 1,653 до 2,177 107,263 $0.0594 8.0 0
T1 ouroboros 3/3 0 1,729 1,655 до 1,787 97,166 $0.0549 7.0 0
T1 стек 3/3 0 1,462 1,460 до 1,465 128,221 $0.0646 7.7 0
T2 базовая линия 3/3 0 2,128 2,105 до 2,164 74,286 $0.0540 9.0 0
T2 Chisle 3/3 0 2,184 2,150 до 2,230 87,462 $0.0624 10.0 0
T2 ui-skills 3/3 0 2,348 2,224 до 2,504 74,869 $0.0604 10.0 0
T2 reticle 3/3 0 2,614 2,312 до 2,824 78,664 $0.0635 10.7 0
T2 ouroboros 3/3 0 2,441 2,152 до 2,815 80,819 $0.0622 10.0 0
T2 стек 3/3 0 2,136 2,015 до 2,216 89,378 $0.0661 9.7 0
T3 базовая линия 3/3 0 5,819 5,423 до 6,063 198,217 $0.1551 22.0 0
T3 Chisle 3/3 0 5,389 5,206 до 5,500 239,756 $0.1565 20.3 0
T3 ui-skills 3/3 0 5,279 4,860 до 5,567 214,691 $0.1477 21.0 0
T3 reticle 3/3 0 4,664 4,008 до 5,776 198,740 $0.1293 19.0 0
T3 ouroboros 3/3 0 5,456 4,324 до 7,093 232,763 $0.1544 21.0 0
T3 стек 3/3 0 5,331 4,787 до 5,843 241,576 $0.1591 19.7 0

63/63 прогонов прошли и 0/63 внесли новую ошибку типов. Только две ячейки выходят за собственный разброс между прогонами: Chisle на T1 (−234, −14.0%) и стек на T1 (−206, −12.3%). На T2 и T3 все дельты лежат внутри разброса; прогоны ouroboros на T3 дали от 4,324 до 7,093 выходных токенов на одинаковом промпте, разница 64%.

репозиторий вердикт доказательства
anti-slop изменил результат, как проверка поймал один и тот же небезопасный каст в 3/3 прогонах T3, +95 токенов, 0 на ход
Chisle ничего измеримого, стоил дороже 94% базового вывода против заявленных 52%; +3,496 на старте, +287 байт на ход
ui-skills ничего не изменил 0 вызовов инструментов в 9 прогонах, +37 токенов
reticle конфликтует init записал в ~/.claude/settings.json и в конфиги 8 других агентов; сопряжение так и не завершилось
ouroboros конфликтует требует /ouroboros:setup на обычных промптах; 39 имён инструментов, 0 вызовов
caliper не запускали жёстко прописанный --dangerously-skip-permissions, копирует файл с учётными данными
img2threejs вне стека +107 токенов, ни с чем не конфликтует
fwc-swiftui-skills вне стека +304 токена, статичный Markdown

Сделайте в понедельник

  • Запустите /context all в свежей сессии основного проекта и запишите стартовое число.
  • Выполните claude plugin details <name> для каждого установленного плагина; строка always-on это единственная цифра, которая списывается на каждом ходу.
  • Выпишите свои хуки по событиям. Любой хук, возвращающий additionalContext на UserPromptSubmit для каждого промпта, это налог на каждый ход; оставьте только те, что срабатывают по ключевому слову или matcher.
  • Посчитайте имена инструментов, которые объявляет каждый MCP-сервер, заложите примерно 42-47 токенов на имя, затем проверьте по своим транскриптам, сколько из них вообще вызывалось.
  • Перед установкой чего-либо со скриптом init или setup прочитайте его на предмет записи за пределы репозитория: ~/.claude/settings.json, каталоги конфигов других агентов, файлы с учётными данными, --dangerously-skip-permissions.
  • Подключайте проверки качества сгенерированного кода как линтер на шаге верификации, а не как скилл в контексте: правило линтера ничего не стоит на ходу.
  • Прежде чем верить любому заявлению об экономии токенов, прогоните одну задачу 3 раза с инструментом и без него и сравните дельту с собственным разбросом от минимума до максимума.
  • Архивируйте то, что убираете, а не удаляйте, чтобы рабочий процесс, который за этим потянется, мог это вернуть.

Читать дальше

  • Бюджет списка скиллов и лимит описания в 1,536 символов объясняют, почему перегруженная конфигурация деградирует, хотя ни один скилл не перестаёт загружаться. Прочитайте разделы "Skill descriptions are cut short" и "Skill content lifecycle" s5.
  • Разбор /skill-doctor показывает 40 скиллов по 3,060 токенов за ход и какие резать первыми; его слепое пятно, дорогие скиллы внутри используемого плагина, оставлено для продолжения s10.
  • Статья, на которой держится правило "больше 30 скиллов": 2,545 траекторий на библиотеках из 52, 102 и 202 скиллов, с выделенным эффектом перекрытия s20, и доступный пересказ, который сделал её известной s12.
  • Склейка хуков и лимит additionalContext в 10,000 символов, а также синтаксис matcher, позволяющий хуку срабатывать только на Write|Edit s15.
  • Ветка об удалении 63%, включая жёстко прописанный bearer-токен, найденный в удалённом MCP-конфиге, побочная тема о безопасности, которую видео опустило s13.
  • Собственный README Chisle, строки 229 и 262, относит цифру 52% к одноходовым промптам без инструментов и уступает короткую ячейку по коду caveman. Читайте мелкий шрифт, прежде чем цитировать заголовок s3.
  • Два репозитория вне стека не оценивались, потому что вызываются вручную и ничего не стоят на старте: img2threejs для сцен Three.js s21 и fwc-swiftui-skills для поверхностей Liquid Glass s22.

Источники

  • Plugins reference, документация Claude Code. Зачем читать: plugin details, области установки и отложенная загрузка MCP-инструментов, из-за которой реальной ценой становится число имён инструментов.
  • Extend Claude with skills, документация Claude Code. Зачем читать: лимит описания, бюджет списка и бюджет повторного прикрепления после компактации на одной странице.
  • Hooks reference, документация Claude Code. Зачем читать: что происходит, когда два хука внедряют контекст на одном событии, и как matcher не пускает хук на большинство ходов.
  • dmmulroy/anti-slop, GitHub. Зачем читать: единственный из восьми репозиториев, изменивший результат; берите правила, пропускайте скилл.
  • JayPokale/Chisle, GitHub. Зачем читать: README, который честно ограничивает собственное заявление о 52%, если дочитать дальше заголовка.
  • edonadei/caliper, GitHub. Зачем читать: оценщик скиллов, о котором стоит знать, и урок о том, что claude_code.py нужно прочитать до запуска чего-либо.
  • reticlehq/reticle, GitHub. Зачем читать: кодмод init это самый наглядный пример установщика, пишущего далеко за пределами вашего проекта.
  • Q00/ouroboros, GitHub. Зачем читать: рабочий процесс на хуках, имеющий смысл только при глобальной установке, с шагом настройки, который установка на уровне проекта выполнить не может.
  • ibelick/ui-skills, GitHub. Зачем читать: самая дешёвая установка здесь, +37 токенов, и ни одного вызова.
  • /skill-doctor: 40 skills, 3,060 tokens a turn, dev.to. Зачем читать: разбивка стоимости по скиллам на реальной конфигурации.
  • Too many Claude Code skills? How the listing budget decides, dev.to. Зачем читать: механизм, по которому описания обрезаются.
  • Why More Than 30 Skills Kill Your AI Agent, dev.to. Зачем читать: читаемая версия статьи о перекрытии скиллов.
  • Skill shadowing paper, arXiv. Зачем читать: объединённые падения доли успешных прогонов по размеру библиотеки, с доверительными интервалами.
  • I removed 63% of my Claude Code setup, Reddit r/ClaudeCode. Зачем читать: от ~235 компонентов до ~87, архивировано, а не удалено.
  • My fresh Claude Code sessions were starting at ~35K tokens, Reddit r/ClaudeCode. Зачем читать: аудит /context all из семи шагов, который можно скопировать уже сегодня.
  • img2threejs/img2threejs, GitHub. Зачем читать: доказательство того, что SKILL.md на 32,902 байта стоит 107 токенов, пока вы его не вызовете.
  • FloWritesCode/fwc-swiftui-skills, GitHub. Зачем читать: скиллы в виде статичного Markdown, форма установки, которая ни с чем не может конфликтовать.

FAQ

Стоит ли MCP-сервер по-прежнему тысячи токенов на схему при запуске?

Не на измеренной версии. Схемы отложены, и стоимость зависит от числа объявленных имён инструментов, около 42-47 токенов на каждое. Сервер с 39 инструментами стоил +1,642 токена; сервер с 2 инструментами стоил +37.

Почему Chisle стоил дороже базовой линии, хотя давал меньше выходных токенов?

Его набор правил загружается на старте сессии (+3,496 токенов), а хук внедряет 287 байт на каждом ходу. На T2 и T3 эти входные накладные расходы перевесили экономию на выходе, которая так и не вышла за пределы шума между прогонами.