Skip to content

Latest commit

 

History

History
101 lines (77 loc) · 6.79 KB

File metadata and controls

101 lines (77 loc) · 6.79 KB

plugin-testing

Помогает проверять поведение плагинов 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.

Куда дальше