Cursor · Grok 4.6 High

Тир B

Cursor · xAI · прогон 06.09.2026

Работает с первого прогона: узнаваемый первый экран и настоящая D7-архитектура с гонкой на уровне БД, но лендинг после первого экрана и английские заголовки референса тянут визуал вниз.

71.7
Оценка · Визуал 65.5 · Бэкенд 78.5

Выбранный референс

antaraspawellness.com/

«живой бьюти-ретрит с узнаваемой композицией — полноэкранное фото-хиро, гигантский трекинг serif-вордмарк, оливковая арка-манифест и вертикальная пилюля Menu. Палитра #425e40 + крем, пара шрифтов Fraunces / Manrope, приёмы параллакса и появления текста совпадают с задачей «студия + запись», а не с витриной e-commerce.»

Агент выбирает референс сам и обязан воспроизвести его узнаваемо; это главный критерий среза «Визуал». Из SOLUTION.md, секция Reference.

Баллы по критериям

Визуал 65.5 / 100
Критерий Модель Автор Итог
Референс: выбор и следование
22 25 23.5 / 35
Композиция и адаптив
16 20 18 / 25
Тексты
9 5 7 / 15
Код вёрстки
11 8 9.5 / 15
SOLUTION.md
8 7 7.5 / 10
Бэкенд 78.5 / 100
Критерий Модель Автор Итог
Архитектура и битриксовость
23 20 21.5 / 30
Данные: ORM, гонка за слот, воспроизводимость
19 17 18 / 20
Ошибки и безопасность
13 12 12.5 / 15
Читаемость
11 12 11.5 / 15
Code-style по AGENTS.md
7 7 7 / 10
SOLUTION.md
8 8 8 / 10

Модель — ревью модели-ревьювера на том же стенде, не зная, чья связка перед ней. Автор — по живому стенду, не читая ревью модели. Итог = среднее.

Вывод

Связка Cursor + Grok 4.6 High довела задачу до рабочего состояния с первого прогона: замечаний не было, форма записи и админка заработали сразу, без единой итерации правок.

Впечатление в визуале решил первый экран. Референс antaraspawellness.com узнаётся сразу: фото, тонкий вордмарк Fraunces, линейка, пилюля Menu и арка, палитра и шрифты совпадают на десктопе и мобильной ширине. Фотографии подобраны к месту, адаптив на хорошем уровне, форма работает с мыши и с клавиатуры без перезагрузки, есть reduced-motion и осмысленные alt. Дальше первого экрана страница расходится с референсом: секции однотонно-оливковые без ритма beige и dark, футер бежевый вместо тёмного, а графический элемент арки наезжает на нижнюю линейку первого экрана и заголовок на всех ширинах. По русскому тексту рассыпаны английские заголовки, дословно взятые у референса. Выбор слота сделан плоской лентой кнопок без дат и группировки по дням, глаза разбегаются; маски телефона нет, стрелки селектов дефолтные, JS написан без библиотеки BX.

В бэкенде решила архитектура. Слои Controller → Service → Repository реальные, репозитории за интерфейсами через ServiceLocator, ошибки идут через Result/Error, почтовое событие на месте. Гонка за слот закрыта уникальным индексом и FOR UPDATE и проверена параллельными запросами. Всё воспроизводится миграциями sprint.migration, включая инфоблоки, наполнение и расписание; админка построена на штатных CAdminList и CAdminFilter с меню и правами модуля, страницы размещены корректно. Что тянет вниз: каталог читается через legacy GetList при выставленном API_CODE, в админ-страницах суперглобалы вместо Request, услуги и мастера тянутся в index.php напрямую вместо компонента, в списке слотов нет постраничной навигации.

Главный плюс: настоящий битриксовый бэкенд, заработавший с первой попытки. Главный минус: визуал после первого экрана и текст, оставшийся «шкуркой» референса.

Комментарий автора

Визуал. Плюсы: в целом всё ровно, довольно старается быть похожим на реф, кликабельно и рабоче. Фотки выбраны хорошие и к месту. Адаптив на довольно хорошем уровне. Минусы: JS без библиотеки BX, в hero графический элемент наезжает на заголовок, стрелки селектов немного дефолтные, много английских вставок в текстах, странный выбор слота — визуально много кнопок, глаза вразбег, нет маски для телефона. Битрикс. Плюсы: всё заработало с первой итерации, архитектура в целом хорошая. В админке страницы размещены корректно, использованы миграции sprint.migration. Минусы: есть проблемы по использованию старого ядра (GetList), проблемы с использованием суперглобалов, в index.php — вызов кода напрямую без компонента.

Из ревью модели

  • [reference] Выбор уместный и амбициозный; хиро, арка-манифест, пилюля Menu, шрифты и палитра узнаются рядом с референсом на обеих ширинах, все 5 приёмов из чек-листа реально есть (reveal, hover cream↔прозрачность, reduced-motion, прелоадер). Но дальше хиро страница расходится: у референса ритм olive → beige (арочное фото) → dark (наклонные карточки treats, гигантский вордмарк) → dark-футер с pill-карточками, у лендинга все секции однотонно-оливковые, а футер бежевый с прямоугольными карточками; трекинг вордмарка 0.08em вместо «размазанного» по всей ширине. На 1440 и 768 арка наезжает на нижнюю линейку хиро и обрезает вордмарк (в референсе линейка целиком над аркой).
  • [composition] Клавиатура: skip-link, Tab по хиро → форме, стрелки в listbox выбирают слот, Esc закрывает меню, фокус уходит на «Закрыть» — всё работает; alt осмысленные; reduced-motion отключает reveal и прелоадер. Минусы: перекрытие хиро аркой и пилюлей на всех трёх ширинах, виджет слотов — плоская лента кнопок «вс 12:00» без дат и группировки по дням (на текущей неделе один день, подпись «31.08 — 06.09»), фикс overflow-x: hidden на 360 как страховка вместо причины.
  • [content] Отзывы живые, различимы по голосу, услуги конкретные (цена, длительность, «без скрытых допов»), оффер сформулирован. Но по русскому лендингу разбросаны английские заголовки, дословно взятые у референса (tagline хиро, Past wisdom / Modern experiences, Step into tranquillity, Treatments/Gallery/Masters, Reach us, Your self-care awaits) — читается как «шкурка» референса, а не как текст студии.
  • [frontend-code] CSS осмысленный: токены, BEM-подобные имена, один файл без мёртвых правил, всё локально (шрифты TTF, картинки, нет внешних ресурсов — проверено по DOM). JS формы читается, состояния (ошибка/успех/сеть/disabled submit) обрабатываются явно, слоты перезапрашиваются после SLOT_TAKEN. Минусы: пустой styles.css, body{overflow-x:hidden} как заплатка, сломанный отступ в обоих boot(), шрифты только TTF без woff2.
  • [solution-doc, visual] Секция Reference — рабочий чек-лист, и всё обещанное на странице есть. Расхождения: после удаления модуля компонент физически удаляется, так что «ошибку модуля» показывать некому; таблица секций обещает «Sanctuary + rounded photo» и «Exclusive treats cards», но бежевой и тёмной секций у лендинга нет.
  • [architecture-d7] Слои реальные: тонкие контроллеры, сервисы с Result/Error, репозитории за интерфейсами через ServiceLocator, почтовое событие, CAdminList/CAdminFilter/menu.php/права модуля, компонент по канону. Что не сделал бы опытный битриксовик: услуги и мастера тянутся прямо в index.php через ServiceLocator вместо компонента; в админке слотов постраничная навигация отсутствует — жёсткий лимит 500 при 560 слотах (19.09 без фильтра не показать), а в заявках навигация имитирована пустым CAdminResult; каталог читается legacy CIBlockElement::GetList при выставленном API_CODE (обоснование в SOLUTION.md неубедительно).
  • [data] Контракт по таблицам и колонкам соблюдён, инфоблоки services/masters с 8 и 4 элементами созданы миграцией, слоты 14 дней × 10 (в БД 560), шаблон сайта назначается миграцией. Гонка проверена: 6 параллельных create на один слот → ровно один bookingId, остальные SLOT_TAKEN. Мелочь: расписание считается от даты миграции (today), повторный up корректно пропускает мастеров со слотами.
  • [errors-security] Коды и фильтры по контракту, вывод экранирован, согласие — чекбокс с отметкой времени, админка закрыта GetGroupRight (для группы «все» право D, меню не строится). Минусы: slotId=abc возвращает стек-трейс ядра с путями сервера (включён debug в .settings.php стенда — не код модуля, но ответ течёт); $_REQUEST['action_target'] читается без isset.
  • [readability] Имена и размеры методов хорошие, сервисы читаются сразу. Шум: дублированный пролог двух админ-страниц, две почти одинаковые приватные выборки в каталоге, бессмысленный eventType() и method_exists в инсталляторе, неиспользуемые Reference-поля ENTRY/SLOT в таблетках.
  • [code-style] Библиотека модуля по AGENTS.md: strict_types, final/readonly, типизированные сигнатуры, <?= в шаблонах, Loc в админке и инсталляторе, код только в /local (стабы в /bitrix/admin — штатный приём). Отклонения: $_REQUEST в админ-страницах вместо Request, strict_types нет в admin/*, install/index.php, миграциях и шаблоне, тексты компонента захардкожены без Loc.
  • [solution-doc, backend] Инженерные решения названы и совпадают с кодом, отклонения (закрытый слот как taken, нормализация weekStart, EMAIL_TO) честно перечислены и подтверждаются на стенде. Слабые места: обоснование legacy-API сомнительное (у инфоблоков есть API_CODE, D7-ORM был доступен), фраза про поведение после удаления модуля не соответствует UnInstallFiles.

Итого ревьювера: впечатление решило хиро: рядом с antaraspawellness.com оно узнаётся сразу — фото, тонкий вордмарк Fraunces, линейка, пилюля Menu и арка, а форма записи работает с мыши и клавиатуры без перезагрузки. Главный плюс — бэкенд: честные слои Controller → Service → Repository на ServiceLocator, гонка за слот закрыта уникальным индексом и FOR UPDATE (6 параллельных запросов дали ровно одну запись), всё воспроизводится тремя миграциями sprint.migration, админка на штатных CAdminList/CAdminFilter с правами и меню. Главный минус — визуал после первого экрана: арка наезжает на нижнюю линейку хиро на всех ширинах, секции однотонно-оливковые без ритма beige/dark референса, по русскому тексту рассыпаны английские заголовки референса; в админке слотов нет постраничной навигации, и 60 слотов последнего дня не видны без фильтра.

Комментарии ревьювера, которые автор счёл точными; полное ревью — в репозитории.

Метаданные прогона

Итерации
1 · с первого прогона
Время агента
45 мин
Токены in / out
628 233 / 146 077
кеш ввода 17 497 344
кеш вывода 0
Расход лимита
2% мес. · тариф Pro ($20)
Ядро Битрикс
26.700.0

Замечания между итерациями

Замечаний не было — результат принят с первого прогона.

Первая итерация полностью автономна; дальше автор пишет агенту как заказчик — без решений и имён API. Тексты сохраняются дословно.

Мы используем файлы cookie для улучшения работы сайта. Продолжая использовать сайт, вы соглашаетесь с нашей политикой конфиденциальности.
AI Домовой

AI Домовой История

на связи

пишет…
Нет истории чатов
AI Домовой

Нужна авторизация

Войдите, чтобы задавать вопросы AI Домовому.

Войти