BB Baterias · Mapa de Conhecimento

Segundo Cérebro

Conexões entre projetos · Padrões reutilizáveis · Lições aprendidas

22
Projetos ativos
16
Padrões prontos
97
Erros mapeados

// Mapa de conexões — passe o mouse sobre as trilhas

Reutilizar sempre

☁
Cloudflare Pages + wrangler
Deploy em ~5min, grátis, URL estável. Token e account ID já salvos na memória.
⇄
Worker como proxy CORS
Resolve CORS de qualquer API sem mexer no backend. Reutilizar o padrão do Painel Unificado.
🔑
Autenticação GM + Estagiários
GM com senha hash · Estagiários só com nome. Mesmo padrão nos 3 painéis de equipe.
🟢
Semáforo visual de metas
Verde/amarelo/vermelho validado com o usuário. Já usado em Portal de Provas e Painel Unificado.
📊
Google Sheets como banco
API Key pronta. Apps Script para lógica. Persistência leve sem backend real.
⏱
Cache KV na frente de Apps Script lento
Worker com Cron Trigger grava em KV; Pages Function serve na hora, com bypass manual. Nunca mais tela de erro por Apps Script congestionado.
✔
Verificador automático de prova
checar_prova.py (skill bb-baterias-prova): reprova prova em que a certa é sempre a mais longa ou a "prudente". Mede em vez de achar.
✉
Disparo de e-mail em massa (Apps Script)
Menu Testar/Enviar, envio idempotente (pula ENVIADO), respeita cota diária. Texto fica no código, não na planilha.
🐍
Módulo novo no CRM 8516 (Flask)
iniciar_X_rotas(app) + thread daemon, urllib puro, JSON atômico (.tmp + os.replace). Restart pelo Flask Manager com syncing:false.
🛠
Editar o CRM 8516 por script
Python local sobre SMB (//10.1.1.27/c$), newline='', assert count==1 por trecho, backup .bak-antes-*. index.html sem restart; .py reinicia pelo Flask Manager.
🎬
Vídeo em HLS no Pages
ffmpeg crf 24, segmentos de 6s + hls.js sob demanda — contorna o limite de 25MB por arquivo.

O que funciona

HTML único sem framework Zero build, zero dependência — atualiza arrastando um arquivo
Audit-based para Zendesk Único jeito correto de contar produção diária por agente. updated_at falha.
Gabarito com array de respostas Aceitar múltiplas respostas corretas evita injustiça com o aluno
overflow-x auto no container do heatmap width:fit-content no grid interno + overflow-x:auto no container
Correção retroativa via painel admin Corrigir gabarito sem apagar histórico — doPost update no Apps Script
localStorage para estado leve Preferências, login, gabarito alternativo — sem banco de dados
Ler dado exato de um endpoint em vez de OCR de print action=alts do Apps Script devolve o JSON certo — nunca transcrever código de imagem pixelizada
Catálogo VTEX público pra conferir código real /api/catalog_system/pub/products/search?ft= — código de verdade, sem inventar de cabeça
Prova difícil pelo cenário, fato só do treinamento Cenário real do Mercado Livre + conteúdo limitado ao PDF do segmento. Sem Panelook, sem decorar código.
Round-robin com atribuição permanente Genius no CRM: mede produtividade guardando o estado na hora da atribuição
Histórico "chumbado" quando a regra muda Congela meses fechados em JSON — nunca recalcula o passado com o critério novo
Tabelas no visual do Painel Mensal Cabeçalho agrupado por cor + heatmap por coluna — padrão preferido do usuário no CRM
Mês em andamento: dia 1 → ontem em todos os anos Compara de igual pra igual com o mesmo período do ano passado (Histórico Orçamentos)
Página inteira no mesmo layout Título + tabela simples + nota curta do que é. Cor só na exceção. Nada de quadro destoando.
Medir estudo só com aba visível Teto de 1h por abertura, sendBeacon ao fechar, 1 gravação no KV por abertura (Hub)
Tela nova primeiro como preview só-leitura Base real + controles desabilitados ("como seria"). Gestor decide antes de existir disparo (Carrinho WhatsApp)

Erros mapeados

Copiar Apps Script do chat Caracteres invisíveis causam SyntaxError. Sempre usar o arquivo .gs salvo em disco.
Chamar script.google.com direto do navegador Quem tem 2+ contas Google pode cair em 404 imprevisível. Sempre proxy via Cloudflare Pages Function.
wrangler kv get/list sem --remote Lê o KV simulado local, não o de produção — parece vazio mesmo com dado real salvo.
updated_at do ticket Zendesk Falsos positivos — conta tickets onde outro agente respondeu hoje
Vídeo Drive embutido em iframe de outro domínio Capa carrega, reprodução falha com cookie de terceiros bloqueado. Preferir link direto como fallback.
Gabarito de prática em texto livre Time treinado a responder com código — "DDR4 16GB" derrubou acerto pra 0-12%. Usar código BB.
GitHub Pages e Netlify Conta excluída / confusão com domínio pago. Cloudflare é o padrão definitivo.
Modal ampliado só se TODAS as lições forem PDF Treinamento com PDF+vídeo misturado nunca alargava — checar também o caso misto.
Sync sem trava contra resultado vazio Planilha com #REF! leu 0 linhas e sobrescreveu o snapshot. Todo sync: "vazio não grava".
Prova com a certa sempre a mais longa Bateria 30/Set: média 9,6 — gabaritável pelo tamanho. Rodar o verificador antes de publicar.
Setor novo só no código, fora do KV Hub: setor ausente no config = null = libera todos os treinamentos.
Data do Tableau lida como D/M Vem M/D/YYYY e valor "1,769.72". Conferir formato com amostra antes de filtrar.
Campo existe na API ≠ campo preenchido Genius: custo/datas/transportadora vazios em 100%. Medir preenchimento antes de construir.
?force=1 logo após reiniciar o Flask Respondeu 202 e não regenerou. Conferir o campo "gerado" do JSON e forçar de novo.
Mesmo texto de motivo em dois modos "Sem estoque" em perda e em não faturado zerava o crédito da cobrança. Usar prefixo próprio.
"Fechou hoje" pelo Controle 04 Extract do Tableau atualiza 1×/dia de madrugada. Venda do dia só aparece amanhã → disparo D+1.
"A API não tem esse campo" sem testar versões antigas Genius: comentário do cliente só existe no /v2/pvt/processo/{id}, fora do OpenAPI. Testar v2/v1 antes de dizer não.

// mostrando um recorte curado — a lista completa das 97 lições de erro, 48 do que funciona e 16 padrões vive em knowledge_lessons_learned.md / knowledge_stack_patterns.md (memória do Claude)

Checklist — antes de começar qualquer projeto novo

Qual é a fonte de dados? (Sheets / API / Firebase)
Precisa de proxy CORS? → usar padrão Worker
Tem autenticação? → usar padrão GM + Estagiários
Tem metas visuais? → usar semáforo verde/amarelo/vermelho
Tem histórico por período? → considerar heatmap
Precisa de lógica backend? → Apps Script salvo em disco (.gs)
Deploy: Cloudflare Pages via wrangler
Endpoint lento sob carga? → cache KV + Worker com Cron Trigger
Tem sync/refresh? → trava "resultado vazio não grava" + backup
API nova? → medir % de preenchimento real dos campos antes de construir
Confirmar qual sistema o usuário usa de fato antes de mexer
Atualizar Hub de Projetos após criar