Files
specs/openspec/changes/archive/2026-08-24-tighten-frontend-quality-guardrails/tasks.md
T

4.1 KiB
Raw Blame History

1. Зафиксировать remediation scope

  • 1.1 В docs/development/audit-remediation.md перевести WL-P3-02, WL-P3-03, WL-P3-05 и WL-P3-06 в active с change tighten-frontend-quality-guardrails; WL-P3-04 оставить planned и не добавлять terminal evidence до archive.
  • 1.2 Зафиксировать Node 22 baseline: выполнить frontend npm run verify, записать observed tests, coverage и initial bundle size в change evidence.

2. Enforce structural public API boundaries

  • 2.1 Добавить fixture-based failing checks для dependency-cruiser: cycle и import внутреннего file другого slice должны быть rejected, а same-slice и public-index imports должны оставаться allowed.
  • 2.2 Запустить новые dependency fixture checks до implementation и подтвердить expected red result для отсутствующих rules.
  • 2.3 Добавить no-circular и capture-group public-API rule в frontend/dependency-cruiser.cjs; включить fixture checks в documented frontend dependency gate.
  • 2.4 Вынести i18n initialization в leaf module, сохранить public exports через shared/i18n/index.ts и перевести validation helper на leaf import, чтобы устранить cycle.
  • 2.5 Реэкспортировать route error boundary из public routes API и перевести application и auth imports на соответствующие public APIs.
  • 2.6 Выполнить targeted tests и npm run deps; подтвердить green result для committed source и expected rejection обоих fixture violations.

3. Сделать initial payload измеримым и ограниченным

  • 3.1 Написать failing unit tests для manifest parser: он суммирует entry asset с transitive eager imports, не включает dynamic imports, отклоняет malformed manifest и сообщает initial-budget/lazy-baseline regressions.
  • 3.2 Запустить bundle parser tests и подтвердить expected red result до создания parser/check command.
  • 3.3 Реализовать manifest-based bundle budget and explicit baseline scripts без runtime dependencies; normal check не должен изменять baseline.
  • 3.4 Lazy-load route page boundaries через React lazy/Suspense с Mantine fallback, не меняя route paths, auth redirects или application accessibility policy.
  • 3.5 Включить Vite manifest output, bundle check и explicit reviewed lazy route baseline в package scripts; добавить bundle check в npm run verify.
  • 3.6 Сформировать initial lazy-route baseline после code splitting и подтвердить, что build проходит initial budget ≤ 500 * 1024 bytes.
  • 3.7 Выполнить bundle parser tests, route regression tests и bundle gate; подтвердить green result и absence ручного vendor chunk policy.

4. Закрепить coverage floors

  • 4.1 Добавить global Vitest thresholds: statements 82, branches 75, functions 75, lines 83, не меняя scenario tests ради процента.
  • 4.2 Запустить coverage command и подтвердить, что committed suite проходит все четыре floors.

5. Провести completion checks

  • 5.1 Выполнить frontend npm run verify под Node 22, targeted tests, git diff --check и зафиксировать observed results.
  • 5.2 Выполнить strict change validation, synced-spec validation и OpenSpec authority verifier с --store wealth-ledger-specs.
  • 5.3 Провести independent read-only review implementation, tests, generated/build artifacts и docs scope; устранить blocking findings до archive.
  • 5.4 Выполнить applicable opsx-verify procedure и устранить every blocking completeness, correctness или coherence result до archive.