На странице брокерского счёта вкладка «Позиции» делит позиции на «Акции»/«Облигации». Нет быстрого ответа на вопрос «где сосредоточены мои деньги»: крупнейшие позиции и концентрация по секторам и другим признакам.
Ожидаемое поведение
Рядом с «Позициями» появляется раздел «Топ-5»:
крупнейшие позиции по стоимости с переключением среза (все / акции / облигации / секторы / другие критерии по итогам research);
диаграмма распределения выбранного среза;
корректная работа с несколькими валютами без скрытой конвертации.
Acceptance Criteria (черновик, уточняется в OpenSpec)
Пользователь видит топ-5 по стоимости для выбранного среза и долю каждого элемента.
Остаток вне топ-5 показан агрегатом («Прочее»), сумма долей = 100%.
Доступен срез по секторам; позиции без сектора явно помечены.
Диаграмма распределения согласована со списком.
Разные валюты не смешиваются без явного правила.
Поведение зафиксировано в canonical spec, AS-IS docs обновлены.
Процесс
SDD по schema wealth-ledger-sdd-lab (store wealth-ledger-specs). Затрагиваемые repos: specs, backend (метаданные инструмента в Portfolio), frontend, docs.
## Контекст
На странице брокерского счёта вкладка «Позиции» делит позиции на «Акции»/«Облигации». Нет быстрого ответа на вопрос «где сосредоточены мои деньги»: крупнейшие позиции и концентрация по секторам и другим признакам.
## Ожидаемое поведение
Рядом с «Позициями» появляется раздел «Топ-5»:
- крупнейшие позиции по стоимости с переключением среза (все / акции / облигации / секторы / другие критерии по итогам research);
- диаграмма распределения выбранного среза;
- корректная работа с несколькими валютами без скрытой конвертации.
## Acceptance Criteria (черновик, уточняется в OpenSpec)
- [ ] Пользователь видит топ-5 по стоимости для выбранного среза и долю каждого элемента.
- [ ] Остаток вне топ-5 показан агрегатом («Прочее»), сумма долей = 100%.
- [ ] Доступен срез по секторам; позиции без сектора явно помечены.
- [ ] Диаграмма распределения согласована со списком.
- [ ] Разные валюты не смешиваются без явного правила.
- [ ] Поведение зафиксировано в canonical spec, AS-IS docs обновлены.
## Процесс
SDD по schema `wealth-ledger-sdd-lab` (store `wealth-ledger-specs`). Затрагиваемые repos: specs, backend (метаданные инструмента в Portfolio), frontend, docs.
G1 approved Change Owner: «вроде все ок» (2026-10-30).
Решения Change Owner по Open Decisions до Specs (дословно):
Знаменатель доли: «От суммы разреза»
Шорты / неоценённые: «Исключить и показать сноску»
Группы «не указан»: «Наравне с остальными»
Отсутствие сектора/бренда и Portfolio: «Да, не влияет»
G1 approved Change Owner: «вроде все ок» (2026-10-30).
Решения Change Owner по Open Decisions до Specs (дословно):
1. Знаменатель доли: «От суммы разреза»
2. Шорты / неоценённые: «Исключить и показать сноску»
3. Группы «не указан»: «Наравне с остальными»
4. Отсутствие сектора/бренда и Portfolio: «Да, не влияет»
Решения Change Owner по findings G2 review (2026-10-30, дословно):
Список валют вкладки: «Свой: только валюты бумаг» (меняет формулировку proposal о валюте → G1 будет переутверждён)
Округление долей: «Как в карточках позиций»
6 элементов: «Показать 6-й как обычную строку»
Решения Change Owner по findings G2 review (2026-10-30, дословно):
- Список валют вкладки: «Свой: только валюты бумаг» (меняет формулировку proposal о валюте → G1 будет переутверждён)
- Округление долей: «Как в карточках позиций»
- 6 элементов: «Показать 6-й как обычную строку»
Неизвестный сектор: «Код как есть + добавить «government» → «Государственный сектор»»
Имя эмитента: «Название бренда (name)»
Решения аналитика (null в сноске при любой валюте; валюты включают отрицательные STOCK/BOND/FUND; fallback на первую валюту; равные суммы — по имени, затем порядок в Portfolio; выбор не запоминается): «Да, подтверждаю»
G1 повторно: «Да, G1 ок»
Решения Change Owner (2026-10-30, дословно):
- Доля < 0,1 %: «< 0,1 %»
- Неизвестный сектор: «Код как есть + добавить «government» → «Государственный сектор»»
- Имя эмитента: «Название бренда (name)»
- Решения аналитика (null в сноске при любой валюте; валюты включают отрицательные STOCK/BOND/FUND; fallback на первую валюту; равные суммы — по имени, затем порядок в Portfolio; выбор не запоминается): «Да, подтверждаю»
- G1 повторно: «Да, G1 ок»
Решения Change Owner по находкам system-analysis / ux-design (2026-10-30, дословно):
Эмитент у фондов в данных Portfolio: «Да, заполнять, разрез их отбрасывает»
«Токен недействителен» при запросе сектора/бренда: «Как сейчас: подключение недействительно»
Обновление сектора/бренда: «Раз в сутки, при ошибке — последнее известное»
Пробелы обрезать; разные названия одного эмитента → название позиции с наибольшей стоимостью: «Да, так»
UX (1 разрез/валюта сохраняются в пределах страницы счёта, сброс при новом заходе; 2 выбор валюты скрыт при одной валюте; 3 метрика «доля топ-5» не показывается при ≤5 элементах; 4 при неполных данных — вкладка с предупреждением «Данные неполные»; 5 в центре кольца «Топ-5 · N %» и сумма разреза; 6 в «Эмитентах» без логотипов и без перехода): «Да, всё так»
Часть решений меняет утверждённые Specs → G2 инвалидирован и будет пройден повторно вместе с system-analysis, data-mapping, failure-model.
Решения Change Owner по находкам system-analysis / ux-design (2026-10-30, дословно):
- Эмитент у фондов в данных Portfolio: «Да, заполнять, разрез их отбрасывает»
- «Токен недействителен» при запросе сектора/бренда: «Как сейчас: подключение недействительно»
- Обновление сектора/бренда: «Раз в сутки, при ошибке — последнее известное»
- Пробелы обрезать; разные названия одного эмитента → название позиции с наибольшей стоимостью: «Да, так»
- UX (1 разрез/валюта сохраняются в пределах страницы счёта, сброс при новом заходе; 2 выбор валюты скрыт при одной валюте; 3 метрика «доля топ-5» не показывается при ≤5 элементах; 4 при неполных данных — вкладка с предупреждением «Данные неполные»; 5 в центре кольца «Топ-5 · N %» и сумма разреза; 6 в «Эмитентах» без логотипов и без перехода): «Да, всё так»
Часть решений меняет утверждённые Specs → G2 инвалидирован и будет пройден повторно вместе с system-analysis, data-mapping, failure-model.
Решения Change Owner по G2 re-review (2026-10-30, дословно):
Хранение сектора/бренда вопреки «Свежесть и fallback»: «Да, исключение для сектора и бренда»
«Не найдено» от T-Bank: «Как «значения нет»»
Равные наибольшие позиции эмитента: «По алфавиту»
Два предупреждения при неполных данных: «Только на вкладке»
Решения Change Owner по G2 re-review (2026-10-30, дословно):
- Хранение сектора/бренда вопреки «Свежесть и fallback»: «Да, исключение для сектора и бренда»
- «Не найдено» от T-Bank: «Как «значения нет»»
- Равные наибольшие позиции эмитента: «По алфавиту»
- Два предупреждения при неполных данных: «Только на вкладке»
Проверка квот и полноты брендов/секторов на реальном токене: «В рамках QA перед G4»
«Государственный сектор» в общем словаре (каталоги тоже): «Да»
Решения Change Owner по design (2026-10-31, дословно):
- Отсчёт 24 ч от ответа T-Bank (~25 ч фактически): «Да, ~25 ч нормально»
- Проверка квот и полноты брендов/секторов на реальном токене: «В рамках QA перед G4»
- «Государственный сектор» в общем словаре (каталоги тоже): «Да»
Issue остаётся открытой до G4 и archive change account-top-positions. Осталось: task 3.2 (QA test-cases + ручная проверка UI), 3.3 (exploratory на реальном токене: полнота брендов/секторов, квоты T-Bank), 3.4 (откат backend на копии БД), затем запись G4, Retrospective и native archive.
Слито в `develop` по решению владельца («давай мержить», 2026-11-01): WealthLedger/backend#148 → WealthLedger/frontend#127 → WealthLedger/docs#60 → WealthLedger/specs#69. Все required checks зелёные на финальных SHA; блокер audit закрыт через WealthLedger/main#49.
Issue остаётся открытой до G4 и archive change `account-top-positions`. Осталось: task 3.2 (QA test-cases + ручная проверка UI), 3.3 (exploratory на реальном токене: полнота брендов/секторов, квоты T-Bank), 3.4 (откат backend на копии БД), затем запись G4, Retrospective и native archive.
SonarQube Quality Gate на develop проигнорирован по решению владельца («2, забей на sonarqube»). Issue остаётся открытой до G4 и archive change account-top-positions.
Выпущено (2026-11-01): backend `v2.4.0` (a18d9db), frontend `v1.3.0` (870b7e6), docs `v0.1.7` (40ea47a), specs `v0.2.0` (97f3585). Образы в Nexus:
- `nexus.personal.ksv741.ru/docker-hosted/wealthledger/backend:2.4.0@sha256:2c527295c028fa9dc2962ef3f52e03078ebdfc07954d8ef44f852c7ba8b1c035`
- `nexus.personal.ksv741.ru/docker-hosted/wealthledger/frontend:1.3.0@sha256:f9f3a6aacbe770f3881e4d5f606e0c3e01ac705ad107fb1c4a9f22547c54521f`
SonarQube Quality Gate на `develop` проигнорирован по решению владельца («2, забей на sonarqube»). Issue остаётся открытой до G4 и archive change `account-top-positions`.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Контекст
На странице брокерского счёта вкладка «Позиции» делит позиции на «Акции»/«Облигации». Нет быстрого ответа на вопрос «где сосредоточены мои деньги»: крупнейшие позиции и концентрация по секторам и другим признакам.
Ожидаемое поведение
Рядом с «Позициями» появляется раздел «Топ-5»:
Acceptance Criteria (черновик, уточняется в OpenSpec)
Процесс
SDD по schema
wealth-ledger-sdd-lab(storewealth-ledger-specs). Затрагиваемые repos: specs, backend (метаданные инструмента в Portfolio), frontend, docs.Решения Change Owner до G1 (сессия 2026-10-30, ответы дословно), change
account-top-positions(schemawealth-ledger-sdd-lab):G1 approved Change Owner: «вроде все ок» (2026-10-30).
Решения Change Owner по Open Decisions до Specs (дословно):
Решения Change Owner по findings G2 review (2026-10-30, дословно):
Решения Change Owner (2026-10-30, дословно):
Решения Change Owner по находкам system-analysis / ux-design (2026-10-30, дословно):
Часть решений меняет утверждённые Specs → G2 инвалидирован и будет пройден повторно вместе с system-analysis, data-mapping, failure-model.
Решения Change Owner по G2 re-review (2026-10-30, дословно):
G2 approved (specs, system-analysis, data-mapping, failure-model): «ок, давай дальше» (2026-10-30).
Решения Change Owner по docs-impact (дословно):
Решения Change Owner по design (2026-10-31, дословно):
Слито в
developпо решению владельца («давай мержить», 2026-11-01): WealthLedger/backend#148 → WealthLedger/frontend#127 → WealthLedger/docs#60 → WealthLedger/specs#69. Все required checks зелёные на финальных SHA; блокер audit закрыт через WealthLedger/main#49.Issue остаётся открытой до G4 и archive change
account-top-positions. Осталось: task 3.2 (QA test-cases + ручная проверка UI), 3.3 (exploratory на реальном токене: полнота брендов/секторов, квоты T-Bank), 3.4 (откат backend на копии БД), затем запись G4, Retrospective и native archive.Выпущено (2026-11-01): backend
v2.4.0(a18d9db), frontendv1.3.0(870b7e6), docsv0.1.7(40ea47a), specsv0.2.0(97f3585). Образы в Nexus:nexus.personal.ksv741.ru/docker-hosted/wealthledger/backend:2.4.0@sha256:2c527295c028fa9dc2962ef3f52e03078ebdfc07954d8ef44f852c7ba8b1c035nexus.personal.ksv741.ru/docker-hosted/wealthledger/frontend:1.3.0@sha256:f9f3a6aacbe770f3881e4d5f606e0c3e01ac705ad107fb1c4a9f22547c54521fSonarQube Quality Gate на
developпроигнорирован по решению владельца («2, забей на sonarqube»). Issue остаётся открытой до G4 и archive changeaccount-top-positions.OpenSpec change
account-top-positionsархивирована (WealthLedger/specs#75): canonicalportfolio/portfolio-concentrationсоздана,portfolio/portfolio-viewобновлена. Independent Review, QA (3.1–3.3), проверка отката (3.4) и G4 не выполнялись — descoped решением владельца, зафиксировано в process-record архива. Issue оставлена открытой: закрытие — на усмотрение владельца.