Qadam Roadmap
проектdocs/audits/plans-audit-2026-03-28.md

Аудит исторических implementation plans

Обновлён 1 апр. 2026 г., 12:41 · 0 комментариев

Аудит исторических implementation plans

Паспорт документа

  • Статус документа: historical snapshot
  • Актуально на: 28 марта 2026 года
  • Владелец: backend/platform-команда
  • Пересмотр: при следующем цикле аудита, security review или ревизии противоречий в документации и спеках
  • Область применения: audit-слой проекта: снимки состояния, реестры расхождений и результаты ревизий
  • Связанные документы:

Цель документа

Этот документ фиксирует судьбу исторических implementation plans из каталога plans/. Они больше не являются источником истины, но содержат полезный инженерный контекст. После обработки эти файлы перенесены в архив plans/archived/2026-03-28-integrated/. Задача этого audit:

  • показать, какие планы уже реализованы;
  • отделить реализованное от частично завершённого и устаревшего;
  • указать, в каких канонических документах теперь живёт актуальная правда;
  • не допустить параллельного существования старых планов и текущей документации как двух равноправных слоёв знания.

Краткий вывод

Содержимое plans/ в целом не потеряно и не «лежит мёртвым грузом». По состоянию на сегодня:

  • backend-планы по логированию, Axiom и JWT token delivery реализованы;
  • web-планы по src/app, searchParams-фильтрам, infinite scroll, SVGR и базовому auth-layer реализованы существенно, но часть из них не доведена до полностью чистого post-split состояния;
  • главным незавершённым хвостом остаются не сами идеи из plans/, а остаточный legacy-слой в qadam-web: дублирующиеся components/lib, прямые fetch-вызовы в отдельных срезах и UI-дрифт относительно нового registration API.

Практическое правило:

Матрица по каждому плану

Архивный планТекущий статусЧто реально произошлоГде теперь источник истины
2026-03-14-pino-logger.mdРеализованAPI переведён на nestjs-pino, LoggerModule.forRoot(...), DI через PinoLogger, фильтры и сервисы уже используют единый structured logginganalytics-observability.md, current-state.md
2026-03-14-axiom-transport.mdРеализованВ production работает optional @axiomhq/pino transport с graceful degradation при отсутствии AXIOM_TOKEN / AXIOM_DATASETanalytics-observability.md, current-state.md
2026-03-16-jwt-token-delivery-refactor.mdРеализован и усиленЕсть TokenDeliveryService, dual delivery для web/mobile, cookie + bearer support в JwtAuthGuard, body refresh для mobile; поверх исходного плана добавлен security-hardening: атомарный single-use consume refresh token через Redisapi-routes.md, current-state.md, security-review.md
2026-03-16-web-fsd-migration.mdРеализован частичноОсновной runtime уже живёт в src/app и FSD-подобных слоях src/shared, src/entities, src/features, src/widgets, src/views; при этом в qadam-web всё ещё остаются исторические components, lib, src/components, src/lib и конкурирующие UI-слоиfrontend-separate-repo-plan.md, current-state.md, roadmap.md
2026-03-17-web-dal-layer.mdРеализован частичноОснова DAL уже есть: apiClient, serverFetch, key factories, React Query queries/mutations, SSR-prefetch, generated OpenAPI contract. Но часть admin/reference-flow всё ещё использует прямые fetch, а legacy api.ts/дублирующие слои пока не вычищены полностьюfrontend-separate-repo-plan.md, frontend-handoff.md, roadmap.md
2026-03-18-searchparams-filters.mdРеализованПубличный каталог уже инициализируется из searchParams, фильтры живут в CatalogFilterProvider, URL синхронизируется без hydration drift, Zustand-store больше не является активным runtime-источником истины для каталогаcurrent-state.md, docs/Agents/product-roadmap.md, docs/Agents/knowledge-base.md
2026-03-18-infinite-scroll-catalog.mdРеализованВ каталоге уже используется useInfiniteQuery, SSR prefetchInfiniteQuery, IntersectionObserver и накопление страниц без кнопки "Загрузить ещё"current-state.md, docs/Agents/product-roadmap.md, docs/Agents/specs/2026-03-24-mvp-spec-05-catalog-search-map.md
2026-03-18-svg-icons.mdРеализованВ qadam-web настроен @svgr/webpack, есть svg.d.ts, иконки лежат в apps/web/src/shared/icons и импортируются как React componentsfrontend-separate-repo-plan.md, current-state.md
2026-03-18-web-auth.mdРеализован частичноЕсть proxy.ts, SSR/auth gating, useCurrentUser(), auth mutations и post-login redirects. Но исходный план частично устарел: frontend всё ещё не синхронизирован до конца с новым registration API (/auth/register/buyer, /auth/register/seller) и buyer profile flowfrontend-separate-repo-plan.md, frontend-handoff.md, roadmap.md

Что уже окончательно перенесено в канонический слой

Backend / platform

  • structured logging и Axiom transport;
  • dual JWT delivery и текущая cookie/bearer модель;
  • security-hardening refresh flow;
  • observability и EventLog-контур.

Web / delivery

  • переход на src/app и FSD-подобную структуру как основной runtime;
  • searchParams-based catalog filters;
  • infinite scroll каталога;
  • SVGR-пайплайн;
  • базовый auth-layer для qadam-web;
  • React Query + SSR-prefetch + contract-driven API layer как рабочая основа отдельного frontend-репозитория.

Что остаётся незавершённым наследием этих планов

  1. Полная вычистка legacy-слоя из qadam-web:
    • дублирующиеся components / src/components;
    • дублирующиеся lib / src/lib;
    • остаточные прямые fetch-вызовы вместо общего DAL/contract layer.
  2. Полная синхронизация web-UI с новым registration API и buyer profile flow.
  3. Web smoke/e2e-контур, которого не было в исходных планах как обязательного quality gate, но который теперь обязателен по инженерным принципам.
  4. Окончательное доведение post-split operating model до image-based/docker delivery.

Как использовать plans/ дальше

  • Не писать новые канонические планы в plans/, если они претендуют на роль источника истины.
  • Для новых решений использовать docs/ и specs/.
  • Сохранять plans/ только как исторический архив инженерных пакетов и ссылаться на этот audit-документ.
  • Если старый план реализован полностью и больше не несёт полезного контекста, его можно удалить только после того, как выводы уже перенесены в канонический слой.