8.2 KiB
8.2 KiB
1. Backend contract и money mapping
- 1.1 Обновить
backend/src/tbank/upcoming-events.dto.ts: заменить отдельные nullablecurrencyиamountу Future Cash Event на одно nullable Money-поле прогнозной суммы, переиспользуя существующий Money DTO shape{ currency, value }; verification:npm test -- tbank/upcoming-events.service.spec.ts --runInBandвbackendвидит новый contract shape в expected events. - 1.2 Обновить
backend/src/tbank/upcoming-events.service.ts: coupon, dividend и maturity должны возвращать прогнозную сумму как Money в исходной валюте, offer и неизвестные денежные условия —null, без изменения периода, сортировки,calculatedAt, event types и source failure behavior; verification:npm test -- tbank/upcoming-events.service.spec.ts --runInBandвbackend. - 1.3 Расширить backend tests в
backend/src/tbank/upcoming-events.service.spec.tsдля нового Money contract: coupon/dividend/maturity содержат{ currency, value }, offer содержитnull, отменённый dividend по-прежнему исключается, partial result при source failure не возвращается; verification:npm test -- tbank/upcoming-events.service.spec.ts --runInBandвbackend. - 1.4 Проверить, что account-scoped access semantics не изменились для Upcoming Events: недоступный, закрытый, неподдерживаемый или отсутствующий в текущем T-Bank connection Brokerage Account продолжает давать существующий недоступный-account response без раскрытия событий; verification: focused existing/new test в
backend/src/tbank/upcoming-events.service.spec.tsиnpm test -- tbank/upcoming-events.service.spec.ts --runInBandвbackend. - 1.5 Запустить backend contract и quality checks после DTO/service правок; verification:
npm run lint && npm run typecheck:app && npm run typecheck:test && npm test -- --runInBandвbackend.
2. Runtime OpenAPI и frontend generated contract
- 2.1 Запустить штатную синхронизацию frontend OpenAPI artifacts после backend contract change; verification:
npm run openapi:syncвfrontendобновляет толькоfrontend/src/shared/api/spec/openapi.jsonиfrontend/src/shared/api/generated/schema.d.tsбез ручной правки generated файла. - 2.2 Проверить generated contract локально после sync; verification:
npm run openapi:check && npm run typecheckвfrontend. - 2.3 Выполнить обязательный runtime contract gate для обеих сторон API; verification:
bash specs/scripts/verify-runtime-openapi.shиз workspace root проходит после backend runtime schema и frontend committed snapshot sync.
3. Frontend consumers и пользовательское отображение событий
- 3.1 Обновить event fixtures и tests в
frontend/src/entities/brokerage-event/api/useBrokerageEvents.test.tsx,frontend/src/pages/account-events/ui/AccountEventsPage.test.tsx,frontend/src/pages/account/ui/AccountPage.vm.test.tsxи related MSW fixtures так, чтобы Future Cash Event использовал nullable Money-поле вместоamount/currency; verification:npm run test:run -- brokerage-event AccountEventsPage AccountPage.vmвfrontend. - 3.2 Обновить full events page в
frontend/src/pages/account-events/ui/AccountEventsPage.tsx: known projected amount рендерится через существующийformatMoney,nullсохраняет текущую copy без суммы, дата/type/instrument/error/empty states не меняются; verification:npm run test:run -- AccountEventsPageвfrontend. - 3.3 Обновить account overview recent events presentation в
frontend/src/pages/account/ui/components/RecentEvents.view.tsxи view-model mapping вfrontend/src/pages/account/ui/AccountPage.vm.ts, если generated type требует mapping change: known projected amount рендерится черезformatMoney,nullостаётся без суммы, limit/sorting берутся из существующего response без нового client-side поведения; verification:npm run test:run -- AccountPage.vm AccountPageвfrontend. - 3.4 Проверить, что frontend больше не обращается к removed
amount/currencyfields Future Cash Event вне generated snapshot diff; verification:rg -n "\\b(amount|currency)\\b" frontend/src/entities/brokerage-event frontend/src/pages/account-events frontend/src/pages/account/ui -g "*.ts" -g "*.tsx"reviewed manually for no legacy event-money access, затемnpm run typecheckвfrontend. - 3.5 Запустить frontend canonical gate после consumer и generated правок; verification:
npm run verifyвfrontend.
4. Docs и as-built domain language
- 4.1 Обновить
docs/architecture/domain-glossary.md: закрепить Brokerage Account как доступный через текущее T-Bank connection, Money как единый{ currency, value }, Portfolio Snapshot, Currency Instrument Position, Cash Balance, Instrument для Portfolio и Future Cash Event, а runtime/cache terms отделить от доменных терминов; verification: scoped markdown review плюсnpm run verifyвdocs. - 4.2 Обновить affected feature/system docs (
docs/features/brokerage-accounts.md,docs/features/portfolio-view.md,docs/features/brokerage-account-upcoming-events.md,docs/architecture/system-overview.mdпри необходимости) до фактического поведения: Upcoming Events показывают nullable Money прогнозной суммы, Brokerage Account описан как current-connection доступность, Portfolio Snapshot и Cash Balance/валютная позиция различаются; verification: scoped link/review check иnpm run verifyвdocs. - 4.3 Проверить, что docs не стали параллельным SDD artifact и не описывают planned behavior до реализации; verification: review affected docs на отсутствие пересказа Proposal/Design/Tasks и
npm run verifyвdocs.
5. Specs, semantic verification и archive readiness
- 5.1 Проверить OpenSpec change structurally после всех planning artifacts и перед implementation handoff; verification:
openspec validate align-domain-model-and-money-contract --type change --strict --store wealth-ledger-specsизspecs. - 5.2 После реализации выполнить semantic verification против Proposal, Delta Specs и Design: подтвердить, что changed public contract реализован только для Future Cash Event projected amount, account access остаётся current-connection based, Portfolio Snapshot/Cash Balance/Currency Instrument Position semantics не сломаны, routes/storage/cache/upstream policies не изменены; verification: зафиксировать checked areas и conclusion в implementation summary перед archive.
- 5.3 Выполнить affected repository gates под Node 22: backend
npm run verify, frontendnpm run verify, docsnpm run verify, specs strict validation; verification: все commands завершаются успешно без auto-fix как completion evidence candidates. - 5.4 Выполнить workspace dispatcher как pre-archive gate; verification:
bash specs/scripts/verify-workspace-change.sh align-domain-model-and-money-contractиз workspace root. - 5.5 Провести independent read-only review generated-contract diff, backend money mapping, frontend rendering, docs terminology и OpenSpec deltas; verification: отсутствие Critical/Important findings до archive.