Плагины Claude Code теперь можно прогнать через тесты

Anthropic добавила в Claude Code 2.1.269 команду claude plugin eval. Она прогоняет набор тестов плагина и показывает, что плагин даёт по сравнению с Claude Code без него. Релиз вышел 11 сентября. Помимо eval, в нём много исправлений в правилах доступа, работе с кэшем промпта и фоновых агентах.
В списке изменений на Github новая команда описана одной строкой: набор тестов плагина запускается против Claude Code, а на выходе получаются оценённые воспроизводимые результаты и отчёт в JSON и HTML. Подробнее порядок работы расписали в аккаунте ClaudeDevs в X. Автор плагина пишет тестовые случаи, прогоняет на них плагин или отдельный навык и оценивает прогоны. Потом каждый случай запускается ещё раз, уже без плагина. В терминале видна оценка каждого случая в обоих вариантах, а полная детализация уходит в HTML-отчёт. Если аккаунт это поддерживает, отчёт публикуется ещё и как приватный артефакт.
Самое полезное в этой схеме - контрольный прогон без плагина, а не сами оценки: он отвечает на вопрос, ради которого плагин вообще ставят. В анонсе так и сказано: «посмотрите, какую ценность добавляет ваш плагин и не нужно ли его доработать».
Сделаны и две оговорки. В списке изменений результаты названы воспроизводимыми, но в ClaudeDevs уточняют, что eval обращается к модели, поэтому тратит токены, и результаты от запуска к запуску различаются. Кроме того, хуки и MCP-серверы плагина при оценке работают от вашего имени, так что прогонять стоит только плагины, которым вы доверяете. Такое же предупреждение есть в официальном каталоге плагинов Anthropic: компания пишет, что не контролирует, какие MCP-серверы, файлы и другое ПО попадают в плагины, и не может проверить, что они работают как задумано и не изменятся потом.
Плагинов касается и одно из исправлений безопасности. Архивы, которые Claude Code распаковывал для сессии, могли читать другие локальные пользователи. Распакованные файлы сохраняли из архива право записи для всех, а при повторной распаковке оставались устаревшие файлы. Отдельно поправили окно согласия для headersHelper: путь в показанном URL можно было принять за другой хост.
Ещё две правки закрывают обходы правил доступа. Запрещающие правила Edit() и проверка пути записи не действовали на файл, который пишет команда tee через Bash. Теперь действуют, а разрешающее правило Bash(tee:*) перестало покрывать файлы за пределами рабочих каталогов. Правило deny или ask, начинающееся с !, срабатывало и за пределами того источника настроек, где его записали. Теперь оно ограничено своим источником, а одиночное отрицание ! игнорируется. Тем, кто разбирает вывод --output-format stream-json, стоит учесть ещё одно исправление: в permission_denials раньше не попадали вызовы Read, Edit и Write, которые заблокировало правило deny по пути.
Кэш промпта чинили в трёх местах. Он частично сбрасывался на следующем ходу, если ответ обрезался по лимиту выходных токенов и затем автоматически продолжался. Возобновление сессии, прерванной посреди рассуждения, могло изменить то, как заново отправляется ранний контекст. А в облачных сессиях Claude Code теперь перед первым запросом ненадолго ждёт конфигурацию с сервера, чтобы не промахиваться мимо кэша. Рядом исправили зависание сессий на «Prompt is too long»: такое бывало, когда автокомпактизации нечего было сжать, потому что в истории не находилось ни одного законченного раннего обмена. Чаще всего это случалось в сессиях Agent SDK с очень большими промптами. Прогоны /goal после ошибок API, обрывов сети или упора в лимит токенов раньше молча вставали. Теперь цель перезапускается с нарастающей паузой либо останавливается и объясняет причину, в том числе ждёт, пока сбросится лимит использования.
Для параллельной работы появилась переменная CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS. Она поднимает лимит одновременных агентов на один запуск инструмента Workflow, допустимые значения 1-256. Рассчитана она на веерные запуски, которые упираются в инференс. Удалённые и headless-сессии перестали сообщать «waiting for your input», пока фоновые агенты ещё работают. Прежнее поведение возвращает CLAUDE_CODE_BG_TASKS_REPORT_RUNNING=0. В расширении для VSCode плашка «N agents» в нижней панели открывает карту субагентов сессии с карточкой на каждого, кнопкой Stop agent и транскриптами только для чтения.
В том же расширении появились два диалога, которые раньше заменяла ручная правка JSON. Hooks показывает хуки и даёт добавлять, менять и удалять их в пользовательских, проектных и локальных настройках. Permission rules делает то же с правилами доступа. Управляемые (managed) хуки и правила, а также хуки плагинов и правила из параметров запуска и текущей сессии там доступны только для чтения.
Из остального:
- настройка
bashEditDiffEnabled: если Bash сам правит файлы, к результату инструмента прикладывается диф изменённых файлов; /output-style [name]показывает и переключает стили вывода, в том числе через Remote Control и в облачных и прочих headless-сессиях;OTEL_METRICS_INCLUDE_REPOSITORYдобавляет к метрикам и событиям OpenTelemetry атрибуты репозиторияvcs.*;CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MSувеличивает таймаут запроса/v1/modelsк LLM-шлюзу, по умолчанию он 3 секунды;- после компактизации Claude получает текущий git status, а не тот, что был в начале сессии;
- напоминание об атрибуции в коммитах и пул-реквестах перестало перекрывать запрет на неё в CLAUDE.md или памяти, но строки из managed settings по-прежнему действуют.
Одна правка касается /btw: в ответах на побочные вопросы встречались выдуманные вызовы инструментов вместе с их выводом. Теперь модели прямо запрещено их писать, а если такой вызов всё же появится, он помечается как невыполненный.
Обновиться можно командой claude update, справка по новой команде открывается через claude plugin eval --help. Перед полным прогоном в ClaudeDevs советуют сделать пробный с --runs 1.
Дальше
Бывшие исследователи Anthropic и Google уходят в METR
«Взрослых в комнате нет. Люди стараются, но спасать нас никто не придёт», сказал NBC News Джош Энгельс, ушедший из Google. Вместе с Джо Бентоном, экс-руководителем команды безопасности Anthropic, он переходит в METR.
Читайте также
- Шлюз узнает, какой агент Claude Code прислал запрос
- Claude Code 2.1.268 синхронизирует тарифы шлюза
- Claude Code выдаёт домены отдельно каждой команде
- Claude Code 2.1.312 перестал затирать большие CLAUDE.md
- Claude Code 2.1.311: сжатие вместо остановки и ultrathink
- Claude Code 2.1.310 открыл Monitor для Bedrock и Vertex
Комментарии
Пока никто не написал. Будьте первым.
Присоединяйтесь к разговору
Войдите, чтобы оставить комментарий. Он появится после модерации.

