Exemplo real: a feature de altura e posição da assinatura, entregue em 03/07/2026. Primeiro o relatório (o que preciso que você saiba), depois 3 situações. "Feito" libera com 3/3.
entregue: 03/07/2026escopo: MyCompanyPage + LaboratoryForm + templates de laudotipo: config por cliente, dual-axis
1 · modelo mental da mudança
Cliente configuraaltura + posição, no MyCompanyPage
→
Banco guardaconfig por cliente (padrão do logo)
→
Template lêmódulo signature-sizing
→
Gotenberg renderizao PDF final
2 · decisões não óbvias
decisão 1
Dual-axis: altura E posição, não só altura
O quê: diferente do logo (que só tem altura máxima), a assinatura ganhou dois controles: tamanho e posicionamento.
Por quê: assinatura escaneada vem com proporções variadas; só altura não resolvia assinatura "flutuando" longe da linha.
Onde mora: módulo signature-sizing dedicado, importado pelo CompactTableTemplate.
decisão 2
Módulo dedicado, depois de uma reversão
O quê: a primeira tentativa ajustou o LabReportTemplate direto e foi revertida; a lógica saiu pra módulos próprios.
Por quê: ajuste inline no template espalha estilo hardcoded, exatamente o que causou a assinatura torta original.
decisão 3
Mesmo trilho do logo (client_logo_max_height_px)
O quê: a config da assinatura seguiu o padrão que o logo já usava no banco, por cliente.
Por quê: um padrão só pra "imagem configurável no laudo": quem aprende um, sabe todos (o selo Inmetro seguiu o mesmo caminho depois).
3 · o quiz · situações, não decoreba
Cada resposta certa exige ter entendido uma decisão acima. Errou: o feedback aponta qual reler, e refazer vale.
score 0/3
pergunta 1 de 3
Um cliente reclama que a assinatura ficou boa no laudo dele, mas outro cliente diz que a dele ficou gigante. Isso é bug?
Releia a decisão 3. A config vive no banco POR CLIENTE, igual o logo. Comportamento diferente entre clientes é o design, não bug.
pergunta 2 de 3
Você quer o mesmo ajuste fino pro selo Inmetro. Qual é o caminho certo de pedir?
Releia as decisões 2 e 3. Ajuste inline no template foi revertido uma vez; o trilho da casa é config por cliente + módulo dedicado.
pergunta 3 de 3
A assinatura aparece certa no preview do sistema, mas torta no PDF baixado. Onde você olha primeiro?
Releia o modelo mental. O PDF nasce no Gotenberg (Chromium na VPS), não no seu browser. Preview OK + PDF torto aponta pro fim do pipeline.
Liberado pra "feito" ✓
3/3. Você entendeu as decisões, não só leu o diff. O score entra na trilha e os termos consolidam.
Ainda não
Releia as seções apontadas nos feedbacks vermelhos e refaz as que errou (recarrega a página). Errar aqui é barato; errar na frente do cliente não é.