Files
specs/openspec/changes/archive/2026-08-27-replace-loading-spinners-with-skeletons/tasks.md
T

54 lines
8.6 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. App-level loading boundaries
- [x] 1.1 [frontend] Заменить route Suspense fallbacks на structural skeleton variants для public auth routes, ещё не загруженного application shell и content area внутри уже доступного shell.
- **Covers:** `frontend-loading-presentation` — `Представление загрузки маршрута и восстановления сессии`
- **Verification:** Route UI tests подтверждают подходящий skeleton fallback и сохранение уже отрисованного shell без проверки внутренней DOM-разметки Mantine.
- [x] 1.2 [frontend] Показывать neutral shell skeleton в public и protected auth guards до `ready`, сохранив существующие session decisions и redirects после bootstrap.
- **Covers:** `frontend-loading-presentation` — `Представление загрузки маршрута и восстановления сессии`
- **Verification:** Auth/route tests подтверждают отсутствие public и protected route content до `ready` и прежние redirects для authenticated и unauthenticated outcomes.
## 2. Content loading presentation
- [x] 2.1 [frontend] Реализовать page-owned initial skeleton views для Accounts и Portfolio с layout regions, соответствующими их loaded headings, cards, summaries и sections.
- **Covers:** `frontend-loading-presentation` — `Структурные placeholders для загрузки содержимого`
- **Verification:** Page UI tests подтверждают accessible busy state, отсутствие primary spinner/fake content/focus targets и сохранение существующих error, empty и loaded outcomes.
- [x] 2.2 [frontend] Реализовать page-owned initial skeleton views для Operations и Events с формой ожидаемых filters и rows, не меняя их ViewModel или request flow.
- **Covers:** `frontend-loading-presentation` — `Структурные placeholders для загрузки содержимого`
- **Verification:** Page UI tests подтверждают structural skeleton только при отсутствии результата и прежний переход к error, empty и loaded views.
- [x] 2.3 [frontend] Заменить loading-текст в recent operations, recent events и T-Bank connection на section-owned skeletons, ограниченные незагруженным блоком.
- **Covers:** `frontend-loading-presentation` — `Структурные placeholders для загрузки содержимого`
- **Verification:** Section UI tests подтверждают, что skeleton занимает только ожидающий блок, соседний page context остаётся видимым, а placeholders не интерактивны.
- [x] 2.4 [frontend] Удалить generic spinner-loading mode из StateView после миграции consumers и сохранить Button loading и локальные refresh indicators для pending mutations и Client Cached Snapshot.
- **Covers:** `frontend-loading-presentation` — `Контекстная индикация действий и фонового обновления`
- **Verification:** UI tests подтверждают сохранение controls или cached content вместе с compact progress и отсутствие skeleton replacement в mutation/refetch states.
- [x] 2.5 [frontend] Обновить frontend UI pattern documentation в соответствии с реализованной границей initial/partial skeleton versus contextual progress.
- **Covers:** `frontend-loading-presentation` — `Структурные placeholders для загрузки содержимого`; `frontend-loading-presentation` — `Контекстная индикация действий и фонового обновления`
- **Verification:** `frontend/docs/UI-PATTERN.md` описывает фактическое ownership loading views и не меняет data/auth/router semantics.
## 3. Affected repository delivery
- [x] 3.1 [frontend] Выполнить canonical frontend gate и scoped responsive/accessibility review всех новых app, page и section skeleton states.
- **Covers:** `N/A` — canonical gate и presentation review подтверждают delivery утверждённого frontend Design, но не вводят самостоятельное observable behavior.
- **Verification:** Под Node 22 выполнить `npm run verify` в `frontend`; проверить narrow и wide layouts, busy semantics, keyboard focus и rollback-safe auth bootstrap fallback.
- [x] 3.2 [docs] Обновить as-built system overview и затронутые authentication, accounts и Portfolio feature docs, описав поставленное различие structural skeleton и contextual progress.
- **Covers:** `frontend-loading-presentation` — `Структурные placeholders для загрузки содержимого`; `frontend-loading-presentation` — `Представление загрузки маршрута и восстановления сессии`; `frontend-loading-presentation` — `Контекстная индикация действий и фонового обновления`
- **Verification:** Affected docs описывают только фактический пользовательский flow, сохраняют локальные ссылки и не копируют Proposal, Delta Specs, Design или Tasks.
- [x] 3.3 [docs] Выполнить canonical docs gate после as-built updates.
- **Covers:** `N/A` — non-mutating docs gate проверяет affected delivery area и не добавляет новое product behavior.
- **Verification:** Под Node 22 выполнить `npm run verify` в `docs`.
- [x] 3.4 [specs] Сверить завершённую реализацию и отмеченные Tasks с каждым Requirement canonical delta, сохранив approved semantics либо маршрутизировав semantic mismatch обратно в Specification.
- **Covers:** `frontend-loading-presentation` — `Структурные placeholders для загрузки содержимого`; `frontend-loading-presentation` — `Представление загрузки маршрута и восстановления сессии`; `frontend-loading-presentation` — `Контекстная индикация действий и фонового обновления`
- **Verification:** Requirement-by-requirement comparison не оставляет unchecked implementation scope или behavior, отсутствующее в approved artifacts.
- [x] 3.5 [specs] Выполнить native strict validation change и canonical main specs.
- **Covers:** `N/A` — structural validation является canonical gate affected specs repository, а не самостоятельным пользовательским behavior.
- **Verification:** Выполнить `openspec validate replace-loading-spinners-with-skeletons --type change --strict --store wealth-ledger-specs` и `openspec validate --specs --strict --store wealth-ledger-specs`.
## 4. Cross-area verification
- [x] 4.1 [workspace] Семантически проверить frontend и docs delivery против Proposal, Delta Specs, Design и полного Tasks checklist после успешных affected-area gates.
- **Covers:** `N/A` — cross-repository semantic verification сопоставляет уже утверждённый scope и delivery, не владея implementation ни одной repository area.
- **Verification:** Зафиксирована requirement-by-requirement проверка initial/partial, route/auth и contextual-progress behavior без незапланированных отклонений.
- [x] 4.2 [workspace] Провести независимый read-only review завершённого change после semantic verification.
- **Covers:** `N/A` — independent review является обязательной cross-area completion проверкой и не создаёт product behavior или repository-owned implementation.
- **Verification:** Review охватывает implementation, canonical artifacts, accessibility, rollback boundary и affected docs; Critical и Important findings отсутствуют либо change возвращён в ответственную фазу.