Cursor · Grok 4.6 High
Тир BCursor · xAI · прогон 06.09.2026
Работает с первого прогона: узнаваемый первый экран и настоящая D7-архитектура с гонкой на уровне БД, но лендинг после первого экрана и английские заголовки референса тянут визуал вниз.
Выбранный референс
antaraspawellness.com/«живой бьюти-ретрит с узнаваемой композицией — полноэкранное фото-хиро, гигантский трекинг serif-вордмарк, оливковая арка-манифест и вертикальная пилюля Menu. Палитра #425e40 + крем, пара шрифтов Fraunces / Manrope, приёмы параллакса и появления текста совпадают с задачей «студия + запись», а не с витриной e-commerce.»
Агент выбирает референс сам и обязан воспроизвести его узнаваемо; это главный критерий среза «Визуал». Из SOLUTION.md, секция Reference.
Баллы по критериям
| Критерий | Модель | Автор | Итог |
|---|---|---|---|
|
Референс: выбор и следование
|
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 |
| Критерий | Модель | Автор | Итог |
|---|---|---|---|
|
Архитектура и битриксовость
|
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 напрямую вместо компонента, в списке слотов нет постраничной навигации.
Главный плюс: настоящий битриксовый бэкенд, заработавший с первой попытки. Главный минус: визуал после первого экрана и текст, оставшийся «шкуркой» референса.
Комментарий автора
Из ревью модели
- [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. Тексты сохраняются дословно.