• ГлавнаяHome
  • Рабочие прототипыWorking prototypes
    • Выплаты самозанятым
    • Вторая попытка
    • Сбер: подписки и долг
    • Дизайн-система как продукт
  • CRM для брендаBrand CRM
  • iOS, Android и вебiOS, Android and web
  • Apple WatchApple Watch
  • HeatmapsHeatmaps
  • РезюмеCV
  • Как я делаю живые прототипы
  • Как я проверяю гипотезы
  • Прототипирование
  • Дизайн-система сайта
  • Разбор рынка
  • Telegram
  • ПочтаEmail
  • Резюме, PDFCV, PDF

    Спросите что угодно о Прохоре

    Отвечает модель по материалам сайта. Чего нет в кейсах, того она не знает.

    Отвечает модель и может ошибаться. Проверяйте важное у самого Прохора.

    Назад

    Кейс, Дизайн-системы

    Семнадцать дизайн-систем отвечают из одной точки

    ( А )

    Сайт, UI-киты и прототипы жили каждый в своём наборе значений, а ИИ-агент, который писал прототип, не знал, по какой системе пишет. За 1–2 октября 2026 года собрал единую точку: реестр из 17 систем с наследованием, токены в DTCG, один контракт компонента, витрины и коннектор, через который агент получает систему файла. Кейс в работе.

    ( Б )

    Дизайн-систему обычно показывают набором компонентов. Здесь она продукт со своими пользователями: дизайнер, разработчик и ИИ-агент. Агенту нужно меньше всего слов и больше всего проверок, поэтому на нём хорошо видно, где система держится сама, а где нужен человек.

    ( В )

    Design Systems, Product Design, ИИ-агенты
    2026
    Самостоятельный концепт · в разработке

    Семнадцать дизайн-систем отвечают из одной точки
    рис. 1, Дизайн-системы · единая точка для людей и ИИ · сайт и прототипы

    Результаты

    17
    систем в реестре
    systems/_build/index.json, 2 октября 2026: ядро, сайт, платформы, киты, продукты
    317 из 317
    строк совпали
    пилот перед сменой сборщика: старый CSS против Terrazzo, расхождений 0
    120
    компонентов
    контракты в systems/*/components, 2 октября 2026; у «Второй попытки» 12
    339 мс
    сборка токенов
    медиана 10 запусков в пилоте, цель не больше секунды

    Проблема бизнеса

    Проблема: что было сломано.

    У сайта была настоящая система: токены в три слоя, сборка, линтер, перепись страниц. Но все проверки смотрели только на сайт. UI-киты не были связаны с ним ни одной ссылкой, прототипы хранили значения четырьмя способами, а у беспилотного такси был свой второй конвейер сборки. Одно имя в разных местах значило разное. Агенту, который писал прототип, никто не говорил, какая у файла система, и линтер такие файлы не мерил.

    Исследование

    Данные: откуда они.

    • 01Разобрал свой репозиторий: у сайта настоящая система, но киты с ней не связаны, а прототипы хранят значения четырьмя способами и копируют их между телефоном и часами
    • 02Figma 2026: расширенные коллекции и API переменных только в Enterprise, а импорт не заводит новых переменных в существующем режиме. Отсюда одно направление, из кода в Figma
    • 03Material 3 и DTCG: тема меняет только системный слой, формат 2025.10 стабилен, а Resolver с осями собирает только Terrazzo
    • 04Apple и Liquid Glass: стекло только в функциональном слое, одно имя разрешается по окружению. Отсюда платформа как ось с версией, а не родитель
    • 05Как системы отдают ИИ-агентам: отрасль сошлась на пяти частях. Короткие правила, пакет с контрактом, MCP, проверка числом и выбор системы по пути файла

    PRD

    PRD: что решает прототип.

    Проблема

    Дизайнер или тимлид, который ведёт ИИ-агента по своей дизайн-системе, в длинной сессии получает экран со значениями в обход системы и придуманными токенами и замечает это не сразу.

    Для кого
    • Дизайнер или тимлид, который ведёт ИИ-агента по системе. Получить экран в значениях своей системы и проверить его быстрее, чем переделать
    • ИИ-агент, который пишет прототип. Знать систему файла по его пути и не брать значения из чужой
    Метрика успеха

    Доля ошибок агента: неверная система или придуманное значение. Меньше 5% на 20 путях и 20 заданиях, порог допущение до прогона стенда. База: 3 из 4 краевых путей уходили в site до правки kit_for 02.10.2026 (f0024bc6); после правки база не замерена

    Меряем: Стенд агента: 20 путей через kit_for, 20 заданий агенту, сверка ответа с ожиданием; повтор после каждой правки

    Защитная: сборка токенов не дольше секунды: медиана пилота 339 мс

    Вне рамок
    • ·

      Figma как источник правды: расширенные коллекции и запись переменных через API только в Enterprise, поэтому направление одно, из кода в Figma

    • ·

      Перенос значений разом: они остаются в нынешних файлах, запись системы только указывает на них

    • ·

      Витрины закрытых систем без входа: их видят только вошедшие в комнату

    • ·

      Ширины в контракте компонента: пока их держит вёрстка

    Открытые вопросы
    1. 01

      Хватит ли системы по пути: агент знает систему и всё равно уезжает от неё в длинной сессии (vt-002#024, vt-002#010); нужна ли проверка после каждой правки, покажет стенд агента

    2. 02

      Запрет «когда нельзя» текстом не держится, держит проверка, которая не даёт сделать (vt-002#027): закроется проверкой на стенде

    3. 03

      Кому раздел не нужен: скептики считают, что кит окупается только у больших команд (vt-001#019, vt-001#026, vt-001#036, vt-002#028); граница «для кого» проверится на UX-тесте с несогласной персоной

    4. 04

      Кто владеет системой и когда компонент становится общим (vt-001#005, vt-001#018): у раздела нет ни владельца, ни статуса; решится разговорами с живыми людьми по готовым скринеру и гайду

    5. 05

      Порог 5% допущение: поставлен до замера, стенд агента ещё не собран. Краевые пути замерены до правки kit_for 02.10; теперь kit_for называет их путём без системы, устаревшим путём и собранным файлом, а не site. Новая база появится с первым прогоном стенда

    Характер
    • строгий
    • немногословный
    • проверяемый

    Обсуждения

    Обсуждения: что пишут люди.

    Открытые обсуждения живых людей на форумах и в отзывах: пересказ и короткие цитаты со ссылкой и датой, авторы не названы

    Несколько дизайн-систем и брендов на одной основе

    37 высказываний

    Хабр 27 · другая площадка 6 · vc.ru 4
    2023–2026

      ИИ собирает интерфейс по дизайн-системе

      23 высказывания

      Хабр 15 · vc.ru 7 · другая площадка 1
      2026

        Гипотезы

        Гипотеза: что я предположил.

        • H1Если система файла известна по его пути, агент перестанет брать значения не из той системы
        • H2Наследование с одним родителем проще режимов: продукт берёт кит, кит берёт ядро, и своих значений у продукта остаётся несколько
        • H3Один контракт компонента на все системы даст одну витрину, одну проверку и один ответ агенту
        • H4Сборщик токенов можно сменить, не сдвинув ни одного значения, если сверить вывод строка к строке

        Ограничения

        Материал: с чем работал.

        • ·Figma не источник правды: расширенные коллекции и запись переменных через API есть только в Enterprise. Направление одно, из кода в Figma
        • ·Значения не переносятся разом: они остаются в нынешних файлах, а запись системы только указывает на них
        • ·Витрины закрытых систем видят только вошедшие в комнату. Без входа открыты прототипы и витрина сайта
        • ·Safari до 17.5 не знает light-dark(), для него запасной блок цветов
        • ·Над репозиторием одновременно работают несколько агентов, поэтому шаги делились так, чтобы файлы не пересекались

        Дизайн-решения

        Решение: как я это сделал.

        1. 01

          Одна папка systems/, по записи на систему: ядро, сайт, две платформы, три кита, продукты. Прототип привязан к системе одним полем, а индекс из записей читают все: раздел на сайте, коннектор, линтер и хук

        2. 02

          Шесть слоёв, от примитивов до экрана, и ссылаться можно только вниз: направление проверяет сборка. Новые смысловые имена заводит только ядро, система лишь даёт им значения

        3. 03

          Токены в DTCG 2025.10, собирает их Terrazzo одной командой: CSS со слоями и light-dark(), типы, мост Tailwind и файлы Figma по режимам

        4. 04

          Контракт компонента один на все системы: что это, когда ставить и когда нет, варианты, состояния, значения, доступность, пример. По нему одна витрина на систему, 120 компонентов в 17 системах

        5. 05

          Агент получает систему файла сам: kit_for по пути отдаёт цепочку, шкалу и имена, kit_read часть системы, kit_component контракт со значениями по цепочке и тем, что не сошлось

        User flow

        Путь по шагам.

        1. 01
          Агент открывает файл прототипа
          apps/retry/app.css
        2. 02
          kit_for отдаёт систему файла
          core › glow › retry, шкала, имена
        3. 03
          kit_component отдаёт контракт
          состояния, доступность, значения
        4. 04
          Агент пишет код
          значения только из своей цепочки
        5. 05
          ds-lint мерит файл
          шкалой его системы
        6. 06
          Витрина и снимок
          пустой образец роняет проверку

        Схемы

        Наследование: кто от кого

        100%
        ЯдроСайт и китыПродуктыПлатформы
        coreимена ds.* заводит только ядро
        siteprokhor.me
        glowкит «Свет»
        sberкит
        payoutкит
        fleypo, nightот сайта, медиахаб от fleypo
        retryсвоих значений 5
        sber-online, sber-healthот Сбера
        robotaxi, trip, workmateпрямо от ядра
        ios@26, macos@26, watchosось окружения, а не родитель
        1. Ядро: core. Сайт и киты: site. Продукты: fleypo, night. Платформы: ios@26, macos@26, watchos
        2. Сайт и киты: glow. Продукты: retry
        3. Сайт и киты: sber. Продукты: sber-online, sber-health
        4. Сайт и киты: payout. Продукты: robotaxi, trip, workmate

        Компонент, агент, код, сверка

        100%

        Поправка человека становится проверкой: так тест вкладок появился после пустых вкладок.

        нетда
        Контракт компонента
        kit_for, kit_componentконтекст агенту
        Код прототипа
        Сходится со шкалой?
        Витрина и снимкипустой образец роняет
        Глаз человекатёмная тема, контраст
        Новое правилотест по всем записям
        1. Контракт компонента. Дальше: kit_for, kit_component
        2. kit_for, kit_component. Дальше: Код прототипа
        3. Код прототипа. Дальше: Сходится со шкалой?
        4. Сходится со шкалой? Дальше: Код прототипа (нет); Витрина и снимки (да)
        5. Витрина и снимки. Дальше: Глаз человека
        6. Глаз человека. Дальше: Новое правило
        7. Новое правило. Дальше: Контракт компонента

        Состояния

        Состояния: шесть на каждый экран.

        Состояния экранов: Комната
        ЭкранПустоЗагрузкаОшибкаЧастичноНет правМного данных
        Дизайн-системыНе бывает

        Гость с выдачей раздела видит хотя бы запись сайта, а без выдачи раздел закрыт целиком

        Не бывает

        Страница собирается на сервере из индекса реестра в памяти процесса, на запросе ничего не разбирается

        Не бывает

        Индекс реестра входит в сборку и на запросе не читается: битый индекс останавливает сборку, а не страницу

        Собрано

        Гость с выдачей «Дизайн-системы» видит только открытые записи, со старой выдачей «Набора значений» только сайт

        Собрано

        Без выдачи раздела дверь входа в комнату вместо списка

        Собрано

        17 систем в пяти группах, в ряду не больше трёх карточек и без одной в последнем ряду

        Система: значенияОписано

        «Значений нет» под шапкой системы

        Не бывает

        Страница собирается на сервере из индекса в памяти, на запросе ничего не разбирается

        Собрано

        Неизвестная система: 404

        Описано

        Часть записи не прочиталась: блок «Не прочиталось» со списком ошибок записи и кита под вкладками

        Собрано

        Закрытая система для гостя: 404, её нет ни в списке, ни на странице, ни в витрине

        Собрано

        Значения группами по файлам; если есть переопределённые, фильтр «Все», «Своё», «Переопределено» без JS

        Система: компонентыОписано

        «Компонентов нет»; запись с пустой вкладкой не проходит тест вкладок перед пушем

        Собрано

        Витрина в рамке высотой 640 точек, пока документ витрины не прислал свою высоту

        Собрано

        Неизвестная система: 404

        Не проверено

        Компонент есть в контракте, а образца в витрине нет

        Собрано

        Закрытая система для гостя: 404, витрина не отдаётся

        Собрано

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

        Система: экраныОписано

        «Экранов нет»; запись с пустой вкладкой не проходит тест вкладок перед пушем

        Собрано

        Снимки грузятся лениво, место под них занято сразу по сторонам из индекса

        Собрано

        Неизвестная система: 404

        Не проверено

        Снимок кейса без имени в записи кита идёт без подписи

        Собрано

        Снимки отдаёт ручка раздела с проверкой прав: нет права, 404 без подробностей

        Не проверено

        У «Второй попытки» пять образцов, десятки снимков не пробовали

        Система: связиОписано

        «Связей нет»; запись с пустой вкладкой не проходит тест вкладок перед пушем

        Не бывает

        Страница собирается на сервере из индекса и модулей сайта

        Собрано

        Неизвестная система: 404

        Не проверено

        Прототип привязан к системе, а открытой страницы у него нет

        Описано

        Закрытая запись в цепочке гостю видна ключом, без имени

        Не проверено

        Связи группами, длинные группы не пробовали

        Система: подстройкаНе бывает

        Вкладка есть только у открытой системы со своими файлами значений: у платформы, закрытой и системы без значений её нет

        Собрано

        Рамки показа 640 точек, пока витрина не прислала высоту; кнопка в работе с крутилкой

        Собрано

        Значения не прочитались: строка с причиной ядра вместо строк; отказ сохранения словами под кнопками

        Собрано

        Правки, которые в исходник как есть не ложатся, уходят только текстом задания агенту, и это сказано над кнопками

        Собрано

        Гость двигает ползунки без кнопок; ручка сохранения только хозяину, на боевом сервере только готовит правку для агента

        Собрано

        Строки группами по типу с поиском и «Правки»; темы витрины рядом, приложения рамками в своём размере

        Витрина китаНе бывает

        Витрину без компонентов раздел не показывает: вкладка пишет «Компонентов нет»

        Собрано

        Рамка 640 точек, пока документ витрины не прислал высоту

        Не проверено

        Документ витрины не ответил, и рамка остаётся в начальной высоте

        Не проверено

        Стиль или шрифт кита не дошёл до витрины

        Собрано

        Рамка в песочнице без allow-same-origin: куки и данные сайта витрине недоступны

        Собрано

        Рамка растёт до 40 000 точек, прокрутка у страницы, а не у рамки

        • Дизайн-системысобрано 3 · не бывает 3
          Пусто
          Не бывает

          Гость с выдачей раздела видит хотя бы запись сайта, а без выдачи раздел закрыт целиком

          Загрузка
          Не бывает

          Страница собирается на сервере из индекса реестра в памяти процесса, на запросе ничего не разбирается

          Ошибка
          Не бывает

          Индекс реестра входит в сборку и на запросе не читается: битый индекс останавливает сборку, а не страницу

          Частично
          Собрано

          Гость с выдачей «Дизайн-системы» видит только открытые записи, со старой выдачей «Набора значений» только сайт

          Нет прав
          Собрано

          Без выдачи раздела дверь входа в комнату вместо списка

          Много данных
          Собрано

          17 систем в пяти группах, в ряду не больше трёх карточек и без одной в последнем ряду

        • Система: значениясобрано 3 · описано 2 · не бывает 1
          Пусто
          Описано

          «Значений нет» под шапкой системы

          Загрузка
          Не бывает

          Страница собирается на сервере из индекса в памяти, на запросе ничего не разбирается

          Ошибка
          Собрано

          Неизвестная система: 404

          Частично
          Описано

          Часть записи не прочиталась: блок «Не прочиталось» со списком ошибок записи и кита под вкладками

          Нет прав
          Собрано

          Закрытая система для гостя: 404, её нет ни в списке, ни на странице, ни в витрине

          Много данных
          Собрано

          Значения группами по файлам; если есть переопределённые, фильтр «Все», «Своё», «Переопределено» без JS

        • Система: компонентысобрано 4 · описано 1 · не проверено 1
          Пусто
          Описано

          «Компонентов нет»; запись с пустой вкладкой не проходит тест вкладок перед пушем

          Загрузка
          Собрано

          Витрина в рамке высотой 640 точек, пока документ витрины не прислал свою высоту

          Ошибка
          Собрано

          Неизвестная система: 404

          Частично
          Не проверено

          Компонент есть в контракте, а образца в витрине нет

          Нет прав
          Собрано

          Закрытая система для гостя: 404, витрина не отдаётся

          Много данных
          Собрано

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

        • Система: экранысобрано 3 · описано 1 · не проверено 2
          Пусто
          Описано

          «Экранов нет»; запись с пустой вкладкой не проходит тест вкладок перед пушем

          Загрузка
          Собрано

          Снимки грузятся лениво, место под них занято сразу по сторонам из индекса

          Ошибка
          Собрано

          Неизвестная система: 404

          Частично
          Не проверено

          Снимок кейса без имени в записи кита идёт без подписи

          Нет прав
          Собрано

          Снимки отдаёт ручка раздела с проверкой прав: нет права, 404 без подробностей

          Много данных
          Не проверено

          У «Второй попытки» пять образцов, десятки снимков не пробовали

        • Система: связисобрано 1 · описано 2 · не проверено 2 · не бывает 1
          Пусто
          Описано

          «Связей нет»; запись с пустой вкладкой не проходит тест вкладок перед пушем

          Загрузка
          Не бывает

          Страница собирается на сервере из индекса и модулей сайта

          Ошибка
          Собрано

          Неизвестная система: 404

          Частично
          Не проверено

          Прототип привязан к системе, а открытой страницы у него нет

          Нет прав
          Описано

          Закрытая запись в цепочке гостю видна ключом, без имени

          Много данных
          Не проверено

          Связи группами, длинные группы не пробовали

        • Система: подстройкасобрано 5 · не бывает 1
          Пусто
          Не бывает

          Вкладка есть только у открытой системы со своими файлами значений: у платформы, закрытой и системы без значений её нет

          Загрузка
          Собрано

          Рамки показа 640 точек, пока витрина не прислала высоту; кнопка в работе с крутилкой

          Ошибка
          Собрано

          Значения не прочитались: строка с причиной ядра вместо строк; отказ сохранения словами под кнопками

          Частично
          Собрано

          Правки, которые в исходник как есть не ложатся, уходят только текстом задания агенту, и это сказано над кнопками

          Нет прав
          Собрано

          Гость двигает ползунки без кнопок; ручка сохранения только хозяину, на боевом сервере только готовит правку для агента

          Много данных
          Собрано

          Строки группами по типу с поиском и «Правки»; темы витрины рядом, приложения рамками в своём размере

        • Витрина китасобрано 3 · не проверено 2 · не бывает 1
          Пусто
          Не бывает

          Витрину без компонентов раздел не показывает: вкладка пишет «Компонентов нет»

          Загрузка
          Собрано

          Рамка 640 точек, пока документ витрины не прислал высоту

          Ошибка
          Не проверено

          Документ витрины не ответил, и рамка остаётся в начальной высоте

          Частично
          Не проверено

          Стиль или шрифт кита не дошёл до витрины

          Нет прав
          Собрано

          Рамка в песочнице без allow-same-origin: куки и данные сайта витрине недоступны

          Много данных
          Собрано

          Рамка растёт до 40 000 точек, прокрутка у страницы, а не у рамки

        Состояния экранов: Коннектор
        ЭкранПустоЗагрузкаОшибкаЧастичноНет правМного данных
        kit_for: система файла для агентаСобрано

        «Для «…» системы нет. Список даёт kit_list.»

        Не бывает

        Коннектор отвечает агенту целым текстом на вызов, промежуточного вида у ответа нет

        Собрано

        «Нужен path (apps/retry/app.css) или app (retry).»

        Описано

        Список приложений, загруженных через комнату, не пришёл: ответ только по apps/ репозитория, без пометки

        Собрано

        Закрытая система гостю не существует: ответ тот же, что для системы, которой нет

        Не проверено

        Длина ответа у длинной цепочки; в кейсе ответ показан целиком, кроме переходных имён

        • kit_for: система файла для агентасобрано 3 · описано 1 · не проверено 1 · не бывает 1
          Пусто
          Собрано

          «Для «…» системы нет. Список даёт kit_list.»

          Загрузка
          Не бывает

          Коннектор отвечает агенту целым текстом на вызов, промежуточного вида у ответа нет

          Ошибка
          Собрано

          «Нужен path (apps/retry/app.css) или app (retry).»

          Частично
          Описано

          Список приложений, загруженных через комнату, не пришёл: ответ только по apps/ репозитория, без пометки

          Нет прав
          Собрано

          Закрытая система гостю не существует: ответ тот же, что для системы, которой нет

          Много данных
          Не проверено

          Длина ответа у длинной цепочки; в кейсе ответ показан целиком, кроме переходных имён

        Процесс

        Процесс: от темы до A/B-теста.

        1. 01

          Тема

          Тему проверил по чеклисту из 19 пунктов, и слабое место нашлось сразу: пользователь пока один, я и мои ИИ-агенты, а это близко к «мне так удобнее». Поэтому скринер зовёт тех, кто вёл системы годами. Остальное сошлось: не сайт и не перерисовка, а продукт с ролями и ограничениями, сверху Figma Enterprise и старый Safari. Потери времени и ошибки агентов меряются числом, задача есть у любой команды, где больше одного продукта, а развилок хватает: наследование, переименование, закрытые системы. Свой опыт прямой, систему сайта веду сам.

        2. 02

          Конкуренты

          Разобрал, как системы отдают себя ИИ-агентам. Лучший набор у Primer MCP: поиск значения, контракт, примеры и проверка CSS в одном сервере. Storybook MCP собирает манифест компонентов из историй, но только для React. У shadcn проект сам объявляет, из каких реестров берёт компоненты, у v0 система хранится навыком со стартовым приложением, которое человек проверяет до сохранения. zeroheight отдаёт страницы руководства, то есть документ, а не компонент. Взял у Primer поиск и проверку в одном месте, у shadcn привязку в файле проекта, у v0 образец экрана. Не взял модель документа и Figma как источник.

        3. 03

          Разговоры

          Данные гипотетические: смоделированы для анализа, до проверки на людях

          Подготовил скринер на восемь разговоров и пять тестов: дизайнер, разработчик, продакт, два ИИ-агента и два скептика, владелец системы в большой компании и архитектор платформы. К нему гайд JTBD-интервью. Живых разговоров не было, роли смоделировал, а скептики говорят доводами спора о масштабе, каждый довод с местом в коде. Главное: продукт молчит там, где должен отказать, и даёт правдоподобный ответ вместо «не знаю». Пользователь меряет время до работающей системы, а продукт меряет время записи. И имя это интерфейс: ключ ds-NNN вылезает туда, где пишет человек.

        4. 04

          Требования

          Данные гипотетические: смоделированы для анализа, до проверки на людях

          Главная работа: когда продукту нужен свой вид, получить систему, согласованную с родителем, которую любой агент применит без ошибок. Под неё пять ролей с мерой успеха и восемь Job Stories, например: когда путь файла не привязан ни к одной системе, услышать «системы нет, вот как привязать». Решил, что ключ остаётся личностью записи, но уходит из того, что пишет человек: app.json принимает имя.

        5. 05

          Варианты

          Перед планом правок два агента-скептика спорили: один звал систему переусложнённой, другой недостаточно гибкой. Почти все их замечания подтвердились в коде, спорили о порядке. Расширенные коллекции Figma основой семей не стали: они только в Enterprise. Свой вывод под Android отложил, пока нет заказчика: у каждого вывода цена поддержки, а пакет в плоском DTCG прогонит через Style Dictionary тот, кому нужен Compose. Переписывать палитру родителя дочке нельзя, на общей палитре держится согласованность Сбера; свои роли она заводит в своём пространстве. Глубину держу не больше трёх уровней, сейчас местами четыре; канал llms.txt не делаю.

        6. 06

          Архитектура

          Девять объектов по схемам реестра: система, ключ, имя, название, псевдоним, контракт, экран, приложение и журнал. Система ссылается на родителя по ключу, прототип на систему одним полем, а прежнее имя после переименования отвечает с пометкой. Для страницы раздела хватило словаря из пяти слов: система, имя, название, ключ, контракт.

        7. 07

          Сценарии

          «завести дочернюю систему» описал дважды. Сейчас: четыре развилки и минимум три ручных шага после команды, а без app.json прототип молча меряется системой сайта. Цель: одна команда, платформа и компоненты от родителя, app.json записан сам. Screenflow раздела «Дизайн-системы»: список, сводка, компоненты, экраны и связи, и что добавить в каждый по итогам.

        8. 08

          Прототип

          Здесь прототип и есть продукт. Спецификацию единой точки собрал вместе с ИИ 1 октября, план до работы проверил агент-критик, а сборщик сменил только после пилота строка к строке. Код писали ИИ-агенты по шагам с проверяемым итогом, я проверял и возвращал недоделанное.

        9. 09

          UX-тест

          Данные гипотетические: смоделированы для анализа, до проверки на людях

          Написал пять задач теста: найти систему файла, завести дочку, переименовать, отдать систему ИИ, выбрать компонент. Прошёл их глазами пяти типичных пользователей: команды выполнены на деле на копии репозитория, реакции смоделированы. Нашёл: три краевых пути из четырёх молча уходят в систему сайта, переименование Сбера задевает шесть файлов и 35 мест, а отказ в пробном переименовании печатается после плана. По итогам 23 правки, двенадцать малых закрывают ошибки агентов ещё до теста на людях.

        10. 10

          Количественный тест

          Данные гипотетические: смоделированы для анализа, до проверки на людях

          First Click на сводке системы retry в разделе: 30 дизайнеров, которые ведут системы, и задание «Найдите, какие значения retry взял у родителя, а какие свои». Порог до замера: 70 % первым нажатием приходят в одно место. Итог: «Связи» 12, «Компоненты» 10, цепочка в шапке 8. Ни одно место не набрало и половины: ответа на этот вопрос в разделе нет. Отсюда вкладка «своё против родителя» в правках.

        11. 11

          Метрики

          A/B-тест здесь неприменим: автор один, трафика нет. Вместо него до и после на стенде агента: 20 путей и 20 заданий, прогон до правок и после каждой. Метрики продукта, а не экрана: время завести систему, цель до пяти минут одной командой; доля ошибок агентов, цель меньше 5 %; число мест на правку семьи, цель одно; и все пятеро видят отказ до запуска команды.

        Проверка

        Тесты: что показали.

        • Перед сменой сборщика сверил вывод Terrazzo со старым CSS строка к строке: 317 из 317, и без сети то же самое
        • Terrazzo остановил все четыре подброшенные ошибки: битую ссылку, цикл ссылок, цвет строкой и размер без единиц
        • После перевода ядра старые имена совпали в 6042 значениях из 6048. Шесть, это кольцо фокуса во fleypo, его исправил намеренно. Перепись 21 страницы в обеих темах новых расхождений не дала
        • Тест вкладок проходит по всем 17 системам: каждая вкладка не пуста, витрина рисует каждый компонент
        • Глазами остаётся то, что числом не поймать: тёмная тема после color-scheme, контраст на отрисованной странице, окно «Агент» после перехода. И выкладка только после моего слова

        ИИ в исследовании

        Ошибки ИИ: что отбросила проверка.

        Разборы, план и код писали ИИ-агенты по шагам. План перед работой проверял отдельный агент-критик, и каждое его замечание сверялось по коду.

        • Критик оставил 23 замечания. Целиком неверных не нашлось, но восемь приняты только частично или отклонены с причиной
        • Обращений к цветам вне сайта критик насчитал 255. Пересчёт дал 308: 171 в своих файлах и 137 в копии, которая уже входила в общий счёт
        • Для витрины критик предложил @scope. Отклонено: в Baseline он только с марта 2026, и браузер без него выбросил бы стили кита целиком
        • Проверять шрифт он предложил через document.fonts.check. Но тот отвечает «да», даже если правило шрифта вовсе не дошло, поэтому сначала загрузка, потом проверка

        Что не получилось сразу

        Переделки: что пришлось менять.

        • Раздел сначала ушёл с зелёными тестами, а у части систем вкладки «Компоненты», «Экраны», «Связи» были пустыми. Теперь тест проходит по всем записям реестра и падает на любой пустой вкладке
        • Правило .gitignore для списков комнаты зацепило контракт iOS. На сервере у iOS насчиталось 8 компонентов вместо 9, тест сверки упал, и выкладка встала. Правило сузил до корня данных
        • Старая сборка молча пропускала пять ошибок. У fleypo, например, фон и текст были записаны размером, а ссылались на цвет. Terrazzo остановил на них сборку, и все пять исправлены

        Передача в разработку

        Передача: что отдаю фронтенду.

        • ·Реестр systems/ со схемами записи, контракта, экрана и журнала
        • ·Сборщик ds-build: CSS, типы, Tailwind и Figma одной командой, проверка стоит в тестах перед пушем
        • ·Коннектор: kit_list, kit_read, kit_for и kit_component
        • ·Правило для агентов в шесть строк: система файла, образец экрана, контракт с «когда нет»
        • ·ds-lint мерит файл шкалой его системы, а храповик не даёт нарушениям расти

        Дизайн-система

        Система: на чём стоит прототип.

        Так выглядит контекст, который агент получает о файле. Это вывод kit_for для формы «Второй попытки», без сокращений, кроме списка переходных имён.

        • ·Цепочка наследования и платформа: агент знает, что пишет под iPhone на ките «Свет»
        • ·Шкала шагов, скруглений, кеглей и длительностей: значение мимо неё линтер не пропустит
        • ·Свои имена системы и переходные, которых нельзя писать в новом коде
        • ·Где запись системы и чем проверить файл
        • Продукт на этой системе
        • Витрина сайта
        • Коннектор
        Вывод kit-for для apps/retry/app.css: система retry@1, цепочка core, glow, retry, шкала, имена, 12 компонентов

        Результат

        Итог

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

        Моя роль

        Роль: что делал я.

        Решал я: как называется раздел, в каком порядке шаги и что открыто без входа. Terrazzo взят по условию, которое я поставил заранее: если пилот даст те же значения. Разборы, план и код писали ИИ-агенты, я проверял итог и возвращал недоделанное. Проверяли агенты-скептики, решения о принятии их замечаний мои; ревью людей пока не было. Замеров на людях здесь нет. Начни я заново, вышел бы к тем, кто ведёт системы годами, до первого кода; взял бы тему уже; завёл бы контракты компонентов до прототипов, а скептика держал бы с первого дня, а не после пустых вкладок.

        Что дальше

        За рамками: что осталось.

        • →Стенд агента: 20 путей и 20 заданий, база до правок и повтор после каждой
        • →Пять тестов и восемь разговоров с живыми людьми по готовым скринеру и гайду, двое скептиков обязательно
        • →kit_check, kit_find_token и kit_compare: пока только в плане
        • →Ширины в контракт компонента: сейчас их держит вёрстка
        • →Перевести около 2600 обращений к цветам на новые имена пачками, после каждой перепись 0
        • →Открыть без входа витрины открытых систем
        • →iOS 27, когда появится кит в Figma

        Работы

        • Выплаты самозанятым

          Чек с часов закрывает строку в чужом реестре

        • Вторая попытка

          Отказ банка говорит, где деньги, а повтор ждёт ответа

        • Сбер: подписки и долг

          СберПрайм встаёт на паузу, а не только отключается

        • Дизайн-система как продукт

          Пятнадцать систем, один контракт и сверка снимками

          Вы здесь
        TelegramBehancePDF

        Прохор

        • okprokhor@yandex.ru
        • Product designer
        • 2026
        • 148a1ba · 22.10