Вкладка «Топ-5» на странице счёта: крупнейшие позиции и распределение по критериям с диаграммой #48

Open
opened 2026-10-30 13:51:43 +03:00 by codex-bot · 11 comments
Owner

Контекст

На странице брокерского счёта вкладка «Позиции» делит позиции на «Акции»/«Облигации». Нет быстрого ответа на вопрос «где сосредоточены мои деньги»: крупнейшие позиции и концентрация по секторам и другим признакам.

Ожидаемое поведение

Рядом с «Позициями» появляется раздел «Топ-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.
codex-bot added the Kind/Feature
Priority
Medium
3
labels 2026-10-30 13:51:43 +03:00
Author
Owner

Решения Change Owner до G1 (сессия 2026-10-30, ответы дословно), change account-top-positions (schema wealth-ledger-sdd-lab):

  • Срезы MVP: «Эмитенты, Секторы, Облигации, Акции»
  • Валюты: «Одна валюта за раз»
  • Название вкладки: «Концентрация»
  • Секторы по каким инструментам: «Все, где есть sector» → уточнено: «Акции, облигации, фонды»
  • Режим: «lab»
  • Эмитент: «Бренд T-Bank»
  • Фонды в «Эмитентах»: «Нет»
  • Госбумаги: «Как отдаёт T-Bank»
  • Прочие 5 вопросов: «Да, на Specs»
  • «Прочее»: «Да, раскрывать по клику»
  • Мало брендов: «Оставить разрез, показать «не указан»»
  • Общий топ-5 по всем типам: «Out of Scope»
Решения Change Owner до G1 (сессия 2026-10-30, ответы дословно), change `account-top-positions` (schema `wealth-ledger-sdd-lab`): - Срезы MVP: «Эмитенты, Секторы, Облигации, Акции» - Валюты: «Одна валюта за раз» - Название вкладки: «Концентрация» - Секторы по каким инструментам: «Все, где есть sector» → уточнено: «Акции, облигации, фонды» - Режим: «lab» - Эмитент: «Бренд T-Bank» - Фонды в «Эмитентах»: «Нет» - Госбумаги: «Как отдаёт T-Bank» - Прочие 5 вопросов: «Да, на Specs» - «Прочее»: «Да, раскрывать по клику» - Мало брендов: «Оставить разрез, показать «не указан»» - Общий топ-5 по всем типам: «Out of Scope»
Author
Owner

G1 approved Change Owner: «вроде все ок» (2026-10-30).

Решения Change Owner по Open Decisions до Specs (дословно):

  1. Знаменатель доли: «От суммы разреза»
  2. Шорты / неоценённые: «Исключить и показать сноску»
  3. Группы «не указан»: «Наравне с остальными»
  4. Отсутствие сектора/бренда и Portfolio: «Да, не влияет»
G1 approved Change Owner: «вроде все ок» (2026-10-30). Решения Change Owner по Open Decisions до Specs (дословно): 1. Знаменатель доли: «От суммы разреза» 2. Шорты / неоценённые: «Исключить и показать сноску» 3. Группы «не указан»: «Наравне с остальными» 4. Отсутствие сектора/бренда и Portfolio: «Да, не влияет»
Author
Owner

Решения Change Owner по findings G2 review (2026-10-30, дословно):

  • Список валют вкладки: «Свой: только валюты бумаг» (меняет формулировку proposal о валюте → G1 будет переутверждён)
  • Округление долей: «Как в карточках позиций»
  • 6 элементов: «Показать 6-й как обычную строку»
Решения Change Owner по findings G2 review (2026-10-30, дословно): - Список валют вкладки: «Свой: только валюты бумаг» (меняет формулировку proposal о валюте → G1 будет переутверждён) - Округление долей: «Как в карточках позиций» - 6 элементов: «Показать 6-й как обычную строку»
Author
Owner

Решения Change Owner (2026-10-30, дословно):

  • Доля < 0,1 %: «< 0,1 %»
  • Неизвестный сектор: «Код как есть + добавить «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 ок»
Author
Owner

Решения 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.
Author
Owner

Решения Change Owner по G2 re-review (2026-10-30, дословно):

  • Хранение сектора/бренда вопреки «Свежесть и fallback»: «Да, исключение для сектора и бренда»
  • «Не найдено» от T-Bank: «Как «значения нет»»
  • Равные наибольшие позиции эмитента: «По алфавиту»
  • Два предупреждения при неполных данных: «Только на вкладке»
Решения Change Owner по G2 re-review (2026-10-30, дословно): - Хранение сектора/бренда вопреки «Свежесть и fallback»: «Да, исключение для сектора и бренда» - «Не найдено» от T-Bank: «Как «значения нет»» - Равные наибольшие позиции эмитента: «По алфавиту» - Два предупреждения при неполных данных: «Только на вкладке»
Author
Owner

G2 approved (specs, system-analysis, data-mapping, failure-model): «ок, давай дальше» (2026-10-30).

Решения Change Owner по docs-impact (дословно):

  • Термин «Эмитент»: «Оставить «Эмитенты» + оговорка в глоссарии»
  • Хранение сектора/бренда: «Да, ADR»
G2 approved (specs, system-analysis, data-mapping, failure-model): «ок, давай дальше» (2026-10-30). Решения Change Owner по docs-impact (дословно): - Термин «Эмитент»: «Оставить «Эмитенты» + оговорка в глоссарии» - Хранение сектора/бренда: «Да, ADR»
Author
Owner

Решения Change Owner по design (2026-10-31, дословно):

  • Отсчёт 24 ч от ответа T-Bank (~25 ч фактически): «Да, ~25 ч нормально»
  • Проверка квот и полноты брендов/секторов на реальном токене: «В рамках QA перед G4»
  • «Государственный сектор» в общем словаре (каталоги тоже): «Да»
Решения Change Owner по design (2026-10-31, дословно): - Отсчёт 24 ч от ответа T-Bank (~25 ч фактически): «Да, ~25 ч нормально» - Проверка квот и полноты брендов/секторов на реальном токене: «В рамках QA перед G4» - «Государственный сектор» в общем словаре (каталоги тоже): «Да»
Author
Owner

Слито в 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.

Слито в `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.
Author
Owner

Выпущено (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.

Выпущено (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`.
Author
Owner

OpenSpec change account-top-positions архивирована (WealthLedger/specs#75): canonical portfolio/portfolio-concentration создана, portfolio/portfolio-view обновлена. Independent Review, QA (3.1–3.3), проверка отката (3.4) и G4 не выполнялись — descoped решением владельца, зафиксировано в process-record архива. Issue оставлена открытой: закрытие — на усмотрение владельца.

OpenSpec change `account-top-positions` архивирована (WealthLedger/specs#75): canonical `portfolio/portfolio-concentration` создана, `portfolio/portfolio-view` обновлена. Independent Review, QA (3.1–3.3), проверка отката (3.4) и G4 не выполнялись — descoped решением владельца, зафиксировано в process-record архива. Issue оставлена открытой: закрытие — на усмотрение владельца.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: WealthLedger/main#48