Решили: кадры контактного листа складываются в репозиторий (docs/lab/assets/ui-states/), а не
в Temp, и перезаписываются на каждом прогоне; список кадров стенд получает манифестом
(docs/lab/data/ui-states.json), который пишет тот же прогон.
Почему: кадры уходили в чат и терялись в переписке — ответить на вопрос «а как сейчас выглядит
слот» было нечем. Отвергли папку со снимками по датам: историю честнее держит git, потому что там
видно не только что менялось, но и вместе с каким коммитом; каталог снимков пришлось бы ещё и
чистить руками. Цена — 1.2 МБ на прогон в истории, и это дешевле работы (правило проекта про
.gitignore). Отвергли захардкоженный список файлов в разделе: стенд разошёлся бы с реестром на
первом же новом компоненте — ровно так врала прежняя витрина UiPreviewCatalog, показывая семь
контролов из четырнадцати.
Сказано: «А можешь все скрины UI, что ты делаешь в прогоне — сохранять на сайте на какой-то специальной странице? Чтобы я всегда мог и отдельные элементы глядеть, смотреть что ты сделала, добавила и т.д.» (06.08.2026, сессия a66a54e9). На уточняющий вопрос про историю и кроп ответил короче: «Просто скрины всех элементов)».
Грабли: JSON пишется руками, а не сериализатором — Newtonsoft в сборку Guildmaster.DevTools
пришлось бы тянуть ради трёх полей. Раздел Лаборатории строит галерею в одну колонку, а не сеткой
.cards: кадр снят в 1920×1080, и в колонке 290 пикселей от состояния остаётся пятно.
Владелец правды: Assets/_Project/Scripts/DevTools/UiContactSheet.cs (OutputDir,
ManifestPath), docs/lab/src/sections/ui-states.ts.