ИИ-помощник не понимает ваш UI-kit? Показываем, как это починить

ИИ-помощник не понимает ваш UI-kit? Показываем, как это починить

Около 90% фронтенд-разработчиков в нашей команде используют ИИ-помощников для написания кода. У многих из нас был похожий опыт: вы начинаете использовать ИИ, просите его сгенерировать MVP, получаете результат за пару минут и думаете: «Вау, это реально работает!».

Но вскоре наступает разочарование.

Меня зовут Валерий Баранов, я руковожу командой технологий фронтенда в Яндекс 360. Мы занимаемся общими техническими компонентами, CI/CD, платформами дистрибуции. Сегодня расскажу, как мы сделали наши фронтенд-проекты по-настоящему AI-ready: научили ИИ понимать структуру репозиториев, работать с внутренними библиотеками и соблюдать паттерны дизайн-системы.

Долина разочарования

Первые часы всё идёт хорошо. ИИ выдаёт то, что нужно, и кажется — так будет всегда. Но если вы планируете за пару недель собрать SaaS, реальность оказывается сложнее.

Через первые пять часов работы с ИИ наступает «долина разочарования». Вы слышите себя в таких фразах:

  • «Да я быстрее сам напишу»;
  • «Зачем ты переписал то, что уже работало?»;
  • «Откуда этот компонент? Его у нас нет».

ИИ предлагает странные решения, меняет подходы, переписывает свой же код. Хочется на него накричать — но он не услышит.

На практике ИИ чаще всего используют для простых задач: JSDoc, параметры, автодополнение. Сложные кейсы — около 10% использования. Почему так?

Почему моделям важен контекст

Ответ прост: вместо того чтобы «орать на модель», нужно дать ей правильный контекст. Но сначала — что это вообще такое?

Представим, как работает фронтендер при работе с UI:

  1. Открывает задачу с требованиями и ссылкой на макет в Figma.
  2. Изучает дизайн: компоненты, токены, отступы.
  3. Если что-то непонятно — идёт в Storybook за документацией.
  4. Пишет код и создаёт pull request.
  5. Проводится дизайн-ревью.
  6. Если есть расхождения — исправляет и мерджит.

Возникает вопрос: может ли ИИ проделать такой же путь?

Да, если дать ему правильный контекст и инструменты.

Пирамида контекста

Контекст удобно представлять в виде пирамиды — как пирамиду тестирования.

Внизу — быстрые юнит-тесты, вверху — сложные E2E. Так и с контекстом: чем выше уровень, тем сложнее его обеспечить, но тем больше пользы.

Для LLM контекст включает:

  • структуру проекта;
  • документацию по используемым библиотекам;
  • дизайн-систему.

Проблема в том, что внутренние библиотеки часто не задокументированы или недоступны для ИИ. А дизайн живёт отдельно — в Figma, не связанной с кодом.

Как настроить контекст: AGENTS.md

Простое и эффективное решение — файл AGENTS.md. Это открытый стандарт, поддерживаемый Claude Code, Cursor, GitHub Copilot, Zed и другими. Один файл — для всех ассистентов.

GitHub проанализировал 2500 репозиториев и выделил лучшую структуру:

  • Project Overview — краткое описание проекта (2–3 предложения).
  • Project Structure — дерево папок с пояснениями и архитектурными ограничениями.
  • Commands — команды для сборки, тестирования, запуска (готовые к копированию).
  • Conventions — правила, которые линтеры не проверяют.
  • Boundaries — что делать всегда, что спрашивать, чего нельзя делать.

Что писать, а чего не стоит

Правило простое: включайте только то, что модель не может узнать сама или узнает слишком долго.

Стоит включить:

  • команды верификации и однострочник для проверки перед коммитом;
  • назначение внутренних пакетов и их конвенции;
  • специфичные ограничения (MUST DO / MUST NOT);
  • особенности workflow (например, нестандартная система контроля версий).

Не стоит включать:

  • версии технологий (есть в package.json);
  • базовые паттерны фреймворка (модель знает React hooks);
  • переменные окружения (есть в .env.example);
  • стандартные паттерны тестирования.

По данным SFEIR Institute, повелительный стиль инструкций («Используй CSS Modules») соблюдается в 94% случаев. Описательный («Мы обычно используем…») — только в 73%.

Меньше — значит лучше

Исследования HumanLayer показывают: LLM стабильно следуют 150–200 инструкциям. Системный промпт ассистента уже занимает около 50. Остаётся 100–150 на проект.

При перегрузке контекстом качество падает равномерно — страдают все инструкции.

AGENTS.md должен быть коротким: до 300 строк для сервисов, до 150 для библиотек. Каждая строка должна оправдывать своё место.

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

По данным SFEIR, хорошо структурированный AGENTS.md на 80 строк сокращает ручные исправления кода на 40%.

Типичные ошибки

  • AGENTS.md-монолит. Когда в файл складывают всё подряд — документацию, примеры, историю решений — точность модели падает на 70% при заполнении контекстного окна.
  • Расплывчатые инструкции. «Используй современные подходы» бесполезны. Лучше: «Новые компоненты создавай в src/components/, используй CSS Modules, не создавай .styl файлы».
  • Дублирование файлов. Отдельные файлы для каждого ассистента быстро расходятся. AGENTS.md — один файл, одна правда.
  • Конфиг вместо линтера. Не пишите в AGENTS.md то, что уже проверяют eslint/prettier. Это место для того, что линтеры не видят.

Самоподдерживающаяся документация

Самое сильное свойство AGENTS.md — возможность сделать документацию самоподдерживающейся. Если в Boundaries написать: «Всегда обновляй AGENTS.md при изменении структуры проекта» — модель будет это делать.

Никаких триггеров. Документация инструктирует агента поддерживать саму себя.

Мы закрыли первый уровень пирамиды контекста. Теперь перейдём к следующему — дизайн-системе.

Контекст дизайн-системы и UI-kit

У нас в Яндекс 360 есть UI-kit Orbita. Это библиотека компонентов orb-components. Дизайн-система Orbita — кроссплатформенная: web, Android, iOS, десктоп.

Чтобы дизайн-система стала AI Ready — удобной для ИИ-инструментов без костылей — её нужно спроектировать особым образом.

Представим её как три слоя:

  • Foundation — токены, цвета, типографика, иконки.
  • Компоненты — атомарные (Button, Input) и составные (Suggest).
  • Паттерны использования — готовые решения: настройки профиля, GlobalBar и др.

Без понимания паттернов ИИ будет просто комбинировать компоненты, а не собирать осмысленные интерфейсы.

Model Context Protocol и документация

Для передачи контекста используем Model Context Protocol (MCP). Он позволяет модели получать знания по мере необходимости.

Мы создали MCP-сервер Orbita DS для внутренних компонентов. Через него модель узнаёт:

  • о Foundation — токены и правила их использования;
  • о компонентах — актуальное API и примеры;
  • о паттернах композиции.

Первый шаг — подключение UI-kit. Без этого ничего не работает.

Когда Figma и код говорят на разных языках

Проблема — в рассинхронизации. Дизайнеры уже добавили компонент в Figma, а в коде его ещё нет. Или наоборот — компонент устарел в дизайне, но остался в коде.

Часто отличается названия prop. Например, в коде — isDisabled, в Figma — enabled. Разработчик видит enabled, ищет его в компоненте — не находит. Пишет в поддержку. Мы отвечаем: «Это isDisabled. Всё очевидно».

Чтобы избежать таких ситуаций, нужно синхронизировать Figma и код. И договориться, где — истина.

Мы решили так:

  • Figma — истина по дизайну: Foundation, паттерны, иконки.
  • Код — истина по реализации: названия компонентов и props.

Дизайнеры не обязаны знать, как удобно разработчикам. Это нормально.

Как мы связываем дизайн и код

Каждый слой дизайн-системы синхронизируется отдельным инструментом:

  • FoundationFigmograph: выгружает токены и иконки под все платформы.
  • КомпонентыFigma Code Connect: связывает реализацию и макет, описывает маппинг props.
  • ПаттерныMCP Orbita: передаёт модели знания о паттернах использования.

Теперь ИИ видит полную картину и генерирует корректный код, а не угадывает названия.

Что в итоге

Мы:

  • закрыли контекст проекта через AGENTS.md;
  • покрыли контекст библиотек с помощью MCP;
  • связали дизайн и код через Figma Code Connect.

Теперь у нас — AI-ready фронтенд-проекты. В них есть всё, чтобы ИИ генерировал правильные интерфейсы:

  • контекст проекта;
  • контекст библиотек;
  • контекст дизайн-системы.

Вывод прост: эффективность ИИ напрямую зависит от его знаний о проекте, архитектуре и UI-kit.

Простые шаги — например, структурированный AGENTS.md — уже экономят десятки часов на переделках. А интеграция с MCP и синхронизация дизайна с кодом превращают ИИ в полноценного участника команды.

ИИ в разработке — это не магия. Это инфраструктурная работа. Начните с малого: один документ, ключевые конвенции. Потом шаг за шагом закрывайте «дыры» — описывайте библиотеки, синхронизируйте дизайн и код, автоматизируйте связи между системами.

Читать оригинал