docs(ai): adopt task-driven scoped context
This commit is contained in:
@@ -6,16 +6,29 @@
|
||||
создаёт runtime OpenAPI document и сверяет его с committed snapshot
|
||||
`frontend/src/shared/api/spec/openapi.json` после детерминированной canonicalization.
|
||||
|
||||
Это отдельный контрактный gate, а не общий verifier всех репозиториев. Он нужен
|
||||
перед изменениями backend API или frontend transport contract и не заменяет
|
||||
Это отдельный контрактный gate, а не общий verifier всех репозиториев. Он обязателен перед завершением задачи, меняющей
|
||||
backend API или frontend transport contract и не заменяет
|
||||
локальные lint/typecheck команды приложений.
|
||||
|
||||
## Выбор и направление изменения
|
||||
|
||||
1. Определите, меняется wire contract (route, request/response field, status, error shape) или только внутренний код/UI model. Во втором случае snapshot не меняется.
|
||||
2. Прочитайте [HTTP semantics](../architecture/http-api.md) и нужный feature/domain source. Backend Nest controllers/DTO/Swagger metadata — единственный editable источник OpenAPI; specs repo не является вторым OpenAPI source.
|
||||
3. Измените этот source и проверьте representative HTTP behavior. При изменении контракта скопируйте generated runtime OpenAPI в committed frontend snapshot, затем в frontend выполните `npm run openapi:generate`.
|
||||
4. Выполните frontend `npm run openapi:check` и backend `npm run test:openapi-contract`, а также verify affected repos. Эти команды проверяют разное: schema parity не доказывает validation/auth/error behavior.
|
||||
|
||||
Generated frontend TS и backend Prisma client вручную не редактируются.
|
||||
Frontend domain/UI type допустим, когда он отличается от transport DTO по смыслу.
|
||||
Перед compatibility-sensitive изменением оцените существующих consumers и
|
||||
rollback/data constraints; одного обновления snapshot недостаточно.
|
||||
|
||||
## Запуск
|
||||
|
||||
Из корня workspace:
|
||||
|
||||
```bash
|
||||
cd backend
|
||||
nvm use --silent
|
||||
npm run test:openapi-contract
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user