ADR 0075: Тематический указатель UI (docs/adr/UI/) и соглашения по страницам MFD¶
Статус: Proposed
Дата: 2026-04-20
Связанные ADR¶
| ADR | Роль |
|---|---|
| 0076 | центр UI/UX-принципов; связный вводный текст |
| 0021 | вторичный контур / MFD |
| 0068 | payload vs проекция |
| 0060 | keyboard-first, Command Melody |
| 0074 | плотность и место в MFD |
| 0013 | палитра |
| 0030 | command_id |
| 0096 | картотека тем в Intercom, сводка на карточке |
| 0077 | TECH — центр принципов (связный текст из канона) |
Вне ADR¶
| Документ | Роль |
|---|---|
TECH/README.md |
указатель TECH-принципов |
Контекст¶
Обсуждения визуальной подачи (список vs таблица, скролл, подсказки) без зафиксированного эталона в репозитории дают трение: восстановление «как было» по памяти, разные трактовки терминов (в т.ч. продуктовых vs ADR), спор о приоритетах pointer vs keyboard.
При этом в репо уже есть норматив payload vs presentation (0068) и keyboard-first входы (0060).
1. Решение: папка docs/adr/UI/¶
- Ввести тематический указатель
docs/adr/UI/README.md: таблица ссылок на существующие ADR по теме UI/MFD/chromium/палитра. - Не вводить отдельную нумерацию и не дублировать текст нормативных ADR внутри
UI/— канон по-прежнему файлыdocs/adr/NNNN-*.mdи главный индекс. Навигационная карта принципов (куда смотреть за полным текстом) —UI/principles.md. - Подпапка
UI/— не классификация по статусу ADR (см. соглашения в README § «Соглашения»); только удобная навигация по теме.
2. Соглашения по страницам вторичного контура (MFD)¶
Нормативно опираться на:
| Принцип | Источник |
|---|---|
Один payload строк (порядок, command_id/DTO) меняется в VM/сервисе; проекция (карточки, таблица, плотность) — во View без смены семантики строк |
0068 |
Keyboard-first: смысл команды доступен через палитру / Melody (c:) / Chords с тем же command_id; hover-only не считать единственным каналом для обязательного смысла |
0060, 0072 где уместно |
| Узкий MFD — ограничение по ширине/высоте; стратегии scroll / компактность / fallback — согласовать с направлением 0074 для форм и аналогично для «длинных» списков |
Пример (иллюстрация, не отдельный канон): страница «готовность окружения» — коллекция AnnunciatorLampItem; переключение «компактный / широкий» — только раскладка (EnvironmentReadinessPresentationResolver), порядок строк — payload.
3. Последствия¶
- Агенты и люди могут ссылаться «см. ADR/UI» как на
docs/adr/UI/README.md, не смешивая с отменой плоского индекса. - Спорные UI-решения по продукту по-прежнему оформляются отдельным пронумерованным ADR или правкой существующего, а не только заметкой в
UI/.
4. Отклонённые альтернативы¶
- Только wiki / только чат — без ссылки из репо теряется воспроизводимость.
- Все UI-ADR только в подпапке
UI/— ломает действующее соглашение об именахNNNN-*.mdв одном каталоге и усложняет поиск по номеру.