Files
codex-bot a2d2df3b5a
Specs security / security (push) Successful in 6s
Specs verify / verify (push) Successful in 7s
spec: archive group-account-rows-by-instrument and sync canonical specs (WealthLedger/main#47) (#65)
2026-10-30 07:35:30 +03:00

74 lines
7.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Tasks
## 1. Общая механика и ключи
- [x] 1.1 [frontend] Implementation: чистая группировка `groupItems` и точное десятичное сложение по валютам в `shared/lib` с unit-тестами
- **Covers:** `brokerage-account-ledger` — `All-accounts ledger grouping preserves order and limits`, `brokerage-account-ledger` — `All-accounts ledger group shows each entry and an exact total`
- **Source:** design.md — D1, D3; Developer Verification Strategy (unit grouping, unit decimal/money)
- **Verification:** `npm run test:run -- src/shared/lib src/pages/account/model`; `npm run typecheck`
- **Depends on:** none
- [x] 1.2 [frontend] Implementation: ключи группы и правило показа итога для операций и событий (день как на экране, identity, точный тип, `dateKind`), unit-тесты key adapters
- **Covers:** `brokerage-account-ledger` — `All-accounts ledger groups same-day entries of one instrument`, `brokerage-account-upcoming-events` — `All-accounts upcoming events group same-day events of one instrument`, `brokerage-account-upcoming-events` — `All-accounts upcoming event group shows each event and a forecast total`
- **Source:** design.md — D2, D3; Components and Responsibilities (`entities/broker-operation/model/display.ts`, `entities/brokerage-event/model/event-key.ts`)
- **Verification:** `npm run test:run -- src/entities/broker-operation src/entities/brokerage-event`
- **Depends on:** 1.1
## 2. Представление групп
- [x] 2.1 [frontend] Implementation: компоненты группы и строки счёта для операций и событий по ux-design (заголовок, вложенный список, скрытый итог, доступные имена), с component-тестами
- **Covers:** `brokerage-account-ledger` — `Full ledger presents compact rows`, `brokerage-account-ledger` — `All-accounts ledger group shows each entry and an exact total`, `brokerage-account-upcoming-events` — `All-accounts upcoming event group shows each event and a forecast total`
- **Source:** design.md — UI Implementation; ux-design.md — Information Architecture, UI States, Accessibility
- **Verification:** `npm run test:run -- src/entities packages/ui`; проверка в браузере на 320 px и при zoom 200%
- **Depends on:** 1.2
- [x] 2.2 [frontend] Implementation: группировка в режиме `all` на страницах журнала и «Будущие события». Полнота берётся из `meta`, путь одного счёта не меняется. Route-тесты, включая pagination через MSW
- **Covers:** `brokerage-account-ledger` — `User can retrieve an account ledger`, `brokerage-account-ledger` — `All-accounts ledger grouping preserves order and limits`, `brokerage-account-upcoming-events` — `Account page presents an upcoming events list`, `brokerage-account-upcoming-events` — `All-accounts upcoming event grouping preserves order and limits`
- **Source:** design.md — D4, Components and Responsibilities (`pages/account-operations`, `pages/account-events`)
- **Verification:** `npm run test:run -- src/pages/account-operations src/pages/account-events`
- **Depends on:** 2.1
- [x] 2.3 [frontend] Implementation: группировка в превью обзора `/accounts/all` после лимита в 5 записей, с preview-тестами
- **Covers:** `brokerage-account-ledger` — `Account overview includes recent ledger events`, `brokerage-account-ledger` — `All-accounts ledger grouping preserves order and limits`, `brokerage-account-upcoming-events` — `All-accounts upcoming event grouping preserves order and limits`
- **Source:** design.md — Components and Responsibilities (`pages/account/model/previews.ts`, `RecentOperations.view.tsx`, `BrokerageEventsPreview.tsx`)
- **Verification:** `npm run test:run -- src/pages/account`
- **Depends on:** 2.1
- [x] 2.4 [frontend] Implementation: группировка «Выплат» в режиме `all`. Ключи повторных выплат сохраняются, серверные аналитические итоги не меняются. Route-тесты
- **Covers:** `brokerage-account-income-analytics` — `Income payments remain traceable to exact Ledger Entries`, `brokerage-account-income-analytics` — `Realized income analytics is account-scoped and period-bound`
- **Source:** design.md — Components and Responsibilities (`pages/account-income/model/display.ts`)
- **Verification:** `npm run test:run -- src/pages/account-income`
- **Depends on:** 2.1
- [x] 2.5 [frontend] Verification: полный набор frontend gates на итоговом diff
- **Covers:** N/A — сводная проверка задач 1.1–2.4
- **Source:** design.md — Developer Verification Strategy
- **Verification:** `npm run verify` (после `nvm use --silent`)
- **Depends on:** 2.2, 2.3, 2.4
## 3. Документация
- [x] 3.1 [docs] Docs: обновить AS-IS страниц операций, будущих событий, дохода и режима «Все счета»
- **Covers:** N/A — docs отражают реализованное поведение
- **Source:** tasks.md — Docs Impact
- **Verification:** semantic review против реализации; локальные проверки docs-репозитория по его AGENTS
- **Depends on:** 2.5
## 4. Приёмка
- [x] 4.1 [frontend] Independent Review: read-only review кода против specs, ux-design и design
- **Covers:** N/A — проверка реализации всех ADDED и MODIFIED Requirements
- **Source:** process-record.md — протокол G4
- **Verification:** отчёт independent-reviewer без открытых blocker и major
- **Depends on:** 2.5
- [x] 4.2 [frontend] QA Verification: системная проверка по qa-analysis и test-cases на локальном стенде
- **Covers:** N/A — проверка всех ADDED и MODIFIED Requirements по Coverage Matrix
- **Source:** qa-analysis.md — Coverage Matrix; test-cases/*.md
- **Verification:** отчёт qa-engineer по каждому TC и Scenario из матрицы
- **Depends on:** 2.5
## Docs Impact
Обновляются AS-IS страницы в `docs` (по design.md — Docs Impact):
- `docs/domains/operations/overview.md`: группы журнала и превью; точный клиентский итог по показанным записям.
- `docs/domains/income/upcoming-events.md`: группы полного списка и превью, `dateKind`, когда показывается прогнозный итог.
- `docs/domains/income/overview.md`: группировка «Выплат» в режиме `all`; визуальный итог группы отдельно от серверной аналитики.
- `docs/domains/portfolio/all-accounts.md`: группировка в общих списках только в пределах страницы, cursor protocol прежний.
`docs/design/overview.md` не меняется: граница между UI foundation и предметным представлением остаётся прежней. ADR не требуется.