Каждый экран в документации описан по одной схеме: назначение, таблица элементов (контент, источник данных, поведение), таблица состояний, правила и права, edge cases, definition of done. Для голосования, например, я описал восемь состояний карточки: не проголосовал, проголосовал, анонимное, открытое, победитель, ничья, решено вручную, без голосов.
Спецификация закрывает разрыв между макетом и кодом. ИИ получает не только картинку, но и ответ на вопрос «что будет, когда…»: пропала сеть, голос отдан в последнюю секунду, поездку архивировали посреди голосования. Часть ошибок видна ещё до кода.
Дизайн‑систему я делаю вместе с экранами, а не отдельным этапом. Цель в том, чтобы Figma и код на Flutter говорили на одном языке, поэтому у каждого компонента одно имя и в дизайне, и в коде.