AI и агенты17 мин чтения

Плагины для Claude Code: официальный каталог берёт код только от Verified

Официальный каталог плагинов для Claude Code с ноября берёт скрипты и хуки только от Verified. Что известно о правиле и как ставить плагины с GitHub.

Плагины для Claude Code: официальный каталог берёт код только от Verified
Содержание

7 ноября 2026 года, около часа ночи по Бангкоку, официальный каталог плагинов для Claude и Claude Code отказал новой версии IT Reelsmaker — моего плагина для монтажа вертикальных роликов. Причина в отказе — не ошибка в коде, а сам факт, что код есть. Файлы, кроме Markdown, текста, JSON, YAML и картинок, каталог теперь принимает только от Verified-организаций. Скрипты тоже. Кому дать этот статус, Anthropic решает сама, а попросить его, как пишет портал разработчика, пока нельзя: «there’s no way to ask to become one yet».

Для плагина, который режет видео, накладывает субтитры и рендерит графику на компьютере пользователя, это значит одно: пока правило действует, выпустить новую версию через каталог мы не можем. Ниже — как мы к этому пришли, что известно о правиле и что делать, если у вас тоже плагин с кодом. Факты и наши выводы я разделяю явно: причину правила и сроки Anthropic не объявляла.

Что именно запрещает каталог

Отказ пришёл с кодом LOCAL_CODE_FILE_TYPE. Портал просит убрать каждый файл, который не Markdown, не текст, не JSON, не YAML и не картинка в формате PNG, JPEG, GIF, WebP или ICO. Отдельно отклоняются файлы, которые начинаются с #! — этой строкой скрипт сообщает системе, чем его запускать, и расширение файла тут уже не спасает. Лицензия, README, .gitignore и иконка могут остаться.

В IT Reelsmaker 109 файлов, и 71 из них — код: 39 скриптов на Python (транскрипция, нарезка пауз и дублей, звук) и 32 файла TypeScript в наборе для Remotion, которым рисуется графика. Без них плагин превращается в инструкцию без инструментов. С последним коммитом отказ не связан: в версии 1.22.3 мы только разбили один большой файл на модули. Правило не смотрит, что код делает, — от авторов без Verified каталог не берёт никакие файлы кода.

Что такое Verified, портал объясняет одной фразой: Anthropic знает, что ваша организация — реальная компания. И сразу уточняет, что это про то, кто вы, а не проверка ваших плагинов.

Месяц ради зелёной проверки

Чтобы понять, чего стоил этот отказ, нужна хронология. IT Reelsmaker начинался 18 сентября как приватный скилл в моей рабочей папке. 2 октября мы открыли репозиторий и подали плагин в каталог, 6 октября ревьюер Anthropic опубликовал версию 1.6.1 — подробно о самом плагине мы писали в отдельной статье. 7 октября мы запросили публикацию 1.7.1, и этот запрос висит у ревьюера до сих пор. Пока он висит, портал не даёт запросить другую версию: кнопки «Publish update» неактивны, а отменить запрос нечем. Автопубликации у каталога нет — ни одна версия не выходит без ревьюера Anthropic.

После 1.6.1 автоматические проверки прошли 19 версий, вплоть до 1.22.2. Ни одна не дошла до пользователей каталога. Большую часть этого времени мы чистили плагин под сканер. Он отправлял плагин на ручную проверку с пометкой «Uses a credential from the user’s machine», когда находил в плагине и чтение настроек, и отправку данных, — судя по всему, видел в этом передачу ключа. Он требовал объяснить картинку, которую текстовый файл всего лишь называл по имени. Он реагировал на отдельные слова — export, set, env, ws, host, — и мы переименовывали их десятками: export стал stage, set — change.

Обходить сканер мы не стали из принципа. Никаких склеек строк вроде "ex" + "port", только честные правки, после которых код делает то же самое, а сканер больше не находит, к чему придраться. К версиям 1.22.0–1.22.2 проверка показывала «Validation passed» и ноль предупреждений, а вечером 6 ноября 1.22.2 получила отметку «Meets directory policy». За плечами к тому моменту было 144 коммита, 37 релизов и 577 автотестов на Windows, macOS и Linux.

Новое правило к тому моменту уже мелькало. 7 ноября около 00:50 ручная проверка ветки показывала его примечанием «This isn’t refused yet» — пока не отказ. Около часа ночи плановая проверка после слияния отказала 1.22.3.

С чем остались пользователи каталога

Цифры портала на 5 ноября: 12 793 установки, 4 301 активный аккаунт за 28 дней, 8 736 использований за 30 дней, 89-е место в каталоге. 52,6 % новых аккаунтов возвращаются к плагину в течение четырёх недель, ошибок загрузки — 0 % на 1,9 млн загрузок. Почти две трети установок приходят из Claude.ai (65,8 %), остальное поровну делят Claude Code (17,2 %) и Cowork (17 %).

Каталог раздаёт всем этим людям версию 1.6.1 от 6 октября. С 4 ноября портал помечает её как «no longer meets directory policy» — по тому самому правилу про credential, которое мы исправили в 1.22.0, — и тут же пишет, что она продолжает раздаваться. В ней остался и неприятный баг: на Windows каждый рендер оставлял во временной папке копию проекта Remotion и не удалял её. За месяц активного монтажа такие копии могут занять десятки гигабайт. Мы исправили это в 1.16.0, но до пользователей каталога исправление не дошло.

Картина выходит странная. Старая версия остаётся в каталоге с пометкой о несоответствии политике. Версия 1.22.2 вечером 6 ноября прошла все проверки, но так и не опубликована, а следующую каталог уже отклонил.

Ещё два наших плагина под тем же правилом

В конце октября мы подали в каталог ещё два плагина: holographic-memory — общую локальную память для Claude Code и Codex, и agent-dreaming — её ночную ревизию. Подробно о них — в отдельной статье. Ни один из них в каталоге так и не появился.

agent-dreaming — самый показательный случай, потому что кода в нём нет вовсе. В поданных версиях плагин состоял из четырёх файлов: манифест, иконка, скилл на Markdown и hooks.json с двумя хуками на старте сессии. Первый напоминает агенту, сколько вопросов по памяти ждут разбора, второй запускает в фоне ночной проход программы dreamem, которая ставится отдельно. Версии до 0.7.0 получали код REACH_UNKNOWN: описание скилла было невалидным YAML из-за двоеточия внутри строки — Claude Code такое прощает, каталог нет. 5 ноября исправленная 0.7.1, а за ней 0.7.2 прошли автоматическую проверку без предупреждений и встали в очередь к ревьюеру. В тот же день у 0.7.2 появилось примечание: позже командные хуки будут принимать только от Verified-организаций, а версию, которая к тому моменту не вышла, оценят заново. Около 6 ноября её отклонили — без нового скана, по новому правилу. Версия, прошедшая проверку по прежним правилам, стала непроходной, пока ждала ревьюера.

Вариантов было два: перенести хуки в саму программу, чтобы она прописывала их в настройки Claude Code при установке, или убрать хуки совсем. Первый легко принять за обход правила, поэтому 7 ноября мы выбрали второй. Теперь плагин — три файла: манифест, иконка и скилл, ни кода, ни хуков. Ночной проход запускает ежедневная задача операционной системы, её ставит команда dreamem install claude-code. На Windows это Планировщик заданий, который догоняет пропущенный запуск после сна, на macOS и Linux команда выдаёт готовые файлы для launchd или systemd. Напоминания о вопросах в начале сессии больше нет. Скилл /agent-dreaming:dream работает как раньше и, если ночной проход давно не запускался, предлагает поставить задачу — только после «да» человека. У Codex и Antigravity хуки остались: программа прописывает их в настройки этих агентов, а правило каталога Claude их не касается.

Версия 0.8.0 без хуков прошла автоматическую проверку и проверку политики без предупреждений, и заявка снова ушла к ревьюеру. Живой версии в каталоге пока нет. По дороге сканер успел споткнуться ещё раз: в первом варианте скилла подпись pass starts from: рядом со ссылкой на документацию он принял за чтение пароля. После того как подпись стала nightly run:, проверка прошла чисто.

У holographic-memory все версии, от 0.9.0 до 0.11.0, ушли на ручную проверку. Без кода этот плагин не сможет сам обеспечивать работу памяти. Факты лежат в локальной базе SQLite, один хук перед каждым сообщением подставляет в разговор относящиеся к нему факты, второй делает то же в начале сессии, а локальный MCP-сервер — программа, через которую агент обращается к памяти, — даёт ему 23 инструмента. Движок — 37 файлов на Python, рядом 89 файлов тестов и словари для 18 языков.

5 ноября после обеда портал показывал у 0.11.0 два примечания «This isn’t refused yet» — про командные хуки и локальные MCP-серверы, — а 6 ноября они стали отказом. Портал добавляет, что смена типа хука не поможет, а MCP-сервер можно оставить, только если Claude Code подключается к нему по публичному адресу. Памяти, которая по замыслу живёт на компьютере пользователя, это не подходит. Правило про файлы кода 0.11.0 не застала: её сканировали 5 ноября. Вероятно, следующую версию отклонят и за Python, но это наш вывод, а не ответ портала.

Находки сканера у holographic-memory хорошо показывают, как он читает. Среди них были тестовые файлы фильтра секретов, а отдельный ложный сигнал «Uses a credential from the user’s machine» получался из немецкого слова «Pass» в словаре и адреса в папке плагина — в наших пробах хватало даже локального 127.0.0.1. Маскировать словари и тесты под сканер мы не стали, это решено. Обсуждаем другое: полный плагин оставить в своём маркетплейсе на GitHub, а в каталог отдать справочное издание без кода, которое само ничего не устанавливает. Это тоже не решено, и прежде чем подавать такое издание, хотим спросить Anthropic, допустима ли схема.

Мы не одни

Обсуждений на Reddit и Hacker News я не нашёл, но на GitHub картина собирается быстро. 6 ноября в официальном репозитории Anthropic с плагинами, claude-plugins-official, появился issue #7024. Автор плагина ThreadPage пишет, что примерно с 5 ноября каталог отказывает командным хукам и локальным MCP-серверам от организаций без Verified, документация правило не упоминает, а подать заявку на статус негде. По его словам, на то же правило за неделю наткнулись и другие проекты — и убрали хуки, на которых держались их плагины.

В тот же день под issue отписались ещё трое. У Desktop Steward отказ для локального MCP-сервера, хотя удалённый коннектор того же автора уже одобрен и стоит в каталоге. Автор Mycelium пишет, что его плагин в основном состоит из командных хуков и убрать их не вариант, а как проекту одного человека стать Verified, он так и не нашёл. Фан-моду Cozy Clawd отказали с формулировкой «Mods accepted only from Verified organizations»; авторы пишут, что для них это не срочно — мод можно поставить из их собственного маркетплейса. Ответа Anthropic в issue на 7 ноября нет.

Автор AgenticSeal 7 ноября получил отказ сразу по трём правилам одного семейства: LOCAL_CODE_BIN — файлы в папке bin/, LOCAL_CODE_FILE_TYPE — тот же код, что у нас, и LOCAL_CODE_FRONTMATTER_KEY — ключи в шапке скиллов и агентов вне разрешённого списка, который портал не показывает. Там же он перечисляет ещё троих авторов, получивших эти три кода днём раньше. Каждый из них теперь выпускает для каталога второе издание своего плагина — только на Markdown.

Есть и те, кто перестраивается заранее. В ai-software-factory команду в хуке заменили проверкой-промптом, в pyvar оставили в шапке скиллов только name и description.

Если сложить сообщения авторов, ограничения задели командные хуки, локальные MCP-серверы, моды, папку bin/, ключи шапки и, наконец, любые файлы кода. Сначала портал показывал их предупреждением «пока не отказ», а примерно с 5–7 ноября авторы начали получать отказы.

Что сказано официально

Почти ничего. На страницах публикации в каталоге и чек-листа перед подачей, в политике каталога правила «код только от Verified» нет. Чек-лист, наоборот, исходит из того, что код в плагине бывает: просит класть читаемый исходник, а не сжатый, и отправляет к ревьюеру то, что сканер прочитать не смог. Не совпадают даже списки типов: по чек-листу файл .ico уходит на ручную проверку, а в новом отказе ICO стоит среди разрешённых.

Про сам статус документация говорит, что отдельной заявки на Verified нет и решает Anthropic во время ревью. Описан он только для MCP-коннекторов, и там прямо сказано, что Verified — не аудит безопасности. Объявления о новом правиле, дат изменения политики и сроков появления заявки на этих страницах мы не нашли. Единственный адрес команды каталога в документации — directory@anthropic.com.

Наши выводы — не факты

Дальше то, что думаем мы, а не то, что объявила Anthropic.

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

Обидно другое. Правило появилось без объявления в документации и без пути к статусу: нельзя подать заявку, нельзя узнать критерии, нельзя даже отменить зависший запрос на публикацию. Для компании с юристами это неудобство. Для одиночного разработчика — закрытая дверь. Если правило сохранится, авторам без Verified, видимо, придётся оставлять в каталоге облегчённые версии — инструкции и скиллы без скриптов, хуков и локальных серверов, — а всё, что работает на компьютере пользователя, раздавать в обход каталога.

Когда Verified станет доступен и станет ли вообще, неизвестно.

Что делаем мы

7 ноября я написал в directory@anthropic.com. Просим две вещи: объяснить, как стать Verified и можно ли встать в очередь заранее, и выпустить хотя бы 1.22.2 вместо месячного запроса на 1.7.1. Это дало бы всем, кто уже пользуется плагином, версию, которая убирает за собой временные файлы и проходила политику каталога до нового правила. Ответа пока нет.

Опыт с каталогами у нас не нулевой: в каталоге Hermes Agent лежат четыре наших плагина — hermes-cron, hermes-dreaming, hermes-field-notes и holographic. Там публикация идёт открытым pull request в репозитории Hermes: видно, кто его принял и когда.

Как установить плагин для Claude Code с GitHub

Плагин, которого нет в каталоге или который застрял на ревью, можно поставить из маркетплейса автора на GitHub. Это обычный репозиторий, который Claude Code подключает одной командой: сначала добавляете маркетплейс, потом ставите из него плагин по имени. Так ставится и свежая версия IT Reelsmaker — в нашем маркетплейсе она появляется в день релиза:

claude plugin marketplace add https://github.com/itpartypattaya/reels-montage.git
claude plugin install it-reelsmaker@itparty

Если вы ставили плагин из каталога Claude и монтируете на Windows, версия из маркетплейса особенно важна: в ней исправлена временная папка, которая иначе разрастается от рендера к рендеру. И помните, что установка из чужого маркетплейса — тот же запуск чужого кода, только без проверки каталога: ставьте плагины от авторов, которым доверяете, и загляните в репозиторий, прежде чем подключать.

Что делать автору плагина с кодом

Откройте вкладку версий в портале разработчика. Если у последней проверки есть примечание «This isn’t refused yet», следующая версия, скорее всего, получит отказ.

Дальше есть только компромиссы. Можно разделить плагин на два издания: для каталога — скиллы на Markdown, полное — в своём маркетплейсе; так уже делают авторы из обсуждения AgenticSeal. Можно оставить в каталоге старую версию и раздавать обновления через свой маркетплейс, как сейчас делаем мы. Можно переписать промптами то, что поддаётся, как ai-software-factory заменила хук проверкой-промптом. И стоит написать в directory@anthropic.com: другого канала связи с командой каталога в документации нет.

Как довести плагин до зелёной проверки

Месяц со сканером оставил нам рабочий метод. Пока правило действует, он пригодится Verified-организациям, у которых код в плагине остаётся, и тем, кто готовит для каталога издание без кода: сканер читает и Markdown. Учтите две вещи. Отказ по правилу Verified этими приёмами не снять. А зелёная проверка — ещё не публикация: версию по-прежнему выпускает ревьюер.

Проверяйте ветку, ничего не подавая. В портале разработчика есть форма «Отправить новый», раздел «Пакет плагинов»: поля репозитория, пути к плагину и ветки и кнопка «Проверить». Она прогоняет те же семь проверок, что и настоящая подача, но ничего не отправляет. Рабочий цикл простой: правка, пуш во временную ветку, «Проверить», сравнение с прошлым отчётом. Временную ветку указывайте только в этой форме — поле «Tracked branch or tag» в настройках опубликованного плагина определяет, откуда каталог берёт новые версии. Если в имени ветки есть /, надёжнее заполнить три поля по отдельности, чем вставлять ссылку. И сверяйте, что отчёт про нужный коммит: в нём есть строка вида ветка @ sha.

Сканер ловит слова, а не поведение. Самая упрямая ручная проверка — «Uses a credential from the user’s machine», код MCP_FORWARDS_CREDENTIAL_ENV. Она ставится, когда в плагине есть то, что сканер принял за чтение секрета, и то, что он принял за отправку данных, — даже если это разные, никак не связанные файлы. В наших проверках хватало устранить одну из двух находок. Проще искать ложное «чтение»: ссылки в документации и сетевые методы из проекта не убрать. Случаев, когда ревьюер сам снимал эту проверку, мы не нашли ни у себя, ни у других авторов.

За чтение секрета сканер принимал обращения к переменным окружения (os.environ, getenv, process.env), слова вроде credential, secret, password, access token, private key и .env — даже в комментарии или CHANGELOG — и фразы в Markdown, где слово-триггер стоит прямо перед кодом: «pass text» мы переписали в «give text». Точно, делением, мы подтвердили один триггер в коде — строку "export" как имя команды. За отправку сканер принимал ссылки, слово host и сокращение ws:, похожее на адрес websocket. Остальные находки вычислены по тому, как отчёт сдвигался на следующий файл, — признак сильный, но косвенный.

Портал называет только первый подходящий файл — у нас в порядке путей: CHANGELOG.md, PRIVACY.md, README.md, потом skills/…, внутри по алфавиту. Исправили один — всплывает следующий. Это не новая проблема, а очередь. Если более ранний файл не назван, в этом запуске сканер не нашёл в нём триггера для этой проверки. Когда точечные правки не помогают, выручает деление: в ветке-зонде убираете подозрительный файл целиком или заменяете одну строку и снова жмёте «Проверить». Делить нужно целыми кусками: файл с оборванным посередине Python сканер, похоже, не разбирает и даёт ложное «чисто».

Проверьте, где текст упоминает картинки. Картинки и шрифты сканер пропускает, не читая как код. Но у нас дважды появлялась ручная проверка «Image or font file that the plugin’s code could run» (UNREAD_ASSET_REFERENCED): иконку «называли» маска "@remotion/*" в строке скрипта диагностики и путь к иконке в CHANGELOG. Перенос иконки в другую папку не помог — маска подходила и к ней. Можно не класть картинки в папку плагина вовсе, тогда останется только предупреждение «No icon».

Листинг фиксируется при подаче. Ссылки на документацию, поддержку, политику конфиденциальности и условия использования каталог берёт при первой подаче, а новые версии их не обновляют — синхронизируются только имя и короткое описание. Поэтому предупреждения «Unrecognized field» на эти поля в plugin.json можно снять, удалив поля: живой листинг ссылки сохранит. При новой подаче их придётся ввести заново. Иконку из файлов каталог тоже берёт только при первом сохранении или подаче, у опубликованного плагина её меняют на вкладке Listing кнопкой «Replace».

Перед релизом у нас сложилась одна последовательность. Линтер релиза и claude plugin validate --strict без ошибок, тесты и CI зелёные на всех системах. Ветка релиза до слияния проверена в форме «Отправить новый». В plugin.json поднята version — иначе обновление не увидят, — а CHANGELOG написан без слов-триггеров и путей к своим картинкам. Потом слияние в отслеживаемую ветку, кнопка «Check for new commits» и ожидание скана на вкладке «Версии» — он идёт минуты, а не секунды. Чтобы триггеры не вернулись, под каждый найденный шаблон мы завели правило в собственном линтере релиза. И помните, что сканер меняется: всё это описывает его поведение в начале ноября 2026 года.

Как подать плагин и что проверяет портал, мы разбирали отдельно.

Источники

  1. anthropics/claude-plugins-official #7024: как организации стать Verified
  2. MichaelYcJo/AgenticSeal #1420: отказ каталога по трём правилам LOCAL_CODE
  3. Anthropic: публикация в каталоге
  4. Anthropic: чек-лист перед подачей плагина
  5. Anthropic: политика каталога
  6. Anthropic: что означает Verified у коннекторов
  7. seifsg/ai-software-factory #295: хук заменён проверкой-промптом
  8. fibtecltd/pyvar #415: в скиллах только name и description
  9. IT Reelsmaker: репозиторий и маркетплейс на GitHub
Свои рядомСпросите своих — в чате отвечают быстрее, чем поискОсновной чат IT-тусовки Паттайи: айтишники, диджитал-специалисты и предприниматели, которые уже прошли через то же самое. С июля 2023 года.Вступить в чатНужны батыОбмен рублей и USDT на баты — внутри сообществаIT ОБМЕН работает с 2023 года: рубли с любого банка РФ и по СБП, USDT с Bybit и Binance. Наличные привезут по Паттайе, переведут на тайский счёт или выдадут через банкомат. Курс обновляется каждый день.Условия и курс

Читайте также по теме