37 lines
2.6 KiB
Markdown
37 lines
2.6 KiB
Markdown
# 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/CONVENTIONS.md),
|
|
[`docs/STRUCTURE.md`](docs/STRUCTURE.md), [`docs/API-LAYER.md`](docs/API-LAYER.md),
|
|
[`docs/UI-PATTERN.md`](docs/UI-PATTERN.md) и [`docs/TESTING.md`](docs/TESTING.md).
|
|
|
|
## Canonical gate
|
|
|
|
Node 22 обязателен. После lockfile install единственный completion gate:
|
|
|
|
```bash
|
|
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`.
|
|
Актуальные scripts проверять в `package.json`/`npm run`.
|
|
|
|
## Enforceable boundaries
|
|
|
|
- Code style и i18n: [`docs/CONVENTIONS.md`](docs/CONVENTIONS.md), исполняются Biome и TypeScript.
|
|
- FSD и public API: [`docs/STRUCTURE.md`](docs/STRUCTURE.md), исполняются dependency-cruiser и Knip; направление `app → pages → features → entities → shared`.
|
|
- HTTP и types: [`docs/API-LAYER.md`](docs/API-LAYER.md); только typed client и generated OpenAPI `paths[...]`, без ручных transport DTO и прямых T-Bank calls.
|
|
- UI states: [`docs/UI-PATTERN.md`](docs/UI-PATTERN.md); route runtime failures обрабатывает единый route-keyed ErrorBoundary, expected API states остаются локальными.
|
|
- Тесты: [`docs/TESTING.md`](docs/TESTING.md); новый тест обязателен по risk trigger, а не из-за появления файла или coverage процента.
|
|
|
|
Непроверяемые эстетические предпочтения считаются guidance. Не добавлять Storybook, Playwright, CI, browser MSW worker или mock development mode без утверждённого change.
|