Skip to main content
Claude Code может предложить установку plugin из marketplace вашей организации, когда сеанс пользователя совпадает с сигналами, которые вы определяете для этого plugin. Сигналы включают рабочий каталог, файлы, которые прочитал Claude, и команды, которые запустил Claude. Вы определяете их, добавляя блок relevance к записи plugin в marketplace.json. Оператор marketplace пишет записи relevance. Затем администратор разрешает marketplace в управляемых параметрах. Пользователи не видят предложений из marketplace, пока он не будет разрешен.
Эти случаи рассматриваются на других страницах:
Начните с разделов для вашей роли:

Понимание того, как работает relevance plugin

Каждая запись plugin в marketplace.json может включать объект relevance. Объект называет тему и один или несколько сигналов. Сигнал — это шаблон, который Claude Code проверяет в текущем сеансе, например рабочий каталог или файлы, которые прочитал Claude. Сопоставление сигналов происходит локально на машине пользователя и не добавляет сетевой трафик. Claude Code не сообщает, какие сигналы совпали или их значения Anthropic или оператору marketplace. Когда сигнал совпадает и plugin еще не установлен, Claude Code предлагает plugin в этих местах:
  • Spinner tip: сообщение с командой /plugin install появляется под спиннером, пока Claude отвечает.
  • Уведомление при запуске сеанса: если сигнал cwd совпадает с рабочим каталогом, однострочное уведомление появляется перед тем, как пользователь отправит первое сообщение.
  • Вкладка /plugin Discover: plugin закреплен в верхней части списка Discover.
Предпросмотр того, что видит пользователь показывает точный текст каждого и как часто они повторяются. Claude Code никогда не устанавливает plugin автоматически. Пользователь всегда подтверждает. Spinner tip и уведомление при запуске сеанса оба перестают появляться, когда пользователь или проект устанавливает spinnerTipsEnabled на false, или когда spinnerTipsOverride с excludeDefault заменяет встроенные советы. Закрепление на вкладке Discover не зависит от обоих параметров.

Добавление relevance к записи plugin

Добавьте объект relevance к записи plugin в вашем marketplace.json. Следующий пример объявляет, что plugin terraform-helpers актуален, когда Claude читает файл .tf или запускает terraform:
Пока ни один из его сигналов не совпадает, plugin сохраняет свою нормальную позицию в списке Discover и не появляется как spinner tip. Чтобы проверить блок перед публикацией, проверьте ваш marketplace.

Справочник полей

Объект relevance и его вложенный объект signals принимают поля в следующих таблицах. Более старые клиенты по-прежнему загружают marketplace, который использует поля relevance, которые они не распознают, потому что неизвестные поля под relevance и relevance.signals игнорируются во время загрузки. Распознанное поле, значение которого превышает его лимит в справочнике полей, делает недействительной всю запись plugin, и пользователи не могут установить этот plugin из marketplace, пока вы его не исправите; claude plugin validate сообщает те же лимиты.

relevance

topic часто является названием продукта, например Terraform. Используйте домен, такой как design, когда имя plugin не звучит естественно как тема.

relevance.signals

Объект signals принимает следующие поля. Сигналы filesRead и manifestDeps также совпадают с файлами, которые Claude написал или отредактировал в этом сеансе, и с файлами памяти CLAUDE.md проекта, загруженными автоматически.

Сопоставление рабочего каталога

cwd — единственный сигнал, который может совпадать при запуске сеанса, до того как пользователь отправит первое сообщение. Claude Code сопоставляет каждый шаблон cwd следующим образом:
  • Шаблон сопоставляется с рабочим каталогом как абсолютный путь. Когда сеанс находится внутри git-репозитория, он также сопоставляется с путем рабочего каталога относительно корня репозитория.
  • Сопоставление нормализовано прямой косой чертой и без учета регистра.
  • Каждый шаблон совпадает с самим каталогом и всем, что находится под ним, поэтому infra, infra/ и infra/** ведут себя одинаково.

Сопоставление имен команд

Claude Code записывает одно имя команды для каждой shell-команды, которую запускает Claude: первый токен после любых назначений переменных окружения в начале и sudo. Составные команды вносят только свою ведущую команду, поэтому cd infra && terraform plan записывает cd, а не terraform.

Сопоставление зависимостей манифеста

Каждая запись manifestDeps объединяет две строки источника JavaScript RegExp:
  • file: сопоставляется без учета регистра с путем файла манифеста. Путь обычно абсолютный, поэтому привяжите шаблон в конце, а не в начале. Пути не нормализуются по разделителям для этого сигнала, поэтому пути Windows используют обратные косые черты.
  • pattern: сопоставляется с учетом регистра с содержимым этого файла.
Следующий пример использует manifestDeps для предложения вашего plugin после того, как Claude прочитал package.json, который зависит от npm-пакета вашего SDK, названного здесь your-sdk.
В этом примере шаблон file использует [/\\\\], чтобы он совпадал как с прямой косой чертой, так и с обратной косой чертой в разделителях пути, и \\., чтобы точка была буквальной. В JSON каждая обратная косая черта в регулярном выражении написана дважды.

Проверка вашего marketplace

В вашей оболочке запустите claude plugin validate для каталога вашего marketplace, чтобы проверить блок relevance перед публикацией:
Валидатор сообщает об ошибках и предупреждениях в блоке relevance, включая следующие:
  • Сообщает об неизвестных ключах под relevance и relevance.signals как предупреждения
  • Отмечает значение relevance, которое не является объектом
  • Отклоняет запись signals.hosts, которая включает схему, порт или путь
Каждый результат выводится с путем поля, которое его касается, и вывод заканчивается на Validation passed, Validation passed with warnings или Validation failed.

Включение предложений в управляемых параметрах

Пользователи не видят предложений из marketplace, пока администратор не разрешит его в управляемых параметрах, даже когда его marketplace.json объявляет relevance. Чтобы разрешить marketplace, отредактируйте ваши управляемые параметры следующим образом:
  • Добавьте имя marketplace в pluginSuggestionMarketplaces.
  • Для любого marketplace, отличного от официального marketplace Anthropic, также объявите источник marketplace, либо как запись этого имени в extraKnownMarketplaces, либо как запись в strictKnownMarketplaces.
На машине, где marketplace не зарегистрирован или зарегистрирован под разрешенным именем из другого источника, предложения из него не появляются. Проверка источника предотвращает регистрацию несвязанного источника под разрешенным именем для получения предложений его plugins по всей вашей организации. Следующий managed-settings.json регистрирует marketplace организации из GitHub-репозитория и включает его предложения:
Имя официального marketplace может регистрироваться только из официального источника Anthropic, поэтому ему не требуется объявление источника. Для официального marketplace разрешите только имя:

Предпросмотр того, что видит пользователь

Когда сигнал relevance plugin совпадает во время сеанса, совет под спиннером читается:
Когда сигнал cwd совпадает при запуске сеанса, однострочное уведомление читается:
На вкладке /plugin Discover plugin закреплен над другими результатами с аннотацией, которая называет совпадающий сигнал, такой как suggested for this directory или suggested for terraform commands. Claude Code ограничивает, как часто он предлагает данный plugin:
  • Предложение появляется максимум один раз каждые три сеанса в совокупности spinner tip и уведомления при запуске сеанса.
  • Уведомление при запуске сеанса перестает появляться после того, как spinner tip и уведомление показали plugin в совокупности два раза.
  • Ни spinner tip, ни уведомление при запуске сеанса не повторяются после установки plugin.
  • Вкладка Discover закрепляет plugin в первый раз, когда пользователь открывает вкладку, пока сигналы plugin совпадают. Claude Code записывает это в ~/.claude.json, поэтому каждый раз, когда пользователь позже открывает /plugin на этой машине, plugin появляется в нормальном порядке.

См. также