▲ Caso 03 · Automação de processo regulado
Um sistema solar pode estar inteiro no telhado e não gerar nada, porque entre o cliente e a energia sobra um dossiê que a distribuidora ainda não aprovou. Um anexo errado devolve o processo e custa semanas.
jsonschema antes de qualquer etapa rodar.lxml opera o XML interno do .xlsx quando o preenchimento precisa ser cirúrgico.reportlab gera as pranchas a partir dos dados do projeto: alocação dos módulos, diagrama unifilar, string box e quadro de corrente alternada.utm converte entre coordenadas geográficas e UTM, que é o sistema em que o mapa de localização precisa sair.pypdf para ler os pareceres que chegam em PDF.Cada distribuidora pede um pacote diferente de documentos para ligar uma usina: a CEMIG pede um, a Equatorial Goiás pede outro. Quem opera só preenche os dados do cliente. O sistema identifica a distribuidora e monta sozinho o pacote que ela exige.
O que eu descartei: deixar a pessoa marcar, numa lista de onze documentos, quais entram no pedido. Para acertar, ela teria de lembrar a regra de cada distribuidora no meio de um trabalho repetitivo, que é justamente quando a gente esquece.
Quando o robô detecta que um anexo saiu errado, ele remove o apontamento e deixa o item como pendente, em vez de entregar o arquivo.
Por quê: anexo ausente aparece na lista de pendências e alguém junta antes de enviar. Anexo errado chega à concessionária, e volta semanas depois. Os dois custam diferente.
O robô também recusa assinalar uma alternativa de conexão que o próprio parecer da distribuidora declara inviável, e recusa gerar o termo sem o projeto original.
Os números do estudo de inversão entram lidos do PDF do parecer emitido pela distribuidora.
O que eu descartei: um campo no formulário para o operador copiar o valor. Redigitar número de documento oficial é a origem mais barata de erro que existe, e o erro só aparece quando o processo volta.
Parametrizar um gerador que já funciona é onde se quebra o que estava certo. A trava foi congelar o resultado: quatro baselines comparam o artefato pronto, e não o código.
O memorial é conferido com o texto na ordem. O anexo da concessionária é conferido membro a membro de dentro do arquivo compactado, porque a soma de verificação do .xlsx muda sozinha: o formato grava a data e hora da compactação.
O que eu descartei: confiar em teste de unidade nas funções alteradas. Eles passam enquanto o documento entregue muda de lugar.
A atualização de um baseline é manual, de propósito: se fosse automática, registraria o defeito como se fosse o novo certo.
O projeto tem 121 scripts. Mais de uma vez eu editei um arquivo, rodei o processo e a saída veio igual, porque o arquivo não estava no caminho de execução.
A correção foi escrever um documento que lista, etapa por etapa, qual arquivo é chamado e por qual função. A primeira linha dele manda lê-lo antes de tocar em qualquer coisa.
Por quê: perder tempo assim uma vez é distração. Duas vezes é sinal de que o projeto não estava dizendo a verdade sobre si mesmo.



Os desenhos saem dos dados daquele projeto: quantidade de módulos por água, número de entradas do inversor, proteção dimensionada. Muda o projeto, muda o desenho.
Contagem feita no repositório em 22/09/2026, referente ao período de abril a setembro de 2026.