Помогает проверять поведение плагинов Claude Code, запуская их в отдельной песочнице.
- Находит eval-тесты, которые ничего не проверяют, ещё до платного прогона моделью.
- Показывает ловушки критериев, из-за которых результат не связан с поведением плагина.
- Помогает найти причину неудачного прогона, не ослабляя саму проверку.
- Ведёт отчёты о прогонах, на которые можно ссылаться при выпуске.
Поведенческая проверка плагинов для Claude Code: скилл ведёт работу от выбора вида проверки до чтения упавшего прогона и записи отчёта. При нём справочники по каждому шагу и утилита, которая читает eval-набор без расхода токенов.
| Компонент | Что даёт |
|---|---|
скилл plugin-testing |
порядок работы: что проверять структурно, что поведением, как собрать кейс, как прочитать красный прогон |
check_eval_suite.py |
разбирает готовый набор и называет состав, при котором прогон ничего не доказывает |
Справочники скилла:
| Справочник | О чём |
|---|---|
validate |
claude plugin validate и его измеренные границы |
graders |
шесть видов критериев и их ловушки |
wrapper |
обёртка прогона: почему нулевого кода выхода недостаточно |
failures |
что делать, когда прогон упал |
deterministic-routing |
когда формулировки не держат и нужен хук |
early-access |
гейт раннего доступа к plugin eval |
report |
что обязан содержать отчёт о прогоне |
Скилл включается по своему описанию, когда речь о проверке плагина: собрать поведенческий кейс, добавить критерий, прогнать набор, понять, почему скилл не включается на живом запросе, разобрать упавший прогон, поставить гейт перед выпуском. Точные пусковые формулировки живут в самом скилле, страница их не повторяет.
python3 "${CLAUDE_PLUGIN_ROOT}/skills/plugin-testing/scripts/check_eval_suite.py" \
plugins/<плагин>Находит состав, при котором прогон ничего не доказывает:
| Замечание | Что происходит без утилиты |
|---|---|
| кейс без критериев | CLI отклоняет кейс на разборе: graders: Required |
| неизвестный вид критерия | CLI отклоняет: Invalid discriminator value |
| дублирующееся имя критерия | CLI отклоняет: duplicate grader name |
max: 0 без min: 0 |
критерий не проходит никогда: min по умолчанию 1 |
| запрет инструмента, который кейс не запрашивает | критерий проходит без доказательства: вызвать нечего |
Отказ на разборе CLI даёт и сам, но в момент прогона; утилита даёт его раньше и
бесплатно. Про max: 0 и запрет невыданного инструмента CLI молчит — там прогон
оплачивается и даёт цвет, не связанный с поведением плагина.
Коды выхода: 0 — замечаний нет, 1 — есть, 64 — неверный вызов. Пустой набор
тоже замечание.
Утилита читает кейсы вида prompt.md на верхнем уровне каталога
<плагин>/evals: вложенный кейс, кейс целиком в case.yaml и каталог из ключа
experimental.evals она не видит, хотя CLI принимает всё это. Запрет инструмента сверяет с allowed_tools кейса — инструмент,
выданный скиллу его собственным frontmatter, в расчёт не идёт.
- Структурную проверку плагина скилл на себя не берёт: её делает
claude plugin validate --strict— бесплатно и детерминированно. plugin evalплатный, а доступ открывается по организации: при закрытом гейте команда печатаетplugin eval is currently in early accessи выходит с кодом1. Поэтому в непрерывной сборке её нет.- Своего eval-набора у плагина нет: он поставляет методику и утилиту, поэтому срабатывание собственного скилла ничем не измерено. Когда набор обязателен — принятые решения. Утилита покрыта обычными тестами: девять случаев, среди них каждое замечание из таблицы выше.
Утверждения об инструментах на этой странице сняты с Claude Code 2.1.241
23.08.2026. plugin eval в раннем доступе и без публичной документации: между
версиями меняются и опции, и формат результата —
CHANGELOG Claude Code.
- Проверка плагинов — правила, общие для всех плагинов репозитория.
- Связи между плагинами — откуда взялась методика и с чем плагин связан.