Files
specs/openspec/changes/archive/2026-08-27-show-stock-tickers-on-position-cards/tasks.md
T

39 lines
4.7 KiB
Markdown
Raw 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.
## 1. Backend Portfolio contract
- [x] 1.1 [backend] Добавить nullable `ticker` в нормализованную Portfolio Position и её OpenAPI DTO, заполняя его из уже разрешённой metadata с `null` для пустого или недоступного значения; расширить focused Portfolio service tests для доступного и отсутствующего ticker.
- **Covers:** `portfolio-view` — `Нормализованный состав Portfolio`
- **Verification:** `npm test -- portfolio.service.spec.ts --runInBand` в `backend` подтверждает ticker и null fallback в ответе Portfolio.
- [x] 1.2 [backend] Опубликовать обновлённый runtime OpenAPI из backend и выполнить canonical backend quality gate.
- **Covers:** `N/A` — runtime schema — технический источник frontend snapshot для утверждённого additive public contract.
- **Verification:** `npm run verify` в `backend`.
## 2. Frontend generated contract и карточка акции
- [x] 2.1 [frontend] Скопировать опубликованный backend OpenAPI document в committed snapshot и регенерировать frontend types штатной командой без ручной правки generated файла.
- **Covers:** `N/A` — generated contract синхронизирует утверждённое backend behavior с frontend consumer и не вводит самостоятельное observable behavior.
- **Verification:** `npm run openapi:generate` в `frontend`; snapshot и generated `PortfolioPositionDto` содержат nullable `ticker`.
- [x] 2.2 [frontend] Изменить presentation карточки так, чтобы `STOCK` показывал ticker с ISIN fallback, а `BOND` и другие типы сохраняли ISIN; добавить focused regression coverage этих трёх случаев.
- **Covers:** `portfolio-view` — `Представление карточек позиций на клиенте`
- **Verification:** focused frontend test card/account page подтверждает ticker-only stock, ISIN fallback и неизменённую облигацию.
- [x] 2.3 [frontend] Выполнить canonical frontend gate после обновления generated contract и presentation.
- **Covers:** `N/A` — canonical gate проверяет type safety, UI tests, boundaries и production build изменённого frontend.
- **Verification:** `npm run verify` в `frontend`.
## 3. As-built documentation и canonical specs
- [x] 3.1 [docs] После проверенной реализации обновить Portfolio feature documentation: nullable ticker в Position и правило его отображения только на карточке акции с ISIN fallback.
- **Covers:** `N/A` — as-built documentation фиксирует delivered behavior, но не является source of normative requirement.
- **Verification:** `npm run verify` в `docs` и scoped review, что документация не описывает планировочные артефакты.
- [x] 3.2 [specs] Подтвердить, что approved Proposal, Delta Specs и Design остаются единственным canonical описанием change до archive.
- **Covers:** `N/A` — change artifacts уже владеют спецификацией behavior; задача не добавляет отдельного runtime behavior.
- **Verification:** `openspec validate show-stock-tickers-on-position-cards --type change --strict --store wealth-ledger-specs` в `specs`.
## 4. Cross-area contract и completion review
- [x] 4.1 [workspace] Проверить обязательное совпадение backend runtime OpenAPI и committed frontend snapshot после их синхронизации.
- **Covers:** `N/A` — cross-repository contract gate подтверждает delivery Decision, не создавая дополнительное observable behavior.
- **Verification:** `npm run test:openapi-contract` в `backend`.
- [x] 4.2 [workspace] Выполнить semantic verification против Proposal, Delta Specs и Design, затем independent read-only review backend mapping, generated contract, stock-card fallback и as-built docs.
- **Covers:** `N/A` — cross-area verification подтверждает реализацию утверждённого behavior и rollback assumptions.
- **Verification:** review фиксирует проверенные области и не содержит Critical или Important findings перед archive.