claude-code

43 199 артефактов Claude Code не загружаются

Claude News

claude-code

Перепись, опубликованная Kynth, насчитала 43 199 листингов Claude Code, которые не загрузятся в том виде, в каком опубликованы, из 445 348 проверенных. Данные прочитаны из исходников на GitHub и skills.sh 14 августа 2026 года, это издание 2026.1. Доля отказов составляет 9,70%, и сравнить её пока не с чем: раньше эту экосистему никто так не мерил.

Коротко

  • Проверка статическая: ничего не запускается, модель ничего не оценивает, а вопрос сводится к тому, способен ли рантайм зарегистрировать файл в том виде, в каком он лежит в репозитории.
  • Навыки отказывают в 7,89% случаев, субагенты в 21,9%, плагины в 0,16%, маркетплейсы в 1,57%; всего в выборке 347 382 навыка, 71 430 субагентов, 20 212 плагинов и 6 324 маркетплейса.
  • Отказы концентрируются: 3 168 репозиториев из 14 233 дают все 43 199 сбойных листингов, потому что один и тот же файл форкается и считается заново в каждом репозитории, который его несёт.

Значимость цифры в том, что до сих пор экосистему такого размера никто не мерил, и любая последующая перепись будет отсчитываться от 9,70%. Для тех, кто копирует чужие навыки и субагентов, вывод практический: примерно каждый десятый скопированный артефакт молча не подключится, а популярность репозитория об этом ничего не говорит. Судя по всему, доля отказов держится на дешевизне ошибки, которую никто на пути публикации не ловит.

Субагенты отказывают в 21,9% случаев против 7,89% у навыков

Из 71 430 субагентов структурную проверку не проходят 15 669, это 21,9%. У навыков доля отказов в 2,8 раза ниже, 7,89%, или 27 398 сбоев на 347 382 листинга. Разрыв задан справочником Anthropic по фронтматтеру: у субагента поля name и description помечены Required: Yes, у навыка нет.

Один и тот же небрежно оформленный файл работает как навык и мертвеет как субагент: навык при отсутствии имени берёт имя каталога, субагенту регистрироваться не под чем. Без name остались 4 119 субагентов, без description 1 799. Сам индекс до 2 августа 2026 года публиковал обратное правило.

Description у субагента, по описанию переписи, это предложение, по которому Claude решает, делегировать ли задачу, поэтому его отсутствие оставляет систему без признака маршрутизации. Проверка касается только структуры файла: прохождение гарантирует лишь то, что рантайм смог бы зарегистрировать артефакт, но не то, что он полезен или безопасен.

88,4% всех отказов дал один дефект, непарсящийся YAML

38 183 листинга из 43 199 сбойных несут одну и ту же поломку: YAML-блок в начале файла не разбирается, поэтому ниже по конвейеру нельзя прочитать ни имя, ни описание, ни список инструментов. На эту причину приходится 88,4% отказов. Один листинг может нести несколько причин, поэтому сумма по колонке превышает 43 199.

Остальные фатальные причины на этом фоне редки. Манифест plugin.json или marketplace.json не разбирается как JSON у 128 листингов, ещё 99 маркетплейсов содержат валидный манифест без единого плагина. У плагинов доля отказов 0,16% при 20 212 листингах, у маркетплейсов 1,57% при 6 324 листингах.

В пути публикации, отмечает перепись, нет ни шлюза реестра, ни конвенции CI, ни сообщения об ошибке автору, поэтому сбойный фронтматтер доживает до пользователя. Знаменатель при этом включает всё найденное, включая нечитаемое: каталог, который отбрасывает то, что не смог обработать, показывает экосистему здоровее реальной.

Перепись отозвала собственный флаг, срабатывавший на 139 623 листингах

Вместе с первым изданием SkillWorks опубликовал исправление к собственному индексу. Флаг отсутствующих ссылок, помечающий навык, который называет файл из бандла, отсутствующий в репозитории, срабатывал на 139 623 листингах, 40,2% всех навыков индекса, и был ошибочен примерно в семи случаях из восьми.

Причина в трёх ошибках одного регулярного выражения. Перечисление расширений ставило js перед json при выборе первого совпадения, из-за чего package.json превращался в отсутствующий package.js у 12 178 листингов, а вызов res.json(data) внутри блока кода давал несуществующий res.js ещё у 6 946 листингов.

Совпадение ни к чему не привязывалось внутри бандла навыка, поэтому чаще всего индекс сообщал о пропаже Next.js (21 014 листингов), Node.js (19 383), собственного SKILL.md навыка (27 002) и CLAUDE.md (11 371). Ссылка вида ./run.sh не разрешалась против дерева репозитория ещё у 1 498 листингов.

После исправления файл из бандла действительно отсутствует у 18 657 навыков, это 5,37% всех навыков индекса. Флаг вычитался из оценки и никогда не был вердиктом загрузки, поэтому заголовочные 9,70% не меняются: доля собрана только из фатальных причин, перечисленных в таблице отказов.

Когда правка дойдёт до индекса Исправленный разбор ссылок уже в открытом скрапере, общем для этих индексов, и попадёт в сам индекс при ближайшей ночной пересборке; дата следующего издания переписи не называется. Полные данные опубликованы под CC BY 4.0: census.json с агрегатами и правилом отказа, broken-listings.csv на 43 199 строк и listings.csv.gz на всю популяцию в 445 348 строк. Издание 2026.1 зафиксировано на Zenodo под постоянным DOI, отдельный DOI всегда указывает на свежую перепись.

Комментарии

Пока никто не написал. Будьте первым.

Присоединяйтесь к разговору

Войдите через Google, чтобы оставить комментарий. Имя и аватар подставятся из вашего профиля Google, а комментарий появится после модерации.

Из Google мы используем только имя и аватар. Почту не сохраняем.