# Команды сборки, проверки и локальной разработки

## Паспорт документа

- Статус документа: working reference
- Актуально на: 28 марта 2026 года
- Владелец: backend/platform-команда
- Пересмотр: при изменении инженерного backlog, локального workflow или платформенного статуса
- Область применения: внутренний инженерный knowledge/rules/backlog слой проекта
- Связанные документы:
  - [Индекс документации](../README.md)
  - [Текущее состояние](../project/current-state.md)
  - [Roadmap](../project/roadmap.md)

## Общий принцип

После split проекта команды нужно запускать в контексте соответствующего репозитория:

- backend/platform: `qadam-core`
- frontend/web: `qadam-web`

## `qadam-core`

Запускать из корня репозитория `qadam-core`:

- `pnpm install` — установить зависимости
- `pnpm dev` — локально поднять API
- `pnpm check-types` — type-check backend-пакета
- `pnpm test` — unit tests backend
- `pnpm build` — production build backend
- `pnpm export:openapi` — собрать `apps/api/openapi/openapi.json`

### Prisma

- `pnpm --filter @repo/prisma generate` — пересобрать Prisma client
- `pnpm --filter @repo/prisma migrate dev --name <migration_name>` — dev migration
- `pnpm --filter @repo/prisma migrate deploy` — применить production migrations
- `pnpm --filter @repo/prisma db seed` — заполнить dev-данные
- `pnpm --filter @repo/prisma studio` — Prisma Studio

## `qadam-web`

Запускать из корня репозитория `qadam-web`:

- `pnpm install` — установить зависимости
- `pnpm dev` — локально поднять product frontend `apps/web`
- `pnpm dev:roadmap` — локально поднять сервис документации `apps/roadmap`
- `pnpm generate:api-contract` — пересобрать generated contract из `openapi/openapi.json`
- `pnpm check:api-contract` — проверить drift между artifact и generated types
- `pnpm check-types` — type-check всего repo (`apps/web` + `apps/roadmap`)
- `pnpm build` — production build всего repo (`apps/web` + `apps/roadmap`)
- `pnpm build:web` — production build только `apps/web`
- `pnpm build:roadmap` — production build только `apps/roadmap`

## Базовый quality gate

Для backend change package:

- `pnpm check-types`
- `pnpm test`
- `pnpm build`
- `pnpm export:openapi`
- если change package добавляет или меняет endpoint'ы, update `docs/frontend/frontend-change-log.md`

Для frontend change package:

- `pnpm generate:api-contract`
- `pnpm check:api-contract`
- `pnpm check-types`
- `pnpm build`

## Полезные проверки production

- `systemctl status qadam-api qadam-web qadam-roadmap nginx`
- `curl https://qadam.2fab.app/api/v1/health`
- `curl -I https://qadam.2fab.app/api/docs`
- `curl -I https://qadam.2fab.app/roadmap`
- `curl -I -u <login>:<password> https://qadam-roadmap.2fab.app`
- `curl -u <login>:<password> https://qadam-roadmap.2fab.app/api/health`

## Redis и PostgreSQL

- `redis-cli ping` — проверить Redis
- `psql "$DATABASE_URL"` — подключиться к PostgreSQL

## Важно

- Не использовать старые команды вида `pnpm dev --filter=web` или `pnpm dev --filter=api` как основной workflow новой разработки.
- Не использовать `/data/uzbek` как рабочую площадку после cutover.
