# F-106 — QA gate: APPROVED ## Ejecutado - `npm run typecheck` (backend): OK. - `npx tsc --noEmit` (apps/admin): OK. - `npm run build` backend: OK. - `npm run build` admin (Next.js): OK. - Migración `036_order_tracking_number`: aplicada (`Migrations complete!`), idempotente (`IF NOT EXISTS`). - `./scripts/verify.sh`: verde. - `monolith.sh prod restart`: backend/frontend/admin/storefront → HTTP 200. - OpenAPI: `PUT /orders/{id}/items` registrado; `trackingNumber` presente en esquema de transición admin. ## Casos verificados (código + smoke) - Transición a SHIPPED sin tracking → 422 TRACKING_NUMBER_REQUIRED. - Edición de artículos con variante inexistente → 422 VARIANT_NOT_FOUND; sin precio → 422 PRICE_MISSING. - Email sin SMTP configurado → `notified:false` + mensaje, pedido transiciona igualmente.