2.8 KiB
Frontend
Назначение и authority
React/Vite-клиент WealthLedger. Canonical OpenSpec store — wealth-ledger-specs в ../specs/openspec; OpenSpec commands, читающие или изменяющие change, всегда выполняются с --store wealth-ledger-specs. Versioned planning artifacts вне canonical store запрещены, включая superpowers/plans; ../references/** read-only.
Перед изменением поставленного поведения прочитать ../docs/architecture/system-overview.md, а для доменных терминов — ../docs/architecture/domain-glossary.md. Testing, build-versus-buy и Delivery Map определены в ../docs/development/engineering-governance.md. Audit-derived работа начинается с ../docs/development/audit-remediation.md.
Canonical gate
Node 22 обязателен. После lockfile install единственный completion gate:
npm ci
npm run verify
Gate non-mutating и проверяет runtime, OpenAPI snapshot, hygiene, strict TypeScript, Biome, risk-based tests/coverage ratchet, Knip, dependency boundaries, build и bundle budget. npm run openapi:sync — отдельная записывающая команда для атомарного обновления snapshot/types; runtime contract обеих сторон сверяется из workspace через bash specs/scripts/verify-runtime-openapi.sh.
Enforceable boundaries
- Code style и i18n:
docs/CONVENTIONS.md, исполняются Biome и TypeScript. - FSD и public API:
docs/STRUCTURE.md, исполняются dependency-cruiser и Knip; направлениеapp → pages → features → entities → shared. - HTTP и types:
docs/API-LAYER.md; только typed client и generated OpenAPIpaths[...], без ручных transport DTO и прямых T-Bank calls. - UI states:
docs/UI-PATTERN.md; route runtime failures обрабатывает единый route-keyed ErrorBoundary, expected API states остаются локальными. - Тесты:
docs/TESTING.md; новый тест обязателен по risk trigger, а не из-за появления файла или coverage процента.
Непроверяемые эстетические предпочтения считаются guidance. Не добавлять Storybook, Playwright, CI, browser MSW worker или mock development mode без утверждённого change.