3.0 KiB
Frontend
Назначение и authority
React/Vite-клиент WealthLedger. Shared SDD policy, common reading pointers,
audit routing и ../references/** policy задаёт root AGENTS.md.
Canonical SDD authority находится в wealth-ledger-specs, физически в
../specs/openspec от этого репозитория. Любая OpenSpec command, читающая или
изменяющая change, должна использовать --store wealth-ledger-specs.
Frontend-specific conventions: docs/CONVENTIONS.md,
docs/STRUCTURE.md, docs/API-LAYER.md,
docs/UI-PATTERN.md и docs/TESTING.md.
Canonical gate
Node 22 обязателен. После lockfile install единственный completion gate:
npm ci
npm run verify
Gate non-mutating и проверяет strict TypeScript, Biome, risk-based tests/coverage ratchet, Knip, dependency boundaries и build. Если backend API contract меняется, committed frontend snapshot src/shared/api/spec/openapi.json обновляется явным копированием backend OpenAPI document, затем npm run openapi:generate регенерирует committed types; обе стороны API contract сверяются отдельной backend командой npm run test:openapi-contract.
Актуальные scripts проверять в package.json/npm run.
Enforceable boundaries
- Code style и i18n:
docs/CONVENTIONS.md, исполняются Biome и TypeScript. - React component declaration, props и export style:
docs/CONVENTIONS.md, часть исполняется Biome, часть является mandatory review convention. - 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 и VM/view boundary:
docs/UI-PATTERN.md; container вызывает page VM hook, VM владеет data/state/derived presentation data,*.view.tsxполучает props и рендерит. View files дробить по semantic responsibility, когда section/state можно назвать отдельно. - Тесты:
docs/TESTING.md; новый тест обязателен по risk trigger, а не из-за появления файла или coverage процента.
Непроверяемые эстетические предпочтения считаются guidance. Не добавлять Storybook, Playwright, CI, browser MSW worker или mock development mode без утверждённого change.