FrontierCode — новый бенчмарк от Cognition для оценки того, насколько хорошо ИИ-модели пишут код, который реально примут в продакшн. Его делали вместе с мейнтейнерами 36 флагманских open-source репозиториев — например, Celery (28.6k звёзд), Budibase (28k), uppy (30.8k), Mattermost (37k). Каждый из них потратил больше 40 часов на одну задачу, проходя несколько циклов итераций с инженерами Cognition. Их опыт превратили в конкретные критерии оценки: если PR соответствует этим критериям, его бы действительно приняли.
FrontierCode проверяет код по шести осям: поведенческая корректность, безопасность регрессий (ничего не ломается), механическая чистота (сборка, линтер, стиль), корректность тестов (написанные агентом тесты действительно проверяют баг), объём изменений (трогает только нужное) и качество кода (стиль, паттерны, читаемость). Для каждой оси есть свой метод проверки — от классических unit-тестов до LLM-проверок. Критерии делятся на блокеры (жёсткие требования для мёржа) и не-блокеры (сигналы качества, не обязательные для слияния). Если решение проходит все блокеры — оно сдано, иначе ноль.
В бенчмарке три новых метода оценки: - Reverse-Classical: запускает тесты, написанные агентом, на оригинальной (сломанной) версии кода — они должны падать. Так проверяется, что тесты осмысленны. - Code Scope: автоматическая проверка границ изменений — только нужные файлы, лимит строк и строк кода, семантическая локальность (например, изменение внутри одной функции). - Adaptive Classical Grading: для открытых задач, где много правильных решений, LLM адаптирует тесты или код приложения под конкретную реализацию агента, чтобы прогнать детерминированные тесты.
Пример задачи — на репозитории jsonschema (C++). Нужно реализовать функцию LOG_WARNING() для вывода предупреждений в stderr и заменить все случаи warning: на её вызов. Claude Opus 4.8 справился, но в многорочных сообщениях он смешивал LOG_WARNING() и std::cerr, что неидиоматично и может сломаться при изменении реализации. Бенчмарк это отлавливает.
Процесс создания рубрик — многоэтапный: дизайн, hack report (попытки обмануть критерии как ленивый или злой программист), калибровка (автор пишет четыре решения с оценками от 0% до 100%), ревью в паре с лидом и финальная проверка от Cognition Research. Случайные задачи решают сами исследователи, чтобы убедиться, что инструкции ясны. Циклы повторяются несколько раз, чтобы получить сложные, устойчивые к обману задачи.