## Why Frontend conventions уже называют разделение ViewModel/View, а project template описывает эту границу подробнее. Однако поставленный finance UI сейчас содержит page view, который смешивает рендеринг с server-state hooks, соседней загрузкой данных, доменной группировкой и derived presentation calculations. В результате получается misleading example для будущих AI-assisted changes: агент может следовать крупнейшей локальной странице и всё равно нарушить intended boundary. Это нужно исправить сейчас, потому что проблема не сводится к локальной сложности одного файла. Текущий пример ослабляет guidance, которое должно удерживать будущую frontend-работу маленькой, reviewable и testable. Если граница остаётся implicit, та же ошибка может повториться на следующих finance pages даже после ручной очистки текущего файла. ## What Changes - Восстановить frontend page architecture так, чтобы data fetching, state selection, domain grouping, derived display flags и callbacks жили в ViewModel или container layer, а view modules оставались сосредоточены на rendering props. - Уточнить frontend-local guidance для AI agents и maintainers, чтобы роли container, ViewModel и view modules были explicit и согласованы с reference template. - Держать view modules маленькими по ответственности: когда section или state имеет отдельный смысл и может быть самостоятельно назван, его нужно выносить в соседний presentation component, а не накапливать внутри одного большого view. - Сохранить текущее user-visible поведение account page, routing, localized text, loading/error/empty/loaded states, cached-snapshot behavior и API contract. - Добавить focused regression coverage для derived presentation data, перенесённых во ViewModel, сохранив existing rendering coverage для видимых состояний страницы. - Non-goal: вводить automatic lint или dependency-cruiser rule для этой границы в данном change. - Non-goal: нормализовать другие account-related pages, которые сейчас используют другие page architecture patterns. - Non-goal: менять HTTP routes, generated OpenAPI types, backend behavior, finance domain terminology, visual design или portfolio calculations за пределами переноса existing display-only derivation в правильный frontend layer. ## Capabilities ### New Capabilities _Нет._ ### Modified Capabilities _Нет._ Это behavior-preserving frontend architecture и documentation hardening change. Он отказывается от Delta Specs через `skip_specs: true`, потому что не меняются user-visible capability, API contract, durable data behavior или product requirement. Любое обнаруженное observable behavior change должно вернуться к Proposal и Delta Specs до Design. ## Impact Users должны видеть одно и то же поведение account page до и после этого change. Frontend maintainers и AI agents получают более ясное local rule о том, где должна жить page logic, и исправленный account page example, которому можно следовать. Affected implementation area — frontend page structure и frontend-local architecture documentation. Specs отслеживает этот SDD lifecycle. Backend и отдельный as-built docs repository не должны меняться.