Files
specs/openspec/changes/archive/2026-09-09-simplify-income-page/tasks.md
T

8.6 KiB
Raw Blame History

1. Frontend behavior and presentation

  • 1.1 [frontend] Перевести форму периода income page на управляемые Mantine DateInput, сохранив отдельные draft и applied значения, строгую проверку видимого ввода, московскую границу сегодняшнего дня, явное применение, немедленный сброс и восстановление из URL.
    • Covers: brokerage-account-income-analytics — User explicitly applies an analytics period represented in the URL
    • Verification: Page UI tests подтверждают формат ДД.ММ.ГГГГ, календарный и клавиатурный ввод, отсутствие запроса и сохранение результата/URL при invalid draft, применение допустимого периода, reset при изменённом draft и восстановление applied period из URL.
  • 1.2 [frontend] Заменить Accordion breakdown плоским разделом «Выплаты» с отдельной LedgerEntryRow-карточкой каждой entry, без внешних instrument cards, их итогов/count и заголовков валют; сохранить исходный порядок entries, opaque membership guards, signed payments и устойчивые keys повторяющихся entries.
    • Covers: brokerage-account-income-analytics — Instrument breakdown is traceable to exact Ledger Entries; brokerage-account-income-analytics — Income payments remain traceable to exact Ledger Entries
    • Verification: Page/component tests подтверждают одну карточку на entry в исходном порядке, отсутствие instrument/currency groups и instrument totals/count; несколько валют, отрицательные корректировки, повторяющиеся IDs и повреждённый membership сохраняют согласованные outcomes без disclosure action.
  • 1.3 [frontend] Удалить из income page trend и forecast composition, derived models, events query subscription и ставшие неиспользуемыми локальные views/styles/i18n, сохранив текстовые totals, currency separation, comparisons и независимую страницу Future Cash Events.
    • Covers: brokerage-account-income-analytics — Analytics summary and trend remain readable per currency; brokerage-account-income-analytics — Forecast is separate from realized income; brokerage-account-income-analytics — Analytics summary remains readable per currency; brokerage-account-income-analytics — Income page excludes upcoming forecasts
    • Verification: Page/route tests подтверждают текстовые итоги и сравнения без «Динамики» и «Ближайшего прогноза», отсутствие запроса events со страницы income, устойчивость realized analytics при недоступности events API и прежнюю доступность самостоятельной страницы «Будущие события».
  • 1.4 [frontend] Привести loaded, loading, empty, error и cached-snapshot presentation к inline UI/UX package revision simplify-income-page-ui-r2, включая отсутствие отдельной подписи периода, семантическую иерархию, keyboard focus, field errors и responsive layout фильтров и отдельных карточек выплат.
    • Covers: brokerage-account-income-analytics — User explicitly applies an analytics period represented in the URL; brokerage-account-income-analytics — Instrument breakdown is traceable to exact Ledger Entries; brokerage-account-income-analytics — Income payments remain traceable to exact Ledger Entries; brokerage-account-income-analytics — Analytics summary remains readable per currency; brokerage-account-income-analytics — Income page excludes upcoming forecasts
    • Verification: UI tests проверяют доступные labels/errors, порядок действий и state selection; scoped review на ширинах 320 px, менее 36em, 36em–48em и от 48em подтверждает отсутствие горизонтального scroll, перенос длинных названий и сумм, 44 px touch targets и соответствие package revision.

2. Affected repository delivery

  • 2.1 [frontend] Выполнить canonical frontend gate после завершения income page delivery.
    • Covers: N/A — non-mutating gate проверяет frontend implementation уже покрытых Requirements и UI/UX package, не создавая самостоятельного observable behavior.
    • Verification: Под Node 22 выполнить npm run verify в frontend.
  • 2.2 [docs] Обновить as-built описание пассивного дохода: календарные draft/applied фильтры, отдельная карточка каждой выплаты без instrument/currency groups и подписи периода, сохранённые totals/comparisons и отсутствие trend/forecast UI при неизменном income-analytics API.
    • Covers: brokerage-account-income-analytics — Analytics summary and trend remain readable per currency; brokerage-account-income-analytics — Forecast is separate from realized income; brokerage-account-income-analytics — User explicitly applies an analytics period represented in the URL; brokerage-account-income-analytics — Instrument breakdown is traceable to exact Ledger Entries; brokerage-account-income-analytics — Income payments remain traceable to exact Ledger Entries; brokerage-account-income-analytics — Analytics summary remains readable per currency; brokerage-account-income-analytics — Income page excludes upcoming forecasts
    • Verification: docs/features/brokerage-account-income-analytics.md описывает только фактически поставленный flow, сохраняет корректные локальные ссылки и не копирует Proposal, Delta Specs, Design или Tasks.
  • 2.3 [docs] Выполнить canonical docs gate после as-built update.
    • Covers: N/A — non-mutating gate проверяет affected docs delivery и ссылочную целостность, не добавляя product behavior.
    • Verification: Под Node 22 выполнить npm run verify в docs.
  • 2.4 [specs] Сверить завершённые frontend и docs изменения и отмеченные Tasks со всеми operation sections canonical delta, не изменяя approved semantics и сохраняя backend и runtime-openapi как N/A.
    • Covers: brokerage-account-income-analytics — Analytics summary and trend remain readable per currency; brokerage-account-income-analytics — Forecast is separate from realized income; brokerage-account-income-analytics — User explicitly applies an analytics period represented in the URL; brokerage-account-income-analytics — Instrument breakdown is traceable to exact Ledger Entries; brokerage-account-income-analytics — Income payments remain traceable to exact Ledger Entries; brokerage-account-income-analytics — Analytics summary remains readable per currency; brokerage-account-income-analytics — Income page excludes upcoming forecasts
    • Verification: Requirement-by-requirement comparison с Proposal, Delta Specs, Design package revision simplify-income-page-ui-r2 и delivery не оставляет unchecked implementation scope или поведения вне approved artifacts; найденный semantic mismatch маршрутизируется в ответственную planning boundary.
  • 2.5 [specs] Выполнить canonical native strict validation change и main specs после обновления task progress.
    • Covers: N/A — structural validation является обязательным gate affected specs repository и не представляет новое пользовательское поведение.
    • Verification: Под Node 22 выполнить openspec validate simplify-income-page --type change --strict --store wealth-ledger-specs и openspec validate --specs --strict --store wealth-ledger-specs из specs.