57% субагентов Claude Code наследуют Bash вызвавшего

Из 216 публичных навыков Claude Code все проверки чисто прошёл ровно один, а из 87 публичных субагентов не прошёл ни один. Числа опубликовал автор линтера Skillcrossroads, который прогнал свои проверки по публичным репозиториям с артефактами Claude Code.
Коротко
- Список tools не объявляют 50 субагентов из 87, и такой работник получает весь инструментарий вызвавшего вместе с Bash, хотя задача у него может быть «только почитать код».
- Из 215 навыков, оценённых на срабатывание, у 69% описание не поднимет навык надёжно: 40% вряд ли сработают вообще, ещё 28% автор относит к пограничным.
- Агентов прогнали только детерминированными проверками, без LLM-оценки описаний: обе редакции рубрики v1.2 помечены в отчётах, SHA деревьев зафиксированы, команды воспроизведения опубликованы.
Если вы не следили, устройство тут простое: навык живёт в SKILL.md, и поднимать его или нет, решается по одной строке description во фронтматтере, а субагент описан таким же файлом, где поле tools задаёт доступный ему инструментарий. Масштаб экосистемы уже приличный: каталог Tons of Skills показывает 434 плагина и 2900 видимых в маркетплейсе навыков в 19 категориях.
50 из 87 субагентов не объявляют tools вовсе
В выборке из 87 публичных субагентов 57% не содержат списка tools. Выглядит как безопасный дефолт, а работает наоборот: без списка субагент наследует весь инструментарий того, кто его вызвал, Bash включительно. Запросы разрешений всё ещё гасят исполнение, но поверхность выдачи прав у работника, которому вы поручили чтение кода, уже шире задачи.
Ещё 16 субагентов выдают голый Bash, ещё 8 ставят wildcard. Итого 85% выборки мимо принципа наименьших привилегий. Отдельно посчитаны подсказки для вызова: формулировок вроде «use when…» нет в описании у 83% субагентов, это 72 из 87. Threatlocker в своих рекомендациях по ИИ-агентам пишет ровно про эту привычку: широкие права выдают потому, что так быстрее, а при компрометации именно избыточные права дают злоумышленнику пройти дальше.
Что делает разрешение, сохранённое через «не спрашивать снова»
В документации Claude Code описана многоуровневая схема разрешений: команды Bash требуют подтверждения, кроме встроенного набора команд только на чтение, а выбор «Yes, and don't ask again» сохраняется навсегда для этого репозитория и этой команды. Правило записывается в .claude/settings.local.json в корне git-репозитория и дальше действует в будущих сессиях по всему репозиторию, включая подкаталоги и worktree. Там же сказано, что подтверждение на правку файлов живёт только до конца сессии, а в авторежиме действия вместо человека проверяет классификатор.
Разрешение на Bash ведёт себя как ключ от подсобки, выданный один раз: в конце смены его никто не забирает. До версии v2.1.211, как сказано в документации Claude Code, правило сохранялось в стартовом каталоге, и одобрение, выданное в worktree или подкаталоге, не распространялось на остальной репозиторий.
69% описаний навыков не поднимут их надёжно
Навыков, оценённых на срабатывание, в выборке 215. У 69% описание не поднимет навык надёжно: 40% вряд ли сработают вообще, ещё 28% отнесены к пограничным. Автор называет жалобу «мой навык не срабатывает» проблемой номер один на практике, и прячется она в одной строке фронтматтера.
Описание работает как надпись маркером на коробке в кладовке: внутрь никто не заглядывает, решение принимается по надписи. Если надпись общая, коробку не достанут.
Чисто все проверки прошёл 1 навык из 216 и ни один субагент из 87. С секретами при этом почти у всех порядок: сканер сработал только на 6 навыках из 216.
Проверки детерминированные, LLM-оценка опциональна
Линтер разбирает пять видов артефактов: навыки, субагенты, слэш-команды, конфиги .mcp.json и плагины. Большая часть проверок детерминированные и выдают доказательство с файлом и строкой, например «SKILL.md:14 links ./references/converter.md, not found». Оценка того, сработает ли описание, опциональная, её делает LLM, ключ вы приносите свой.
Выборка описана так: 216 навыков из 18 репозиториев и 123 артефакта агентов и команд (87 субагентов плюс 36 слэш-команд) из 10 репозиториев, лимиты раскрыты, SHA деревьев зафиксированы, команды воспроизведения опубликованы. Оба отчёта лежат на сайте с пометкой редакции рубрики, в которой считались.
CLI бесплатный и запускается как npx skillcrossroads ./my-skill, для пул-реквестов есть GitHub Action. Модель open-core: публичные аудиты бесплатны, деньги в хостед-тарифе Pro.
Строгость рубрики автор проговаривает сам, и вместе с ней он признаёт главное ограничение: навыки и агентов считали в разных редакциях v1.2, так что описания субагентов LLM-проверка не смотрела вовсе. На наш взгляд, при такой планке результат «один чистый навык из 216» говорит о рубрике не меньше, чем о качестве репозиториев, и единственный способ это развести — открыть конкретный артефакт по file:line-доказательству и посмотреть, что там за находка.
Цена Pro и редакция для агентов
Цена хостед-тарифа Pro в отчётах не названа, как и дата, когда скан по агентам пересчитают в редакции с LLM-проверками. Без неё вопрос, срабатывают ли описания субагентов, остаётся без ответа: детерминированные проверки считают только отсутствие подсказок вызова. Ближайшая проверяемая точка лежит в ваших собственных репозиториях: прогон занимает одну команду, а результат можно сопоставить с опубликованными числами.
Читайте также
- 43 199 артефактов Claude Code не загружаются
- Toolog ведёт локальный журнал вызовов Claude Code
- Stemma компилирует CLAUDE.md и AGENTS.md из одного источника
- Portal by Spotify уводит чтение файлов из Claude Code
- Context Engineering Kit: /reflect и спецификации arc42
- ccswitch переключает аккаунты Claude Code одной командой
Комментарии
Пока никто не написал. Будьте первым.
Присоединяйтесь к разговору
Войдите через Google, чтобы оставить комментарий. Имя и аватар подставятся из вашего профиля Google, а комментарий появится после модерации.
