refactor: group canonical specs by domain and archive account-top-positions (#74)
Conventional commits / commits (pull_request) Successful in 10s
Specs security / security (pull_request) Successful in 21s
Specs verify / verify (pull_request) Successful in 17s

- Move canonical specs into domain folders (identity, tbank, brokerage,
  portfolio, instruments, banking, frontend-platform, backend-platform).
- Remove process specs; keep still-valid unique rules in openspec/config.yaml.
- Keep project-foundation behavior as app-shell and http-api-foundation.
- Archive account-top-positions without G4 by owner decision (descoped
  review/QA recorded in process-record); sync portfolio-concentration and
  portfolio-view.
- Group AI_INDEX by domain.

Refs: WealthLedger/main#48
This commit is contained in:
2026-11-02 21:47:14 +03:00
parent 1fd7e6ad97
commit 8f74eba85b
61 changed files with 707 additions and 1448 deletions
@@ -0,0 +1,28 @@
# Test Cases — reg (регрессия затронутых областей)
Проверки сохранения существующего поведения, изменённого рисками change.
### TC-REG-001 Существующая вкладка «Позиции» неизменна
- **Verifies:** `portfolio-concentration` — `Вкладка «Концентрация» страницы счёта` («SHALL NOT менять вкладку по умолчанию и содержание остальных вкладок»); регрессионный baseline canonical `portfolio-view`
- **Risk / Priority:** высокий / high — новая вкладка не должна ломать существующий экран
- **Preconditions:** счёт с позициями и Cash Balance; вкладка «Позиции» открывается по умолчанию в canonical-поведении
- **Steps:**
1. Открыть страницу счёта: какая вкладка активна, состав и порядок вкладок.
2. Пройтись по каждой прежней вкладке: содержимое и сортировка списка позиций, валютная сводка.
3. Режим «Все счета»: проверить отсутствие «Концентрации» и целостность прежних вкладок.
- **Expected Results:** по умолчанию открыта прежняя вкладка («Позиции»); «Концентрация» — рядом, последней из новых; содержание остальных вкладок и «Всех счетов» идентично canonical (сравнение по эталонным данным).
- **Automation Candidate:** yes (e2e + существующий regression-прогон)
### TC-REG-004 Часовой обход: sector/brand не влияют на успех и нагрузку синхронизации
- **Verifies:** `hourly-investment-sync` (canonical) + PVΔ `Свежесть и fallback` / F07, F10, F14
- **Risk / Priority:** высокий / high — новые RPC-вызовы в обходе могут ломать или замедлять финансовую синхронизацию
- **Preconditions:** тестовое подключение; счёт из TC-CONC-007 (6 позиций, смешанные секторы/бренды); метрики `tbank.rpc.*`
- **Steps:**
1. Обход при полностью успешных ответах: события `tbank.rpc.*`, успех публикации, `lastSuccessfulAt`.
2. Обход с тотальным сбоем sector/brand (UNAVAILABLE на все инструментальные вызовы), финансы успешны.
3. Обход с RESOURCE_EXHAUSTED на `GetAssetBy` (после повторов клиента).
4. Обход, где финансовые ответы не получены, но sector/brand успешны.
- **Expected Results:** шаг 1 — Snapshot опубликован, `isStale: false`. Шаги 2–3 — Snapshot опубликован, успех/свежесть финансов не изменены («Результат получения сектора и эмитента»: неуспешное получение SHALL NOT мешать обновлению Portfolio), sector/brand — прежние известные. Шаг 4 — публикации нет, прежний Snapshot с `isStale: true` (F01: успех sector/brand не заменяет финансовый). Число новых RPC-вызовов за обход фиксируется как baseline для Q-F3.
- **Automation Candidate:** yes (integration)