Go-live industrial

Ordem para ligar flags num tenant de padaria, o que não copiar do HML, limites do produto e checklist operacional.

O HML Sanclerlandia provou o caso pão (NF → OP → doação → recall → venda) e encerrou o lab (overrides enabled: false). Os documentos HML-IND-* ficam no tenant de teste. Não replique NF, OP, lote, recall ou doação para produção.

Checklist antes de ligar

Cadastro

Só a linha que a fábrica rastreia com lotControl / expirationControl. Depósito real. BOM ACTIVE com quantityPer e yieldTolerancePercent calibrados.

Flags globais

Confirme GET /feature-flags: as seis industrial.* OFF. Se alguém ligou o global, desligue antes.

Override só da empresa da padaria

Nunca o global. Motivo preenchido. Ordem: Flags.

Uma NF de 1 unidade de teste

Confirmar lote no FALOT01, ATP = FEFO, kardex com lot_id.

Uma OP pequena

Release, report com consumptions, complete. Conferir lote do PA e genealogia.

Simular recall

GET /lot-recall/impact/{lotId} antes de abrir campanha.

Comunicar QA

Se for ligar inbound-quarantine, avise: o saldo some do ATP até o release.

O que o produto não promete

TemaEstado
ANVISA / laudo / amostra / aprovadornão há entidade de inspeção
Cron que vence lote à meia-noitenão implementado; POST …/expire é manual; movimento já recusa data < hoje
Substitutos automáticos no BOMnão
Chão de fábrica (máquina, turno, apontamento por operador)não
Expedição com lote (FATEX01.lot_id)coluna sem writer industrial
Gate RBAC fino (recall.manage, etc.)documentado; API ainda é JWT + menu
MES paralelofora de escopo — o M3R acopla BOM, OP e estoque existentes

Não vender “pronto para recall regulatório” só porque a campanha existe: a lista de impacto fura devolução antiga sem lote e expedição sem lot_id.

Encerrar um piloto

  1. Override enabled: false nas seis chaves.
  2. Não apague lotes — são histórico de estoque.
  3. SKUs de teste (HML-IND-*) podem permanecer inativos no cadastro.

Homologação repetível

Scripts no repositório (não vão para o site em produção):

  • seed de Farinha/Pão/BOM: farmus-web/e2e/scripts/seed-industrial-products.mjs
  • caso pão: run-industrial-onda2.mjs
  • desligar flags: close-industrial-hml.mjs
  • ATP HML: validate-atp-hml.mjs
  • Playwright fumaça: E2E_INDUSTRIAL=1 yarn test:e2e:industrial

Playbook interno: docs/industrial/INDUSTRIAL-HML.md. Relatório: INDUSTRIAL-HML-RELATORIO.md.

Versões de referência

PacoteVersãoPapel
farmus-api1.0.167companyIdFromReq em recall/doação
farmus-api1.0.169ATP alinhado ao FEFO
farmus-web1.0.183+Central, recall, doações, QA

Flags default OFF em qualquer deploy novo: o seed não liga produção comercial.