escalAI
Escala mensal de três plantões gerada por um motor de restrições e conferida por um segundo validador.
Versão 1.3 no servidor interno · em pré-homologação

- plantões: Alpha, Bravo e Charlie
- 3
- verificações: motor e validador
- 2
- versão no servidor interno
- 1.3
- IA externa — exigência da empresa
- 0
02/ 09Problema
Muitas regras, uma escala. Feita à mão, alguma sempre escapava.
- Escala montada de cabeçaMotor de restrições monta a escala
- Regras conferidas uma a umaValidador independente confere tudo
- Mudar um dia afetava a semana inteiraConflitos apontados, nunca escondidos
03/ 09Demonstração
Mude uma regra. A escala se refaz.
Demonstração simplificada · equipe fictícia · não é o motor real
| Seg2/2 | Ter3/2 | Qua4/2 | Qui4/2 | Sex3/2 | Sáb3/2 | Dom5/2 | |
|---|---|---|---|---|---|---|---|
| Ana | |||||||
| Bruno | |||||||
| Carla | |||||||
| Diego | |||||||
| Elisa | |||||||
| Fábio |
Validador independente: todas as regras respeitadas.
04/ 09Como funciona
Do início ao fim, em poucos passos.
O focal escolhe o mês e o plantão.
05/ 09Filme
O sistema em movimento.
06/ 09Funcionalidades
7 partes. Uma estrutura.







módulo 01 de 07
Cadastro
Colaboradores, perfis e turnos com seus respectivos horários. Todo planejamento começa com informação clara.
07/ 09Tecnologia
Cada escolha técnica tem um motivo. Toque para ver.
08/ 09Resultado
Versão 1.3 instalada no servidor interno, com login pela rede da empresa.
- Estado
- Versão 1.3 no servidor interno · em pré-homologação
- Próximo passo
- Concluir a homologação de segurança.
- Meu papel
- Desenvolvimento completo — regras, motor, interface e instalação no servidor
09/ 09Detalhes
O texto completo, para quem quer ir fundo.
O problema e o contexto
O escalAI elabora a escala de plantão da central: quem trabalha presencialmente, quem atua em home office e quem folga, em cada dia do mês, nos plantões Alpha, Bravo e Charlie. O responsável pelo planejamento cadastra as exceções, um motor matemático combina todas as regras e um validador independente confere o resultado antes de salvá-lo.
Uma escala reúne inúmeras decisões que precisam ser compatíveis entre si: limite de dias consecutivos, de home office por semana, cobertura mínima em cada plantão, fins de semana de folga, férias e afastamentos. Alterar o dia de uma pessoa afeta os dias seguintes, os colegas e a cobertura do plantão. Feito manualmente, o processo sempre deixava alguma regra de fora.
Desenvolvido para a central onde trabalho. Cada focal gera a escala do seu plantão, os administradores mantêm o cadastro e as regras, e cada colaborador consulta a própria escala, faz solicitações e acompanha as demandas do dia.
Nenhuma IA externa: exigência da empresa. Tudo roda num servidor interno, sem internet.
A escala tem dados pessoais e de saúde, como afastamentos. O acesso é restrito por perfil no próprio banco.
O filme e as telas usam só dados fictícios. Regras específicas, endereços e integrações da empresa ficam de fora.
Arquitetura
L1 · Interface
PWA em React: escala do mês e da semana, exceções, regras, demandas e solicitações.
L2 · Acesso
Login por perfil (operador, focal, administrador) e regras de acesso em cada tabela do banco.
L3 · Motor
Serviço em Python com CP-SAT: regras críticas como restrições, as demais minimizadas por peso, em duas fases.
L4 · Validação
Um validador próprio em TypeScript confere toda escala recebida. Motor e validador precisam concordar.
L5 · IA local
Interpreta apenas o texto livre das exceções; nenhum dado deixa o servidor.
L6 · Dados
PostgreSQL com versões da escala e trilha de auditoria.
Visão de alto nível, conferida no código do sistema. Endereços, integrações e configurações da empresa ficam de fora.
Stack e motivos
- React + TypeScriptInterface · Vite · Tailwind
- Uma PWA que funciona no computador e no celular, com telas diferentes para quem planeja e para quem consulta a escala.
- Supabase (PostgreSQL)Banco · login · funções
- As permissões ficam no próprio banco: cada tabela tem regra de acesso, então esconder um botão nunca é a única proteção.
- OR-Tools CP-SATMotor da escala · Python
- Um resolvedor de restrições, e não uma IA. Regras críticas jamais são violadas; as demais são ponderadas por prioridade. Se as regras críticas forem incompatíveis, nenhuma escala é gerada e o sistema indica quais regras estão em conflito.
- IA local (Ollama · Qwen3 4B)Leitura de exceções em texto
- Converte um texto como "atestado dia 12" em tipo e datas. Sua função se limita a isso: quem monta a escala é o motor, e o gestor sempre confirma.
- DockerInstalação offline
- O sistema completo é executado em um servidor sem acesso à internet. As atualizações chegam em um pacote assinado e, em caso de falha, o sistema retorna automaticamente à versão anterior.
O fluxo, passo a passo
- 01
O focal escolhe o mês e o plantão.
- 02
Cadastra as exceções do mês: férias, afastamentos, folgas programadas.
- 03
O motor constrói o modelo com todas as regras e busca a escala: primeiro reduz as pendências de prioridade alta e, em seguida, equilibra as demais.
- 04
O validador confere o resultado. Violação crítica bloqueia; pendência alta que o motor provou ser inevitável pede confirmação.
- 05
A escala é salva como uma nova versão, alimenta as demandas do dia e pode ser exportada.
Decisões, aprendizados e resultados
Decisão
Um resolvedor de restrições, em vez de delegar a escala a uma IA. Um modelo de linguagem não garante o cumprimento de todas as regras; o resolvedor garante as críticas e explica quando não há solução possível. O custo é manter as regras em dois lugares — no motor e no validador —, que precisam estar sempre em concordância.
Aprendizado
Formalizar as regras reais, com prioridades e exceções, foi a etapa mais desafiadora: "no máximo cinco dias seguidos" parece simples até que surjam férias no meio do mês. Aprendi também que um segundo validador, independente do motor, identifica erros que um único mecanismo deixaria passar.
Resultados
A versão 1.3 está instalada no servidor interno, com autenticação pela rede da empresa e atualização pela própria interface. A próxima etapa é concluir a homologação de segurança.
Próximo projeto
Próximo projeto: Guia do Operador COS
