К содержимому
weomo.com — сайт студии, который пишут роботы: постер кейса

weomo.com

сайт студии, который пишут роботы

Weomo (собственный проект)

Задача

В Weomo сайты пишут роботы. Точнее, агенты: программы на больших языковых моделях. Они получают задачу и выполняют её сами: читают проект, пишут код и тексты, запускают проверки, не дожидаясь указаний. Человек ставит задачи, принимает решения и отвечает за вкус. Собственный сайт студии живёт на том же конвейере: это не демо, а рабочая среда.

Контекст

Как проверить, что студия вправду работает с языковыми моделями? Со стороны — почти никак: рынок обещает AI-разработку из каждой презентации, и слова «мы используем нейросети» ничего не стоят. Поэтому собственный сайт студии держится на том же конвейере, что и проекты клиентов. Как устроен этот сайт, так студия и работает.

Труд здесь разделён так:

flowchart TD
  owner["Человек:<br/>ставит задачи, калибрует вкус,<br/>принимает решения"]
  agents["Агенты:<br/>пишут код, тексты и тесты"]
  pipeline["Конвейер:<br/>проверяет и публикует"]
  site["Живой сайт:<br/>38 страниц, 0 ошибок валидации"]

  owner -- "задача" --> agents
  agents -- "правка" --> pipeline
  pipeline -- "сборка зелёная" --> site
  site -. "следующая задача" .-> owner

  classDef default fill:none

Что сделали

Тексты

Тексты сайта пишет агент по письменному канону студии, ничего не сочиняя от себя. Канон собрали из интервью с владельцем: 54 ответа шести раундов о голосе, ритме и словах, которые звучат фальшиво. Формулировки берутся из исследовательских отчётов, а не выдумываются на ходу. Готовый текст проходит словарный аудит: псевдо-слова и жаргон отсеивает морфологический страж, канцелярит и следы сгенерированной прозы вычитывают по письменному канону студии. Ритм машине не по силам, его вычитывают глаза.

Проверки

Каждая правка проходит сборку с валидаторами. Система сверяет внутренние ссылки с живыми страницами, а фронтматтер каждого документа — с контрактом, и не выпускает сборку с ошибкой. Машиночитаемая карта сайта сверяется с фактической структурой сайта. Сборка с ошибкой не публикуется: битая ссылка не может дожить до посетителя.

А часть проверок следит за самим этим кейсом. Числа в разделе «Метрики» сверяет тест с фактической сборкой: напишем 37 страниц вместо 38 — прогон упадёт. Соврать о себе тихо не выйдет.

Что проверяетсяКак Что ловит
Внутренние ссылкиСверка с живыми страницами на сборкеБитая ссылка не доживает до посетителя
Фронтматтер документовКонтракт каждого MDX-файлаОшибка поля останавливает выпуск
Карта llms.txtСверка с фактической структурой сайтаДрейф карты от реальных разделов
Числа «Метрик»Отдельный тест против фактической сборки37 страниц вместо 38 роняет прогон
Текстыписьменный канон студии и словарный аудитКанцелярит и следы сгенерированной прозы

Публикация

И публикация не ручная. Нажать кнопку — вроде и всё, что осталось человеку. Релиз в GitHub запускает конвейер. Тот собирает Docker-образ, выкладывает в реестр, развёртывает на сервере и проверяет, что сайт отвечает. Если сайт не отвечает, конвейер сам возвращает прежнюю версию. И из ручного в релизе не осталось ничего.

Платформа

Под конвейер собрана платформа. Страницы генерируются заранее и отдаются готовыми: рендера с нуля при каждом заходе нет. А сервер остался только для того, что по-настоящему интерактивно: форма заявки и поиск, потому что считать на лету больше нечего. Контент лежит в MDX-файлах с жёстким контрактом. Из него собираются страницы и llms.txt, машиночитаемая карта сайта для роботов AI-поиска. Карта показывает, какие разделы есть и как услуги связаны между собой.

Результат

Сайт живёт циклами: человек описывает задачу, агенты делают правку, конвейер проверяет и публикует. В истории репозитория больше двух тысяч коммитов, каждый цикл аудита записывается в журнал под своим номером. Ручной слежки за ссылками нет: за ними следят валидаторы.

Как проходило по этапам

Этапы те же, что в клиентских проектах, хотя заказчик тут особенный. Сама студия. Всё началось с исследования и оценки: требования выставили себе как клиенту — мгновенный отклик, живые ссылки, структура, читаемая и человеком, и роботом, — а параллельно сняли голос студии, шесть раундов интервью, на которых и вырос письменный канон. Затем проектирование: заранее собранные страницы стали базовым классом платформы, сервер остался для интерактива, а контент лёг в MDX с жёстким контрактом фронтматтера — единый источник данных для страниц и машиночитаемой карты. Разработка свела каркас, валидаторы и генераторы в один конвейер: правка агента проходит проверки и попадает в публикацию без ручных операций. Дальше — запуск и эволюция: сайт развивается циклами аудита, релиз стал рутинной операцией, а не событием.

Стек

Frontend
Next.jsReactTypeScript
Стиль
Tailwind CSS
Контент
MDX
Инфраструктура
BunGitHub Actions

Метрики

— Страниц в сборке: 38 (каждая собрана заранее)

— Ошибок валидации: 0 (сборка с ошибкой не публикуется)

— Внешний рендер при заходе: 0 (готовый HTML отдаётся сразу)

— Разделов в машиночитаемой карте llms.txt: 6 (открытым файлом, собирается из коллекций автоматически)

Первую и последнюю строки сверяет с фактической сборкой тест: разница роняет прогон. Остальное проверяется на живом сайте: карту можно открыть и посчитать разделы, страницы — обойти. Историю коммитов и журнал аудита держим в закрытом репозитории, на встрече покажем.

Главная weomo.com. Заголовок «Проектируем и строим цифровую инфраструктуру». Кнопки «Обсудить проект» и «Смотреть живые проекты», тикер технологий

Каталог услуг weomo.com. Группа «Сайты и магазины» с карточками интернет-магазина и корпоративного сайта. Сроки и стек — на карточках

Поиск ⌘K на weomo.com: запрос «магазин» с результатами по каталогу услуг и подсветкой совпадений

вопросы

Частые вопросы о кейсе

Коротко: вопросы, которые задают до первого разговора. Детали — выше в разборе.

Да, и проверить это можно по шагам. Код, тексты и тесты готовят языковые модели по задаче от человека. Вкус и решения — на владельце: голос текстов собран из 54 его ответов о стиле. До публикации каждая правка проходит автоматические проверки.

Похожая задача?

Расскажите о своей задаче, вернёмся с планом и вилкой сроков.

Обсудить проект

Заявка занимает пару минут. Отвечаем в течение рабочего дня.