﻿# Verification Commands (Extended)

## 1) Quick local checks
Frontend typecheck:
`cd frontend && npm run typecheck`

Frontend build:
`cd frontend && npm run build`

Backend typecheck:
`cd backend && npx tsc --noEmit`

Backend build:
`cd backend && npm run build`

## 2) Docker checks
Start development services:
`docker compose -f docker-compose.dev.yml up -d --build`

Start production services:
`docker compose up -d --build`

List running services:
`docker compose ps`

Backend logs:
`docker compose logs --tail=120 backend`

Frontend logs:
`docker compose logs --tail=120 frontend`

Run backend migrations:
`docker compose exec backend sh -lc "npm run migration:run"`

Backend typecheck/build:
`docker compose exec backend sh -lc "npm run typecheck && npm run build"`

Frontend typecheck/build/lint:
`docker compose exec frontend sh -lc "npm run typecheck && NODE_ENV=production npm run build && npm run lint"`

Uploads smoke test:
`POST http://localhost:3001/api/v1/uploads/pdf` with Bearer token and multipart field `file`.

Note: Docker does not include MySQL. Database access comes from `TENANT_CLI_DB_HOST`, `TENANT_CLI_DB_PORT`, `TENANT_CLI_DB_DATABASE`, `TENANT_CLI_DB_USERNAME` and `TENANT_CLI_DB_PASSWORD` (plus `CONTROL_PLANE_DB_*` for the control plane, `mbinvtaller`).

Frontend dependency report:
`docker compose exec frontend sh -lc "npm run check:deps"`

Backend dependency report:
`docker compose exec backend sh -lc "npm run check:deps"`

## 3) Production-like frontend container
Recreate frontend without HMR:
`FRONTEND_MODE=production docker compose up -d --build --force-recreate --renew-anon-volumes frontend`

## 4) Sprint 3 QA documents
Extended manual QA playbook:
`docs/sprint3_qa_playbook.md`

Extended test matrix:
`docs/sprint3_test_matrix.csv`

## 5) Suggested execution order for Sprint 3
1. Run local typecheck/build (frontend + backend).
2. Run Docker stack and migrations.
3. Execute matrix cases `S3-001` to `S3-050`.
4. Attach evidence for every failed or blocked case.
5. Summarize defects by severity and module.
