Статичная спека
Дизайнер меняет токен или вариант компонента в Figma. В документе остаётся прежнее описание, но внешне ничего не выдаёт расхождение. Чтобы заметить его, читателю приходится сверять два источника.
Design Docs · Личный R&D · 2026
Я собрал прототип, который находит изменения в данных Figma и показывает, какие документы они затрагивают.
Непроверенная спецификация получает предупреждение, а подтверждение автора относится к конкретной версии изменения.
Кейс за минуту
Подробнее о результате ↓01 Что проверено
В пилоте изменение токена попадает в отчёт, связанный документ получает предупреждение, а устаревшая кнопка подтверждения отклоняется. CSS-токены можно экспортировать из того же слепка отдельно.
Рабочий R&D-прототип на моей дизайн-системе: 14 документов, 12 компонентов и 55 переменных. В команде его ещё не использовали.
02 Проблема
Дизайнер меняет токен или вариант компонента в Figma. В документе остаётся прежнее описание, но внешне ничего не выдаёт расхождение. Чтобы заметить его, читателю приходится сверять два источника.
Автоматически обновить таблицу можно. Объяснение поведения компонента всё равно требует внимания автора, особенно если черновик написала модель. Новая дата на странице не означает, что этот текст кто-то проверил.
03 Доказательства · от правки до проверки
В первом сценарии меняется только color/success. По нему видно, как система обнаруживает правку, предупреждает читателя и принимает подтверждение.
После правки дизайнер получает слепок через плагин Figma и запускает синхронизацию. Система сравнивает его с предыдущим.
Код сравнивает значения color/success в двух слепках. Изменение и список затронутых документов определяются без участия модели.
Отдельная команда формирует tokens.css для Storybook. Экспорт переносит значения токенов, но не проверяет соответствие всего интерфейса макету.
Документ остаётся доступным в Notion. Предупреждение в начале страницы показывает читателю, что после изменения в Figma его ещё не проверили.
Дизайнер проверяет документ по пакету изменений из сообщения. Если следующая синхронизация создаст новый пакет, кнопка из старого сообщения больше не сработает.
После ревью автор подтверждает актуальный пакет. В Markdown сохраняется статус документа, а в журнале остаётся запись о проверке. Это подтверждение документа, не разрешение на выпуск кода.
Прогон B · крупное изменение
Во втором демонстрационном сравнении система нашла 18 изменений и отметила 9 документов для проверки. Среди изменений 8 новых компонентов и 9 новых использований. Этот прогон не продолжает историю с одним токеном.
Зачем проверять текст модели
Такой черновик создаётся со статусом «устарело». Если опубликовать его в Notion до ревью, читатель увидит предупреждение. Статус не блокирует доступ к тексту и не исправляет ошибку: он показывает, что автор ещё не подтвердил содержание.
04 Архитектура
Из JSON-слепка код собирает таблицы вариантов и использования. Авторские описания сохраняются, чтобы следующая генерация не затёрла вручную написанные пояснения. Если данные изменились, документ получает статус «устарело» и ждёт ревью. Markdown хранится в git, а Notion показывает его опубликованную копию.
извлекает и рендерит факты детерминированно
пишет changelog и черновики новых спек
единственный, кто снимает статус «устарело»
Дисциплина сигнала
Если сравнение не нашло изменений, новый дайджест не отправляется. Так повторная синхронизация не добавляет одинаковые сообщения в чат.
Защита от устаревшего подтверждения
Я привязал подтверждение к ID пакета, а не только к названию документа. Иначе человек мог бы открыть сообщение, отвлечься и подтвердить уже другую версию. Если синхронизация создала новый пакет, система отклонит кнопку из предыдущего.
05 Проба моделей · 3 наблюдения
Проверял две задачи: запись в changelog и введение к спеке. Gemma 4 домыслила причину смены цвета, Claude отметил подозрительную привязку токена, Qwen 3.6 не запустилась. Это отдельные наблюдения, не сравнительный бенчмарк: ответ Claude получен в рабочей сессии, воспроизводимого API-прогона пока нет.
color/success: #237804 → #2d8f06 · новый Status Tag · Button Primary/Hover9,6 ГБ · локально · режим черновика
Значения из diff сохранены, но вместо 1–2 предложений получился пост с заголовками и эмодзи.
7 с · пригодно для черновика, но с лёгкой водой.
Домыслила мотивацию: «обеспечит лучшую контрастность» — этого не было во входных данных.
23 ГБ · локально · рабочая станция
llama-server не смог выделить дополнительные 9,9 ГБ CUDA_Host buffer.
До второй задачи не дошла: модель не запустилась.
После выгрузки Gemma 4 модель всё равно не поднялась: рабочей станции не хватило памяти.
облако · режим проверки
Соблюла формат и заметила: смена Button hover с primary-hover на primary-bg похожа на ошибку биндинга.
Коротко описала роль и устройство Status Tag.
Предложила проверить смену токена hover у автора изменения.
06 Артефакты · форма документации — тоже дизайн
CSS-токены используются в Storybook. В документах рядом с машинными таблицами остаются пояснения автора, а в чат приходит список изменений со ссылками на страницы.
07 Сценарий для команды
Пока инструмент использовал только я. Для командной проверки предусмотрел такой сценарий:
Получает свежий слепок Figma и запускает синхронизацию. Проверяет черновик модели, дописывает поведение и правила применения.
Получает CSS-токены из слепка. Перед чтением спеки видит, проверена ли она после последнего обнаруженного изменения.
Получает дайджест со списком затронутых документов. По нему можно выбрать, что проверить, не перечитывая всю документацию.
08 Ограничения и рефлексия
Извлечение из Figma, структурированное сравнение, пакет изменений, статусы «актуально» и «устарело», генерация артефактов, Telegram-дайджест и проверка на пилоте.
Воспроизводимый API-прогон с фиксированными версиями моделей, полевая проверка с участием разработчика, экспорт изображений в документы и командное внедрение на одном разделе.
В пилоте слепок передаётся системе отдельным файлом. REST используется для проверки версии Figma. Полностью автоматическое получение свежих данных ещё не настроено.
В прототипе содержимое страницы очищается и записывается заново. При сбое между этими шагами возможна неполная публикация. Это ограничение текущего способа обновления.
Бот получает нажатия без публичного callback URL. Интерактивные кнопки в Slack и Mattermost пока не подключены.
Что остаётся локальным
Локальная модель позволяет не отправлять данные дизайн-системы облачному провайдеру при генерации текста. Notion и Telegram остаются внешними сервисами, поэтому такой режим сам по себе не делает весь процесс локальным.
Вывод
Изменение обнаружено, документ предупреждает читателя, проверка относится к конкретной версии.
Следующий шаг — дать инструмент разработчику на одном разделе дизайн-системы. Проверил бы, замечает ли он предупреждение и понимает ли, что изменилось. Затем внёс бы две последовательные правки и проверил, понятно ли автору, почему старая кнопка подтверждения больше не работает.