8.7 KiB
8.7 KiB
1. Точная backend-сводка и контракт списка
- 1.1 [backend] Извлечь backend-owned normalizer
Money[]из текущего Portfolio flow и применить его как для snapshot деталей, так и для компактной сводки списка: нормализовать ISO-валюты, точно сложить ненулевые стоимости позиций и Cash Balance одной валюты, не выполнять FX-конвертацию и не загружать Instrument metadata для списка.- Covers:
brokerage-accounts—Список активных брокерских счетов - Verification:
npm test -- tbank/portfolio.service.spec.ts --runInBandвbackendс cases точных итогов, Cash Balance, нулевых/безвалютных значений и пустого доступного Portfolio.
- Covers:
- 1.2 [backend] Расширить
BrokerageAccountDtonullableportfolioSummaryсtotalsByCurrencyи изменить list orchestration за существующейTbankAccessService: для каждого поддерживаемого upstream-счёта параллельно получить два Portfolio-входа, сохранить upstream-порядок, локализовать толькоTBANK_UNAVAILABLEкакportfolioSummary: null, а ошибки connection/token и прочие ошибки списка оставить существующей boundary.- Covers:
brokerage-accounts—Список активных брокерских счетов - Verification:
npm test -- tbank/brokerage-accounts.service.spec.ts --runInBandвbackendс cases порядка, успешных нескольких сводок, локальной unavailable-сводки, пустой сводки и неподавленных connection/token ошибок.
- Covers:
- 1.3 [backend] Пройти canonical backend gate после DTO, normalizer и list orchestration.
- Covers:
N/A— canonical gate проверяет реализацию уже покрытого contract и money behavior, не вводя отдельного observable requirement. - Verification:
npm run verifyвbackendпод Node 22.
- Covers:
2. Generated frontend contract и доступный список
- 2.1 [frontend] После доступности backend OpenAPI синхронизировать committed OpenAPI snapshot и generated schema через штатный workflow; использовать расширенный generated
BrokerageAccounttype без ручного transport DTO.- Covers:
N/A— это обязательная реализация решения D3 для already-specified public response, не новое client behavior. - Verification:
npm run openapi:syncвfrontend, затемnpm run openapi:checkвfrontend.
- Covers:
- 2.2 [frontend] Расширить Accounts page VM и её focused tests: сохранить существующие key,
staleTime: 60_000, отсутствие retry/refetch-on-focus, invalidation и top-level loading/error/empty/cached-snapshot selection; подготовить display model сводки карточки с максимум двумя исходными Money, индикатором остальных валют и раздельными состояниями unavailable/empty.- Covers:
brokerage-accounts—Экран списка брокерских счетов - Verification:
npm run test:run -- src/pages/accounts/ui/AccountsPage.test.tsxвfrontendс cases fresh cache, background refresh/error snapshot, limit двух валют, remaining-currency indicator, unavailable и empty summary.
- Covers:
- 2.3 [frontend] Переработать presentation списка в адаптивную одноколоночную последовательность широких ссылок-карточек: отобразить локализованные тип, имя, summary, вторичные метаданные даты и видимое действие открытия; сохранить native link navigation/focus, безопасный local summary state и форматирование каждого переданного Money существующим formatter без агрегации или FX-смысла.
- Covers:
brokerage-accounts—Экран списка брокерских счетов - Verification:
npm run test:run -- src/entities/brokerage-account/ui/BrokerageAccountList.test.tsxвfrontendс accessible link/action, доступными summary states и responsive single-column class behavior.
- Covers:
- 2.4 [frontend] Сохранить известные list error states и recovery actions в page VM/presentation: connection и invalid-token ведут только к настройкам, temporary unavailable показывает retry и settings, unknown error — только retry; при Client Cached Snapshot warning не скрывает карточки и не запускает retry автоматически.
- Covers:
brokerage-accounts—Клиентские состояния ошибки списка счетов - Verification:
npm run test:run -- src/pages/accounts/ui/AccountsPage.test.tsxвfrontendс cases всех известных/unknown errors, recovery actions и cached-snapshot warning.
- Covers:
- 2.5 [frontend] Пройти canonical frontend gate после generated contract, VM, presentation и tests.
- Covers:
N/A— canonical gate подтверждает delivered frontend behavior и boundary rules, но не задаёт новый requirement. - Verification:
npm run verifyвfrontendпод Node 22.
- Covers:
3. As-built documentation и canonical SDD checks
- 3.1 [docs] Обновить delivered documentation брокерских счетов и system overview после verified implementation: описать additive summary contract, исходные валюты без FX-агрегации, локальную unavailable-сводку, неизменную current-connection boundary и Client Cached Snapshot; не копировать OpenSpec planning artifacts.
- Covers:
N/A— docs фиксирует только поставленное as-built состояние из Design Delivery Map и не создаёт самостоятельного observable behavior. - Verification: Review
docs/features/brokerage-accounts.mdиdocs/architecture/system-overview.mdagainst delivered backend OpenAPI and frontend behavior.
- Covers:
- 3.2 [docs] Пройти canonical docs gate для as-built documentation.
- Covers:
N/A— Markdown gate подтверждает documentation delivery и не реализует отдельный Delta Requirement. - Verification:
npm run verifyвdocsпод Node 22.
- Covers:
- 3.3 [specs] Проверить canonical change artifacts и strict Delta Specs после создания Tasks, не создавая competing planning source.
- Covers:
N/A— specs area владеет SDD artifact integrity, а не отдельным runtime behavior. - Verification:
bash specs/scripts/verify-openspec-planning.sh enhance-brokerage-account-list,openspec validate enhance-brokerage-account-list --type change --strict --store wealth-ledger-specsиopenspec validate --specs --strict --store wealth-ledger-specsизspecs.
- Covers:
4. Cross-repository verification before archive
- 4.1 [workspace] Выполнить canonical workspace dispatcher после всех repository-owned tasks, включая required runtime OpenAPI contract gate для backend response и committed frontend snapshot.
- Covers:
N/A— workspace только оркестрирует approved Delivery Map и repository gates; он не владеет implementation behavior. - Verification:
bash specs/scripts/verify-workspace-change.sh enhance-brokerage-account-listиз workspace root под Node 22.
- Covers:
- 4.2 [workspace] Провести semantic verification и independent read-only review implementation против Proposal, всех Delta Requirements/Scenarios, Decisions D1–D4, rollback contract и completed Tasks; устранить Critical и Important findings до archive eligibility.
- Covers:
N/A— terminal review доказывает соответствие уже specified behavior, не вводя нового requirement. - Verification: Сохранить review scope, findings и resolution только после фактической проверки; подтвердить отсутствие Critical и Important findings.
- Covers: