Pular para conteúdo

Pendências operacionais

Doc evergreen com ações identificadas (não críticas) + análise do estado dos dados. Atualizar ao concluir item ou ao descobrir novo.


Estado atual dos dados (snapshot 2026-04-22)

Após entrega da Fase 1 (isolamento) + Fase 2 (observabilidade) + cleanup de leads sintéticos da Denise (31 deletados).

Totais em produção

Métrica Valor Observação
Leads totais 30 Pós-cleanup
Leads new 16 Entrantes aguardando primeira interação de qualificação
Leads qualified 12 Responderam SPIN mas ainda ~8 são sintéticos (ver P1)
Leads scheduled 1 1 lead END em varejo agendado (cluster Gita)
Leads converted 1 1 venda registrada via registrar_compra (Janaina)
Agentes ativos 15 9 do cluster Gita Agentes + 4 Janaina + 1 Denise + 1 vagas
Agentes inativos 2 moleiro, oraculo-pinzon (desativados Fase 1)
Cross-tenant legítimo 1 556196701770 (Junior) em Gita + Denise

Distribuição de fit (qualified_data)

Tenant fit qtd
Gita Agentes end_qualificado 2
Denise Ramos — (agente único, sem FIT_ROUTING)
Janaina Ortiga — (legacy, não salva fit estruturado)

Atividade 24h (após cleanup dos test_scenario_*)

Tenant Pipelines Msgs (user+model+function) Erros Tools chamadas
Denise Ramos 57 165 13 (resíduo) qualificar_lead × 30
Gita Agentes 18 56 0 qualificar_lead × 7, reportar × 1, agendar_reuniao × 1, consultar_disponibilidade × 1
Janaina Ortiga 19 38 0 (legacy)

FIT_ROUTING disparou 11x no cluster Gita nas últimas 24h — todos end_qualificado → gita-end-proposta (bateria v16 de testes).


Ruídos identificados no dashboard

P1 — 🟡 8 leads sintéticos restantes na Denise

Primeiro cleanup (31 leads test_scenario_001..031) deixou passar 8 com padrões diferentes: - test_scenario_032 / 033 / 034-midia-* (3 leads — cenários de mídia) - test_scenario_FU-001..005-* (5 leads — cenários de follow-up)

Todos marcados como qualified, inflam "Denise qualified=10" pro número real de ~2.

Ação: rodar delete em lote com padrão mais permissivo (ilike 'test_scenario%' já pega; usar o script scripts/delete-denise-testscenarios.ts que já filtra assim).

Prevenção: commit 2cc6f76 (aguardando deploy) já bloqueia follow-up de JIDs test_*. Novos cenários não vão gerar erro. Cleanup manual é pra resíduo histórico.

P2 — 🟡 Tenant "Adriano Moleiro" aparece no dashboard

Agentes moleiro e oraculo-pinzon estão is_active=false (Fase 1). Mas 2 leads antigos (5511953266999, 5511934811681) com status=new e follow_up_stage=1 permanecem na tabela leads, fazendo o tenant aparecer no dashboard.

Impacto: estético — dashboard mostra tenant como se fosse produção.

Ação proposta: filtrar dashboard/funnel pra ocultar tenants cujos agentes estejam 100% inativos (adicionar WHERE ai_agents.is_active = true no JOIN). Ou deletar leads órfãos.

P3 — 🟠 1 lead preso em gita-captacao com status=qualified

Esperado: status=qualified dispara FIT_ROUTING pra gita-conversao / gita-downsell / etc no próximo turno. Esse lead ficou preso — ou não respondeu próxima msg (sticky preso), ou Gemini não marcou fit corretamente no qualified_data.

Ação: inspecionar o lead via scripts/analyze-dashboard.ts (já criado) e ver qualified_data.fit. Se for null, é bug de prompt. Se lead parou de responder, é comportamento esperado.

Prioridade: baixa — caso isolado. Se padrão se repetir, virá fix de prompt.

P4 — 🟢 2 leads "esquecidos" do Moleiro com follow-up ativo há 9 dias

5511953266999 e 5511934811681 com follow_up_stage=1 e updated_at de 13/14-abril. Como agente moleiro está is_active=false, follow-up não processa (já estava filtrando por agent_id de agente ativo). Ficam pendurados.

Ação: pausar com follow_up_stage=-1 ou deletar leads órfãos. Baixa prioridade.


Lições aprendidas (padrões a aplicar)

Cleanup de leads de teste é obrigatório após cada bateria

Sessões v15 e v16 usaram JIDs test_v15_* e test_v16_* — limpos via scripts dedicados. Mas a Denise tinha leads test_scenario_* antigos de validação da época da migração que ficaram. Resultado: follow-up tentou processar, gerou 49+ erros em 24h, disparou primeiro alerta ClickUp da Fase 2.3.

Regra: toda sessão que cria leads de teste em produção deve ter cleanup explícito. O commit 2cc6f76 adiciona proteção estrutural (follow-up ignora test_*), mas o cleanup continua sendo obrigatório pra não poluir dashboard/funnel/métricas.

Dashboard revela problemas que logs não mostram

Os 49 erros/24h da Denise passaram despercebidos até a Fase 2.1 expor via /metrics. Visibilidade agregada mostrou padrão que linha-a-linha no agent_logs não gritaria.

Regra: antes de afirmar "sistema saudável", checar /metrics ou dashboard. Zero errors em metrics é mais confiável que "não recebi alerta" (porque alerta tem threshold).

Alertas funcionam mas precisam de contexto no cleanup

Primeiro alert ClickUp da Fase 2.3 chegou como esperado (36 erros em 5min), mas era ruído de leads sintéticos — não bug real. Se o cleanup tivesse sido feito antes, o alert não teria disparado.

Regra: após implantar alerta novo, sempre limpar resíduos históricos que possam disparar falso positivo.


Checklist de ações pendentes

  • P1 Rodar cleanup dos 8 leads test_scenario_* restantes na Denise (npx tsx scripts/delete-denise-testscenarios.ts)
  • P2 Decidir: filtrar dashboard pra tenants com agente ativo, OU deletar leads órfãos do Moleiro
  • P3 Investigar lead preso em gita-captacao com status=qualified — checar qualified_data.fit
  • P4 Pausar ou deletar 2 leads "esquecidos" do Moleiro com follow_up_stage=1 há 9 dias
  • Deploy pendente do commit 2cc6f76 — fix estrutural follow-up ignora test_* (Easypanel)
  • Adicionar seção no runbook-novo-cliente.md lembrando do cleanup obrigatório pós-bateria

Histórico de limpezas

Data Ação Impacto
2026-04-21 Cleanup bateria v15 (test_v15_*) 179 msgs + 1142 logs + 21 leads
2026-04-22 Cleanup bateria v16 (test_v16_*) 170 msgs + 704 logs + 20 leads + 2 da rerun A3
2026-04-22 Cleanup Denise test_scenario_001..031 574 msgs + 1445 logs + 31 leads
2026-04-22 Cleanup 1770 (teste Junior) × 2 48 msgs + 5433 logs + 3 leads · 46 msgs + 275 logs + 2 leads