Перейти к содержанию

Claude Code

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

4 мин чтения

Текст написан ИИ-моделью по источникам, на которые ведут ссылки, и сверен с ними второй моделью. Как мы работаем

Всё о теме: 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

Бывшие исследователи Anthropic и Google уходят в METR

«Взрослых в комнате нет. Люди стараются, но спасать нас никто не придёт», сказал NBC News Джош Энгельс, ушедший из Google. Вместе с Джо Бентоном, экс-руководителем команды безопасности Anthropic, он переходит в METR.

Пока никто не написал. Будьте первым.

Присоединяйтесь к разговору

Войдите, чтобы оставить комментарий. Он появится после модерации.