Files
dtf-system/docs/historico/TAREFAS.md
Cauê Faleiros ca698434a2 chore: remove the abandoned prototypes and archive what described them
portal/, kanban/ and agente/ were 2,034 lines implementing the original
Tiny-first model: token upload links, a second SQLite Kanban, a factory agent.
Nothing imported or started any of it, and several endpoints took the acting
user from the request body with no authentication at all. Their real cost was
that a reader arriving at this repository found two Kanbans and two portals and
had to work out which one was real. The root schema.sql and .env.exemplo went
with them: both code paths load local/schema.sql, and having .env.exemplo beside
.env.example differing by one letter was a trap rather than a convenience.

The documents describing that model are archived rather than deleted. They
record decisions and reasoning the current documents do not repeat, so they are
worth keeping as background, with a header saying plainly that they are not
instructions.

README.md keeps its business case — the capacity figures and the cost argument
are still the reason this project exists — but now states where the prototype
documentation begins and that the code it describes is gone.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-21 16:34:20 -03:00

6.9 KiB
Raw Permalink Blame History

Tarefas — em ordem de execução

Cada tarefa tem critério de aceite: o que precisa acontecer para ela ser considerada pronta. Sem isso, "terminei" vira discussão.

A ordem importa: as três primeiras não dependem de decisão de ninguém.


Bloco A · Pode começar hoje

Nada aqui depende de resposta pendente.

A1 · Limpar os marcadores do Tiny

Aceite: a lista de sugestão de marcadores só mostra os padrões. Os pedidos antigos mantêm o histórico intacto.

  • Criar DTF-PRODUCAO, DTF-PRONTO, DTF-PROVA-COR
  • Remover da lista de sugestão: inicio 14:45, inicio13:34, 1hrs, 3h, +30min de correcao e as demais variações digitadas à mão
  • Não apagar do histórico dos pedidos — só da lista de opções
  • Preservar 30 min, 1 hora, 3 horas: são estimativa de máquina

A2 · Contratar a infraestrutura

Aceite: https://arte.dropstaratacado.com.br responde com certificado válido, e um arquivo de teste sobe e desce do storage.

  • VPS Linux 2 vCPU / 4 GB · Hetzner, Contabo ou Hostinger
  • Storage S3 compatível · Cloudflare R2 ou Backblaze B2
  • Subdomínio + Let's Encrypt
  • Bucket dtf-artes com ciclo de vida de 30 dias
  • Prefixo artes-cliente/ com 12 meses
  • CORS liberado só para o domínio do portal

A3 · Criar o banco

Aceite: schema.sql roda sem erro no Postgres e no SQLite.

  • Postgres na nuvem · SQLite na fábrica
  • Dump diário do Postgres para o storage

A4 · Provisionar acessos

Aceite: um token do Tiny obtido por código, e um WhatsApp de teste enviado.

  • Aplicação na API v3 do Tiny · client id e secret
  • Confirmar na documentação o endpoint de marcadores e o limite de req/min
  • WhatsApp: definir Meta oficial ou provedor

Bloco B · Portal — entrega sozinho

Ao fim deste bloco a Altus já recebe arte 24 horas, mesmo sem kanban.

Aceite: um pedido criado no Tiny gera link e chega no WhatsApp em menos de 1 minuto.

  • POST /webhook/tiny → cria pedido, token de 7 dias, dispara WhatsApp
  • Idempotente: pedido repetido não duplica
  • Medir a latência VNDA → Tiny e registrar

B2 · Página de upload

Aceite: um arquivo de 5 GB sobe sem derrubar o VPS.

  • URL pré-assinada, upload em partes
  • Campo de repetição com prévia da conta
  • Gabarito 57 × 97 cm para download
  • Rate limit de 20 req/min por token

B3 · Pré-flight

Aceite: dos cinco arquivos que os designers separarem, o robô decide igual ao que eles decidiriam.

  • preflight.py está pronto — integrar e testar
  • Normalização: vetor → PDF, raster → TIF, CMYK → RGB, original preservado
  • Repetição, fatiamento em 20 m, carimbo com QR de 20 mm
  • CDR entra sem validar, etiqueta "conferir"
  • carimbar() precisa de teste visual impresso antes de valer

B4 · Mensagens

Aceite: as seis mensagens chegam com o texto certo, e a de correção pede resposta.

  • Lembrete de 1 hora sem arte
  • Recusa com motivo em português
  • Aprovação com % e DPI, metragem, tempo e horário previsto
  • Em produção, correção, finalizado

B5 · Antivírus

Aceite: um EICAR de teste é barrado e não chega ao agente.

  • ClamAV em segundo plano, sem travar a fila

Bloco C · Agente

C1 · Serviço na fábrica

Aceite: derrubar a internet por 10 minutos e religar — o agente baixa o acumulado sozinho, sem duplicar nada.

  • Windows via NSSM ou Linux via systemd
  • Webhook + polling de 60 s
  • Download em arquivo temporário, renomeia só quando completa
  • Verificação de SHA-256
  • Idempotente pelo arte_id

C2 · Monitoramento

Aceite: matar o processo dispara alerta em até 15 minutos.

  • Heartbeat a cada 5 min
  • Alerta ao TI se sumir

Bloco D · Kanban como aba do PCP

D1 · Quadro

Aceite: dois operadores clicando puxar ao mesmo tempo — só um pega.

  • 7 colunas · sem coluna de aplicação
  • Cronômetro por card, em tempo real
  • Front pronto em kanban/static/kanban.html
  • ?maq=4 abre filtrado na máquina

D2 · Puxar e devolver

Aceite: puxar e não mover em 3 minutos devolve o pedido à fila sozinho.

  • Reserva de 3 min · um pedido por vez
  • Devolver volta ao topo
  • Círculo vermelho na máquina ocupada, botão desabilitado

D3 · Movimento e integração

Aceite: desligar o Tiny, mover cards, religar — os marcadores entram sozinhos e nenhum movimento se perde.

  • Gravar o movimento antes de qualquer chamada externa
  • Fila de jobs com retentativa em 1, 5 e 30 min
  • Três marcadores no Tiny, não sete
  • Arquivo acompanha o card entre as pastas

D4 · Estimativa de máquina

Aceite: o card sugere os minutos e aceita ajuste manual.

  • Campo minutos_maquina, sugerido por metros/20*60
  • Importar os marcadores 30 min, 1 hora, 3 horas dos pedidos existentes

D5 · Retrabalho

Aceite: a causa não pode ser alterada depois de aberta, nem pelo autorizador.

  • Abertura com causa obrigatória e evidência
  • Alçada automática · reincidência sobe nível
  • Contestação registrada sem alterar a causa
  • Meta ainda não definida — META_POR_CAUSA isolado

D6 · Painel e relatórios

Aceite: os quatro relatórios respondem com dados reais depois de uma semana.

  • Filtros de período
  • /api/relatorio/etapas, /impressao, /aproveitamento, /retrabalho
  • Aproveitamento lendo as transferências do depósito no Tiny

Bloco E · Só depois de medir

Duas semanas com o kanban rodando antes de tocar nisto.

E1 · Decidir o terceiro turno

Depende de: metros/hora reais, tempo entre etapas, e quanto do tempo do designer é retrabalho de arquivo ruim.

E2 · SPOT automático

Depende do teste em dtf-teste-branco-automatico.pdf.

E3 · PC central como servidor de RIP

Depende de: configuração atual, custo da licença (é por PC), e memória que o RIP consome.


Bloqueios · o que trava qual tarefa

Tarefa Espera por De quem
B3 · pré-flight os cinco arquivos de exemplo designers
B3 · regras de choke valor do choke e espessura mínima designers
D5 · meta meta geral ou por causa? Marcus
E1 · terceiro turno metros/hora reais sala
E2 · SPOT resultado do teste sala
E3 · RIP central config e licença do PC central Wagner

Nada no bloco A, B1, B2, C e D1 a D4 está bloqueado. Dá para chegar até o kanban funcionando sem nenhuma dessas respostas.


Ordem sugerida de trabalho

semana 1   A1 · A2 · A3 · A4
semana 2   B1 · B2
semana 3   B3 · B4 · B5          ← portal no ar, recebendo 24h
semana 4   C1 · C2               ← arquivo caindo na pasta sozinho
semana 5   D1 · D2
semana 6   D3 · D4
semana 7   D5 · D6               ← kanban completo
semana 8+  medir · depois E

Ao fim da semana 3 a Altus já recebe arte de madrugada e recusa arquivo ruim automaticamente, sem nada ter mudado na sala. É o primeiro ganho real.