Живые оценки skills¶
embraion eval skills run --suite evals/skills/code-organization.json --host codex --route-class substantial --attempts 2 --output build/skill-evals.json запускает реальные сессии хоста. Требуется установленный CLI хоста с авторизацией. Команда не устанавливает агентов, skills или зависимости.
Поддерживаются три хоста:
codexзапускаетcodex execи кладёт skills из набора в.agents/skills/<id>/.claude-codeзапускаетclaude -pс выводом stream-json, загружает только настройки проекта и ни одного MCP-сервера, разрешает правки файлов внутри временного проекта и отклоняет всё, что требует разрешения. Skills кладутся в.claude/skills/<id>/. Effort принимаетlow,medium,high,xhighиmax.portableзапускает любой CLI агента, переданный через--host-commandкак JSON-массив аргументов, например--host-command '["my-agent", "run"]'. Запрос приходит на stdin, процесс работает во временном проекте, поэтому относительный путь к исполняемому файлу разрешается от него; указывайте абсолютный путь или имя изPATH. Skills кладутся в--skill-dir(по умолчанию.agents/skills). Наблюдаются только код выхода и итоговые файлы, поэтому вызовы инструментов, токены иtrigger-evidenceостаются неподтверждёнными, а--modelи--effortотклоняются: задайте их в самой команде.
--host-binary выбирает CLI для codex или claude-code, если он не доступен в PATH под обычным именем; хост portable его отклоняет. На любом хосте вывод больше 2 МБ в stdout или stderr завершает сессию со статусом output-limit. Поле evidence-kind в отчёте называет хост (live-codex-subprocess, live-claude-code-subprocess, live-portable-subprocess).
Формат набора задан в schemas/skill-eval.schema.json. Каждый кейс содержит запрос, каталог исходных файлов, тип (positive или negative) и декларативные проверки файлов. Набор может включать несколько skills. Для каждого указывают ID и каталог кандидата относительно корня EmbrAIon; внутри должен быть SKILL.md. Необязательная версия previous должна быть указана для каждого skill в наборе. До запуска проверяются пути, ссылки, размер исходных данных и повторяющиеся ID. Скрипты оценивания из набора не выполняются.
Для каждого кейса и попытки создаётся новая копия одних и тех же исходных файлов во временном проекте. Затем запускаются baseline без skills из набора и candidate с каталогами skills в каталоге skills хоста; при наличии добавляется previous. Исходные файлы и skills проверяются на изменение. Каждая попытка использует новую сессию. Сравнивайте варианты одного кейса и одной попытки. Отчёт содержит SHA-256 идентификаторы набора, кейсов, исходных файлов и skills. Сырые запросы, исходный код, сообщения модели и вывод инструментов не сохраняются. Временные каталоги удаляются после запуска.
behavior-passed требует успешного завершения хоста и прохождения всех проверок. Отдельно записываются статус хоста, ограниченное время, наблюдаемое число вызовов инструментов и токены, если хост их сообщает. Токены считаются по правилам самого хоста, например для кэшированного ввода, поэтому сравнивайте их только между запусками на одном хосте. Ошибка хоста или неверный поток событий исключает успешный результат, даже если файлы совпали. Поле trigger-evidence имеет другой смысл: read-observed означает, что событие хоста показало успешное чтение SKILL.md (команда Codex или вызов Skill либо Read в Claude Code без ошибки в результате); unverified означает отсутствие такого подтверждения в узком потоке событий. Это не доказательство того, что skill не загружался, а чтение само по себе не доказывает влияние skill на результат. Отрицательные кейсы проверяют границы изменений при несвязанных задачах; отсутствие срабатывания остаётся неподтверждённым без соответствующей телеметрии хоста.
Сопоставляйте baseline, candidate и previous по кейсам и повторным попыткам. Успех кандидата сам по себе не доказывает улучшение: baseline тоже может решить задачу. Примерный набор включает добавление класса на английском и русском языках и несвязанные правки документации. Его исходные файлы намеренно малы. Для широких выводов добавляйте реальные ограничения проекта и характерные ошибки. На результат влияют модель, effort, версия хоста, окружающие инструкции и случайность генерации. Runner передаёт выбранные настройки хосту, но не проверяет внутренний выбор модели. Перед передачей запросов или исходных файлов провайдеру сохраняйте обычные проверки приватности, разрешений, маршрутизации и безопасности.
CLI разрешает маршрут worker проекта перед запуском сессий. --path выбирает проект, --route-class — класс задачи, --data — классификацию данных. Необязательные --model и --effort должны совпадать с настроенным маршрутом; только host-default принимает указанные настройки. Неподдерживаемые provider или дополнительные options блокируют запуск.
Проверка мейнтейнера 2026-10-03¶
Runner версии 0.20 запускался с английскими/русскими cases и двумя попытками. Все 16 native subprocess сообщили сбой host до наблюдаемого выполнения инструментов: сначала managed environment запрещал запись служебного состояния CLI. Отдельный native probe с необходимым доступом записи достиг provider, который отклонил настроенный authentication token с HTTP 401. Ни одна настоящая задача не завершилась: качество skill, triggering и улучшение относительно baseline остаются непроверенными. Fake-host unit tests проверяют механизм runner и не подтверждают поведенческое улучшение. Повторите live suite в авторизованном локальном Codex перед заявлениями о семантических результатах.
Проверка мейнтейнера 2026-10-06¶
Примерный набор запускался по одной попытке на кейс в Claude Code 2.1.290 с моделью по умолчанию: один раз с --host claude-code и один раз с --host portable вокруг того же CLI (--skill-dir .claude/skills). Все 16 сессий завершились и прошли проверки файлов, поэтому baseline и candidate совпали во всех кейсах: задачи набора настолько простые, что базовая модель решает их без skill. С claude-code одна сессия candidate (добавление класса на русском) показала успешную загрузку skill; запуск через portable загрузку не наблюдает. Это подтверждает работу runner на обоих хостах, но не улучшение поведения благодаря skill.