spec: finalize wealth-ledger SDD migration
This commit was merged in pull request #26.
This commit is contained in:
+60
@@ -0,0 +1,60 @@
|
||||
## ADDED Requirements
|
||||
|
||||
### Requirement: Общий фундамент доступен через проверяемые локальные пакеты
|
||||
|
||||
Общий визуальный фундамент SHALL принадлежать приватным npm workspaces внутри
|
||||
frontend и иметь явную публичную поверхность. Приложение SHALL использовать
|
||||
пакеты через объявленные exports. Собранные артефакты MUST содержать модули,
|
||||
типы, стили и данные согласно контракту каждого пакета и быть пригодными для
|
||||
проверки вне рабочего дерева frontend. Общие пакеты MUST NOT требовать серверных
|
||||
данных, авторизации, маршрутов или состояния WealthLedger. Совместимость пакетов
|
||||
между собой и с приложением SHALL проверяться; workspace links MUST NOT быть
|
||||
единственным подтверждением пригодности артефактов. Независимые релизы и
|
||||
публикация в registry не входят в этот переход.
|
||||
|
||||
#### Scenario: Приложение потребляет собранную поставку
|
||||
|
||||
- **WHEN** потребитель устанавливает собранные артефакты в чистом окружении без
|
||||
ссылок на рабочее дерево поставщика
|
||||
- **THEN** публичные модули, типы, стили и данные доступны, общий компонент
|
||||
отображается на заявленной теме без зависимостей от приложения поставщика
|
||||
|
||||
#### Scenario: Локальная разработка скрыла отсутствующий артефакт
|
||||
|
||||
- **WHEN** локальная ссылка разрешает импорт, отсутствующий в собранной поставке
|
||||
- **THEN** поставка не признаётся готовой по результату одной локальной сборки;
|
||||
потребление именно собранных артефактов должно быть подтверждено отдельно
|
||||
|
||||
#### Scenario: Приложение использует локальные пакеты
|
||||
|
||||
- **WHEN** frontend устанавливает зависимости из своего lockfile и собирается
|
||||
- **THEN** приватные workspaces доступны через публичные exports без публикации
|
||||
в registry; предметные компоненты и API-клиент остаются в приложении
|
||||
|
||||
### Requirement: Собственные общие иконки имеют доступный контракт
|
||||
|
||||
Общие иконки SHALL иметь предсказуемые размеры и возможность получать цвет
|
||||
от потребителя, не определяя бизнес-смысл операции или состояние приложения.
|
||||
Декоративная иконка MUST NOT создавать отдельную точку фокуса или повторять
|
||||
доступное имя соседнего действия. Смысловая иконка без сопровождающего текста
|
||||
MUST иметь доступное имя. Собственное движение иконки SHALL учитывать
|
||||
предпочтение уменьшенного движения; выбор момента запуска по пользовательскому
|
||||
сценарию SHALL оставаться у потребителя.
|
||||
|
||||
#### Scenario: Иконка находится в именованном действии
|
||||
|
||||
- **WHEN** собственная иконка дополняет кнопку с доступным именем
|
||||
- **THEN** кнопка сохраняет имя и клавиатурное поведение, а рисунок декоративен
|
||||
и не создаёт дополнительную точку фокуса
|
||||
|
||||
#### Scenario: Рисунок самостоятельно передаёт смысл
|
||||
|
||||
- **WHEN** иконка используется без текста и без именованного родительского
|
||||
элемента как самостоятельное изображение
|
||||
- **THEN** потребитель задаёт доступное имя, передающее её назначение
|
||||
|
||||
#### Scenario: Пользователь уменьшил движение
|
||||
|
||||
- **WHEN** включено предпочтение уменьшенного движения
|
||||
- **THEN** необязательная анимация общей иконки не выполняется, а значение и
|
||||
доступность действия сохраняются
|
||||
Reference in New Issue
Block a user