Pular para o conteúdo
Voelin Studio

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

Capa do filme de apresentação do escalAI
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

Regras da escala
2 por dia
5 dias
1 por semana

Toque em um dia na escala para marcar uma ausência. Cada pessoa trabalha 5 dias.

Escala semanal gerada
Seg2/2Ter3/2Qua4/2Qui4/2Sex3/2Sáb3/2Dom5/2
Ana
Bruno
Carla
Diego
Elisa
Fábio
P · PresencialH · Home officeF · FolgaA · Ausência

Validador independente: todas as regras respeitadas.

04/ 09Como funciona

Do início ao fim, em poucos passos.

Passo 1 de 5

O focal escolhe o mês e o plantão.

05/ 09Filme

O sistema em movimento.

06/ 09Funcionalidades

7 partes. Uma estrutura.

sistemaescalAI
Cadastro — tela do filme de apresentação

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.

Ir direto à arquitetura ↓

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
  1. L1 · Interface

    PWA em React: escala do mês e da semana, exceções, regras, demandas e solicitações.

  2. L2 · Acesso

    Login por perfil (operador, focal, administrador) e regras de acesso em cada tabela do banco.

  3. L3 · Motor

    Serviço em Python com CP-SAT: regras críticas como restrições, as demais minimizadas por peso, em duas fases.

  4. L4 · Validação

    Um validador próprio em TypeScript confere toda escala recebida. Motor e validador precisam concordar.

  5. L5 · IA local

    Interpreta apenas o texto livre das exceções; nenhum dado deixa o servidor.

  6. 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
  1. 01

    O focal escolhe o mês e o plantão.

  2. 02

    Cadastra as exceções do mês: férias, afastamentos, folgas programadas.

  3. 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.

  4. 04

    O validador confere o resultado. Violação crítica bloqueia; pendência alta que o motor provou ser inevitável pede confirmação.

  5. 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

03 · Aprovado · em usoGuia do Operador COSNo meio do turno, a resposta precisa vir rápido.