refactor: group canonical specs by domain and archive account-top-positions (#74)
Specs security / security (push) Successful in 7s
Specs verify / verify (push) Successful in 14s

This commit was merged in pull request #75.
This commit is contained in:
2026-11-02 21:50:49 +03:00
parent 1fd7e6ad97
commit 3821d9ed58
61 changed files with 707 additions and 1448 deletions
@@ -0,0 +1,44 @@
# app-breadcrumb-navigation Specification
## Purpose
Позволяет User быстро переходить по иерархии защищённых инвестиционных маршрутов через хлебные крошки над содержимым страницы.
## Requirements
### Requirement: Хлебные крошки доступны на защищённых маршрутах
Клиент SHALL показывать хлебные крошки над содержимым на защищённых маршрутах `/accounts`, `/accounts/:accountId`, `/accounts/:accountId/operations` и `/settings`. Клиент MUST NOT показывать хлебные крошки на public-маршрутах и странице несуществующего маршрута.
#### Scenario: User открывает список Brokerage Account
- **WHEN** авторизованный User открывает `/accounts`
- **THEN** клиент показывает единственную текущую крошку «Брокерские счета» над содержимым списка
#### Scenario: User открывает Settings
- **WHEN** авторизованный User открывает `/settings`
- **THEN** клиент показывает единственную текущую крошку «Настройки» над содержимым страницы
### Requirement: Цепочка крошек отражает иерархию Brokerage Account
На `/accounts/:accountId` клиент SHALL показывать «Брокерские счета → <название счёта>». На `/accounts/:accountId/operations` клиент SHALL показывать «Брокерские счета → <название счёта> → Операции». Если название Brokerage Account недоступно, клиент MUST показывать «Счёт» вместо технического идентификатора.
#### Scenario: User открывает Portfolio счёта с доступным названием
- **WHEN** авторизованный User открывает `/accounts/:accountId` и название Brokerage Account доступно
- **THEN** клиент показывает его название как текущую крошку после ссылки «Брокерские счета»
#### Scenario: User открывает Account Ledger
- **WHEN** авторизованный User открывает `/accounts/:accountId/operations` и название Brokerage Account доступно
- **THEN** клиент показывает ссылку на список, ссылку на Portfolio этого счёта и текущую крошку «Операции» в указанном порядке без отдельного локального действия возврата к счёту
#### Scenario: Название Brokerage Account недоступно
- **WHEN** клиент не получил название Brokerage Account для защищённого маршрута счёта
- **THEN** клиент показывает «Счёт» и не показывает `accountId`
### Requirement: Крошки предоставляют доступную адаптивную навигацию
Клиент SHALL делать ссылками только крошки, предшествующие текущей странице; текущая крошка MUST быть обычным текстом. На узком экране клиент MUST скрывать промежуточные крошки, сохраняя ближайшую родительскую крошку и текущую страницу.
#### Scenario: User выбирает предшествующую крошку
- **WHEN** User выбирает крошку, предшествующую текущей странице
- **THEN** клиент переходит по маршруту этой крошки
#### Scenario: Крошки показаны на узком экране
- **WHEN** цепочка содержит более двух элементов и User открывает её на узком экране
- **THEN** клиент сохраняет видимыми ближайшую родительскую крошку и текущую страницу, скрывая более дальние промежуточные крошки