4.5 KiB
1. Миграция AppBreadcrumbs на Mantine Breadcrumbs
-
1.1 [frontend] Заменить ручную разметку
BreadcrumbTrailвsrc/app/ui/AppBreadcrumbs.tsxнаMantine Breadcrumbs:<Breadcrumbs component="nav" aria-label={t("breadcrumbs.label")} data-depth={items.length} separator="→">, предшествующие крошки —<Link>children, текущая —<span aria-current="page">; логикаAccountBreadcrumbs/AppBreadcrumbs(маршруты и построение цепочек) остается без изменений- Covers:
N/A— замена внутренней реализации без изменения observable behavior спекуapp-breadcrumb-navigation(skip_specs) и соответствует решениям D1–D2 Design. - Verification: Прочитать
src/app/ui/AppBreadcrumbs.tsx, убедиться, что используетсяMantine Breadcrumbsсcomponent="nav",aria-label,data-depthиseparator="→", а цепочки/пропсыAccountBreadcrumbsне изменены.
- Covers:
-
1.2 [frontend] Удалить кастомные классы хлебных крошек (
breadcrumbs,breadcrumbs-entry,breadcrumbs-separator-N,breadcrumbs-item-N) и их CSS изsrc/app/styles.css, сохранив только адаптивное правило скрытия промежуточных крошек поdata-depthна root и базовое оформление ссылок- Covers:
N/A— удаление дублирующего стиля по D3 Design; адаптивность поdata-depthостаётся кастомной, т.к. Mantine Breadcrumbs не скрывает крошки по глубине. - Verification: Прочитать
src/app/styles.css, проверить отсутствие unusedbreadcrumbs-*селекторов и наличие медиа-правилаdata-depth="3"/эквивалента для узкого экрана.
- Covers:
-
1.3 [frontend] Обновить
src/app/ui/AppBreadcrumbs.test.tsxпод новую DOM-разметку Mantine: сохранить проверки navigation role сaria-label,aria-current="page"у текущей крошки,data-depth, ссылок и fallback «Счет» без identifier- Covers:
N/A— тест проверяет неизменное поведение (roles,aria-current,data-depth, ссылки) и не создаёт новый Requirement; требует адаптации к структуре Mantine. - Verification: Запустить таргетированно тест (например
npm run test:unit -- AppBreadcrumbsили эквивалент изpackage.json), убедиться в зелёном проходе.
- Covers:
-
1.4 [frontend] Выполнить полный local-verify-гейт frontend для подтверждения строгой корректности после рефакторинга
- Covers:
N/A— canonical gate проверяет affected frontend delivery (D1–D3), а не вводит самостоятельное observable behavior. - Verification: Выполнить
npm ci(при необходимости) иnpm run verifyвfrontendна Node 22, проверить отсутствие ошибок strict TypeScript, Biome, тестов/coverage, Knip, dependency boundaries и build.
- Covers:
2. Affected-area gates и итоговая проверка
-
2.1 [specs] Выполнить structural validation change-артефактов canonical store
- Covers:
N/A— задача проверяет specs-delivery уже покрытых артефактов (skip_specs) и не вводит новый Requirement. - Verification: Запустить
openspec validate consume-mantine-components --type change --strict --store wealth-ledger-specsиgit diff --checkвspecs.
- Covers:
-
2.2 [workspace] Провести semantic verification реализации против Proposal, Design и Tasks и independent read-only review без Critical/Important findings
- Covers:
N/A— terminal semantic verification и independent review проверяют change целиком и не реализуют отдельный Requirement. - Verification: Сверить фактическое поведение крошек и чистку стилей с Proposal/Design/Tasks, подтвердить отсутствие blocking findings перед archive eligibility.
- Covers: