# Architecture Quality Backlog Дата: 2026-06-25 Статус: draft ## Контекст В репозитории уже есть несколько завершённых волн архитектурного улучшения, но после них остались: - разрозненные остатки архитектурного долга во frontend и backend; - устаревшие или частично противоречивые документы; - несколько высокосвязанных зон, которые нельзя безопасно рефакторить одной крупной итерацией. Эта фича не меняет runtime-поведение. Её задача - превратить найденные архитектурные проблемы в нормализованный, приоритизированный backlog для последующих узких refactor-фич. ## Цель Зафиксировать актуальный архитектурный backlog по frontend, backend и проектной документации, разделить его на независимые follow-up фичи и определить порядок их выполнения. ## Требования ### 1. Инвентаризация текущего состояния Нужно опираться на три источника: - `apps/frontend/src/` - реальные границы слоёв, API слой, session state, query key usage; - `apps/backend/src/` - границы NestJS-модулей, сервисов, Prisma-доступа, DTO и инфраструктурных клиентов; - `docs/` и `apps/docs/docs/` - roadmap, epics, feature specs/plans/tasks и опубликованная архитектурная документация. ### 2. Нормализация находок Каждый найденный пункт долга должен быть отнесён к одной из категорий: - уже закрыто; - устарело и требует пересмотра документации; - открыто и должно стать отдельной follow-up фичей; - открыто, но пока должно остаться в backlog без немедленной реализации. ### 3. Приоритизация Backlog должен быть упорядочен по следующему правилу: - сначала низкорисковые и высокосигнальные документы/contract cleanup задачи; - затем сервисные границы backend; - затем frontend state/API hardening; - позже - крупные или спорные refactor-направления. ### 4. Границы будущих фич Каждый backlog-item должен быть независимым настолько, чтобы его можно было превратить в отдельную feature-spec без смешивания frontend и backend implementation work в одном change-set. ### 5. Никаких новых возможностей Фича не должна: - менять пользовательские сценарии; - добавлять новые API; - менять модель данных; - вводить новые библиотеки или инфраструктуру; - исправлять runtime-bug'и вне рамок документации и backlog-формализации. ## Предлагаемый backlog ### 1. Documentation Source-of-Truth Sync Синхронизировать roadmap, epics и опубликованные architecture docs с текущим состоянием кода, убрать устаревшие статусы и противоречия. ### 2. Backend Service Boundary Cleanup Сделать явными границы `PortfolioService`, `TBankModule` и связанных сервисов, чтобы последующие refactor-фичи можно было изолировать по доменам. ### 3. Backend Contract Type-Safety Hardening Закрыть свободные строки и dynamic access в screener/T-Bank контрактных зонах, не меняя публичный API. ### 4. Frontend Session Model Simplification Свести session state к одной понятной точке истины и убрать лишние внутренние импорты между слоями. ### 5. Frontend Query-Key and API Wrapper Hardening Нормализовать query key factories и повысить устойчивость API request layer к contract drift. ## Ограничения - Только docs/backlog scope. - Не трогать runtime-код в рамках этой фичи. - Не объединять в один backlog-item несвязанные frontend и backend работы. - Не добавлять новые продуктовые требования. ## Критерии приемки - Есть один согласованный backlog с приоритетом и кратким обоснованием по каждому пункту. - Для каждого backlog-item указаны: - цель; - риск; - зависимости; - ожидаемый артефакт follow-up фичи; - причина, почему item не закрыт уже сейчас. - Документация не противоречит текущему коду и уже завершённым refactor-волнам. - Backlog отражён в `docs/roadmap.md` и связан с релевантными epics/feature docs. - В рамках этой фичи не изменены файлы `apps/frontend/src/**` и `apps/backend/src/**`.