4.0 KiB
4.0 KiB
1. Backend: expose ISIN
- 1.1 Расширить тип
TbankInstrumentполемisin?: stringвtbank.client.ts - 1.2 Добавить nullable
isinвPortfolioPositionDtoвportfolio.dto.ts - 1.3 Возвращать
isin: metadata?.isin?.trim() || nullвposition()вportfolio.service.ts - 1.4 Обновить
portfolio.service.spec.ts: моки и ожиданияisin, включая отсутствие ISIN - 1.5 Проверить backend:
npm run lint,npm test,npm run build
2. Frontend: OpenAPI contract и display-helper
- 2.1 Обновить snapshot и
schema.d.ts:npm run openapi:sync(полеisin) - 2.2 Добавить helper
formatShare(numerator, denominator)вdisplay.ts(строка %, 1 знак,nullпри недоступности) - 2.3 Добавить unit-тесты
formatShareвdisplay.test.ts
3. Frontend: Position Card grid-плитки
- 3.1 Заменить
Card-строки вPositionSectionнаSimpleGrid cols={{ base: 1, sm: 2, md: 3 }}вAccountPage.view.tsx - 3.2 Вычислить во view сумму
currentValueпозиций по каждой валюте (без Cash Balance) и передать её плиткам - 3.3 Рендерить плитку: имя,
isin(mono, dim), количество,currentValue,absoluteReturn(зелёный/красный),averagePurchasePrice, долю; скрывать null-метрики - 3.4 Добавить стили плитки в
AccountPage.module.css - 3.5 Добавить i18n-ключи в
ru.ts(средняя цена покупки, доля, ISIN)
4. Frontend: тесты
- 4.1 Обновить
AccountPage.test.tsx: заменить проверку «—» на скрытие null, добавить проверки плиток,isin, доли и сохранения upstream-порядка - 4.2 Проверить frontend:
npm run verify
5. Документация
- 5.1 Добавить термин Instrument в
CONTEXT.md - 5.2 Обновить
docs/features/portfolio-view.md: grid-плитки, метрики,isin, доля; API-секция проisin
6. Верификация и архив
- 6.1 Прогнать
opsx-verifyпо change - 6.2 Архив change через
openspec archiveи синхронизация delta в main spec - 6.3 Закоммитить по репозиториям: specs, docs, backend, frontend
Сверка evidence — 2026-08-23
Задачи 6.2–6.3 были незакрытыми administrative tasks после фактического archive. Их статус согласован по текущему read-only evidence; эта запись не меняет archive date, implementation files, delta specs или прошлые Git commits.
git -C specs show --stat --oneline --summary 6795ee6— commit6795ee6от 2026-08-17 создаётopenspec/changes/archive/2026-08-17-redesign-position-cards/и одновременно изменяетopenspec/specs/portfolio-view/spec.md; это подтверждает archive и sync delta.git -C docs show --stat --oneline --summary c628535— commitc628535от 2026-08-17 обновляетfeatures/portfolio-view.md.git -C backend show --stat --oneline --summary 5aa9bd3— commit5aa9bd3от 2026-08-17 содержит ISIN DTO/service/client/spec changes.git -C frontend show --stat --oneline --summary 5168870— commit5168870от 2026-08-17 содержит Position Card, OpenAPI, i18n и tests changes.
В local history отсутствует отдельный terminal transcript вызова openspec archive; evidence выше подтверждает его наблюдаемый результат и связанные commits, не приписывая прошлому workflow незафиксированные команды.