claude-code
Плагины Claude Code теперь можно прогнать через тесты
Claude News
claude-codeСамое интересное в новой команде claude plugin eval то, что каждый тестовый кейс прогоняется дважды: с вашим плагином и без него, а в терминале два счёта стоят рядом. Команда приехала в Claude Code 2.1.269 вместе с длинным списком правок, который Anthropic выложила на Github.
Коротко
- claude plugin eval гоняет набор тестов плагина против Claude Code, печатает счёт каждого кейса в терминале и собирает воспроизводимый отчёт в JSON и HTML; ключи описаны в claude plugin eval --help.
- Кроме eval, в релизе: /output-style работает через Remote Control и в headless-сессиях, Bash прикладывает диф изменённых файлов, а потолок одновременных агентов Workflow поднимается в пределах 1–256.
- Прогон стоит денег и времени: по словам ClaudeDevs, evals обращаются к модели, результаты от запуска к запуску плавают, поэтому пилотный заход советуют делать с --runs 1.
Если вы не следили: плагины Claude Code собирают скиллы, субагентов, хуки и MCP-серверы в один пакет, который ставится из маркетплейса, и до сих пор проверять их качество приходилось сторонними средствами. По данным каталога Claude Cowork Guide, в экосистеме уже жил субагент Eval для статистически строгих экспериментов, а Microsoft, судя по её репозиторию на GitHub, выпустила плагин eval-guide с пятиступенчатым циклом оценки агентов. Теперь оценка встроена в сам CLI.
claude plugin eval считает кейс с плагином и без плагина
Порядок такой, как описывает ClaudeDevs: вы пишете тестовые кейсы, прогоняете на них свой плагин или скилл, оцениваете прогоны, а затем повторяете каждый кейс без плагина. В терминале видно счёт обеих версий, рядом лежит HTML-отчёт с полной детализацией, и если аккаунт это поддерживает, отчёт публикуется приватным артефактом.
В списке изменений формулировка суше: набор тестов плагина прогоняется против Claude Code и выдаёт оценённые, воспроизводимые результаты в JSON и HTML.
Смысл второго прогона тот же, что у контрольного образца в дегустации: без него вы знаете только, что вышло вкусно, но не знаете, добавила ли вкуса именно ваша приправа. ClaudeDevs предупреждает, что хуки и MCP-серверы плагина во время оценки работают от вашего имени, поэтому проверять стоит только то, чему вы доверяете.
/output-style доехал до headless, а Workflow до 256 агентов
Команда /output-style [name] показывает список стилей вывода и переключает их, в том числе через Remote Control, в облачных и прочих headless-сессиях. Bash-инструмент, когда сам правит файлы, прикладывает к результату диф изменённых файлов: за это отвечает настройка bashEditDiffEnabled.
Новых переменных окружения четыре. CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS поднимает потолок одновременных агентов Workflow в пределах 1–256 для веерных запусков, упирающихся в инференс. CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS растягивает таймаут запроса /v1/models к LLM-шлюзу, по умолчанию равный трём секундам. OTEL_METRICS_INCLUDE_REPOSITORY размечает метрики и события OpenTelemetry атрибутами vcs.*, а вместе с OTEL_LOG_TOOL_DETAILS коммит-события получают vcs.ref.head.*.
Четвёртая, CLAUDE_CODE_BG_TASKS_REPORT_RUNNING=0, возвращает старое поведение удалённых и headless-сессий, которые сообщали «waiting for your input», пока фоновые агенты ещё работали. Спиннер теперь подсказывает /focus, скиллы из claude.ai в облачных сессиях зовутся anthropic-skills:<name>, а /ultrareview --post публикует комментарий к PR сразу и печатает ссылку, не поднимая для этого вторую облачную сессию.
Правило deny с восклицательным знаком выходило за пределы своего файла
Правило deny или ask, начинающееся с !, применялось шире того источника настроек, который его записал; теперь оно действует только внутри своего источника, а голое отрицание ! игнорируется. Отдельно закрыли обход через Bash: правила Edit() и проверка пути записи не касались файла, который пишет команда tee, а разрешение Bash(tee:*) перестало покрывать цели за пределами рабочих каталогов.
Архивы плагинов, распакованные для сессии, читались другими локальными пользователями, распакованные файлы сохраняли из архива биты записи для всех, а устаревшие файлы переживали повторную распаковку. Все три случая починили.
Из того же ряда: запрос согласия plugin headersHelper показывал путь URL так, что его можно было принять за другой хост; диалог одобрения managed settings не называл коллектор для gRPC-эндпоинта телеметрии, заданного без схемы; в permission_denials при --output-format stream-json не попадали вызовы Read, Edit и Write, заблокированные правилом deny с привязкой к пути.
Кеш промпта, клавиши F1 и карта субагентов в VSCode
Кеш промпта чинили в трёх местах: он частично сбрасывался на ходе после того, как ответ обрезали по лимиту выходных токенов и автоматически продолжили; возобновление сессии после прерывания Claude на полумысли меняло то, как пересылался ранний контекст; в облачных сессиях перед первым запросом стали коротко ждать конфигурацию сервера.
В терминалах вернули F1, F2 и F4 в kitty-протоколе, Delete в st, Alt со стрелками в rxvt-unicode и Shift с пунктуацией в WezTerm: всё это сломалось в 2.1.247. Терминалы, отвечающие на kitty-запрос клавиатуры, включая foot и Alacritty 0.16+, получили Shift+Enter и сочетания с Ctrl+Shift по SSH.
В VSCode плашка «N agents» в футере открывает карту субагентов с карточками, кнопкой Stop agent и транскриптами только для чтения, а в меню команд появились диалоги Hooks и Permission rules; управляемые, плагинные и сессионные правила там доступны лишь на чтение.
В облачных сессиях сообщение из очереди, которое Claude ещё не прочитал, возвращается в поле ввода по Esc или стрелке вверх. В Slack Claude перестал молча отвечать запасной моделью при переключении на модель, не включённую в организации, и говорит, что её может включить админ.
Пределы Anthropic и ClaudeDevs называют сами: evals обращаются к модели, тратят токены и дают разные результаты от прогона к прогону, а публикация отчёта приватным артефактом обещана только аккаунтам, которые это поддерживают, без списка, каким именно. Странно, на наш взгляд, что инструмент, придуманный для проверки чужого плагина, требует запускать его хуки и MCP-серверы от вашего имени, то есть доверять ему ещё до оценки.
Пока Desktop не подхватит 2.1.269
Организационные плагины, включённые через managed settings, теперь грузятся в headless-сессиях и в Claude Desktop, но на Desktop только после того, как он соберётся с этой версией CLI; когда это случится, в списке изменений не сказано, и подхватываются такие плагины со следующей сессии. Тем, кто хочет попробовать eval прямо сейчас, нужен claude update.
Комментарии
Пока никто не написал. Будьте первым.
Присоединяйтесь к разговору
Войдите через Google, чтобы оставить комментарий. Имя и аватар подставятся из вашего профиля Google, а комментарий появится после модерации.
Из Google мы используем только имя и аватар. Почту не сохраняем.
