chore: codify backend local verification
This commit is contained in:
@@ -1,31 +1,28 @@
|
||||
# Backend
|
||||
|
||||
## Назначение
|
||||
## Назначение и authority
|
||||
|
||||
NestJS API WealthLedger. Все функциональные изменения планируются в `../specs/openspec` до реализации.
|
||||
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/system-overview.md), для терминов — [`../docs/architecture/domain-glossary.md`](../docs/architecture/domain-glossary.md), для решений — [`../docs/adr/README.md`](../docs/adr/README.md). Testing и обязательная Solution Assessment для auth/security/storage/integrations/tooling определены в [`../docs/development/engineering-governance.md`](../docs/development/engineering-governance.md). Audit-derived работа начинается с [`../docs/development/audit-remediation.md`](../docs/development/audit-remediation.md).
|
||||
|
||||
## Canonical gate
|
||||
|
||||
Node 22 обязателен. После lockfile install единственный completion gate:
|
||||
|
||||
```bash
|
||||
npm ci
|
||||
npm run lint
|
||||
npm run typecheck:app
|
||||
npm run typecheck:test
|
||||
npm run verify
|
||||
```
|
||||
|
||||
Node 22 обязателен. `npm run lint` и `npm run lint:check` не изменяют
|
||||
versioned-файлы; `npm run lint:fix` — явная записывающая команда. Текущий
|
||||
`npm run test:e2e` временно не является надёжным gate: WL-P2-05 отложен из-за
|
||||
Prisma schema-engine failure; статус и trigger пересмотра указаны в
|
||||
`../docs/development/audit-remediation.md`.
|
||||
Для read-only сверки runtime OpenAPI с frontend snapshot под Node 22 запускать
|
||||
из workspace `bash specs/scripts/verify-runtime-openapi.sh`.
|
||||
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
|
||||
|
||||
- Перед изменением поставленного поведения или доменных терминов прочитать [`../docs/architecture/system-overview.md`](../docs/architecture/system-overview.md) и [`../docs/architecture/domain-glossary.md`](../docs/architecture/domain-glossary.md).
|
||||
- Публичный HTTP API версионируется как `/api/v1`; OpenAPI из backend - источник контракта для frontend.
|
||||
- Backend отвечает за доменную логику, данные, конфигурацию и внешние интеграции. Frontend не вызывает T-Bank напрямую; будущая интеграция остается за backend boundary.
|
||||
- Не размещать frontend-код, сгенерированный клиент или постоянную документацию в этом репозитории.
|
||||
- Для задачи по Audit ID, продолжения remediation или выбора следующего улучшения сначала прочитать [`../docs/development/audit-remediation.md`](../docs/development/audit-remediation.md); единственный canonical OpenSpec store — `wealth-ledger-specs` в `../specs/openspec`, а OpenSpec commands, читающие или изменяющие change, выполнять с `--store wealth-ledger-specs`.
|
||||
- Не создавать и не коммитить framework-specific planning/spec/task/design artifacts: versioned SDD-артефакты хранятся только в `../specs/openspec`; `../references/**` остаётся read-only исключением.
|
||||
- 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.
|
||||
|
||||
Reference in New Issue
Block a user