2.7 KiB
Backend
Назначение и authority
NestJS API WealthLedger владеет доменной логикой, данными, конфигурацией и server-side интеграциями. 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, для решений — ../docs/adr/README.md. Testing и обязательная Solution Assessment для auth/security/storage/integrations/tooling определены в ../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, hygiene, ESLint, application/test TypeScript, risk-based Jest suite и build. npm run lint:fix и npm run format изменяют files и выполняются только явно; npm run test:cov — диагностика без общего threshold. npm run test:e2e не входит в passing gate до WL-P2-05 trigger из remediation registry.
Enforceable boundaries
- Style задают
eslint.config.mjsи TypeScript configs; zero-warning lint и оба typecheck обязательны. - Публичный HTTP API версионируется как
/api/v1; generated backend OpenAPI — contract authority для frontend snapshot. - Frontend не вызывает T-Bank напрямую; credentials, rate limiting и integration resilience остаются server-side.
- Не размещать frontend code, generated client или durable documentation в backend.
- Security, money, data integrity, concurrency, public contracts, critical journeys и regressions требуют risk-based tests. DTO, declarative config и thin scripts не требуют отдельного unit test без собственной logic.
Непроверяемые предпочтения являются guidance и не заменяют canonical gate.