analise-officers

Projeto: Lead Scorer — experimento com Claude Code

Memória do projeto para o Claude Code. Leia este arquivo inteiro antes de qualquer tarefa. Contexto detalhado e números da exploração inicial: docs/briefing.md.

Missão

Construir uma ferramenta que um vendedor abre na segunda de manhã e sabe onde focar, o que reativar e o que largar no pipeline. Cada deal precisa vir com uma explicação em linguagem de vendedor. O software tem que rodar com os dados reais do dataset Kaggle “CRM Sales Predictive Analytics”.

Decisões já tomadas (não reabrir sem evidência nova; se reabrir, registrar em docs/DECISIONS.md)

  1. Arquitetura: motor de scoring em Python (pandas, funções puras, pytest) que gera solution/app/data.js (window.LEAD_DATA = {...}). A interface é uma página estática em HTML, CSS e JS puro, sem build. Ela abre com duplo-clique (sem servidor; por isso data.js e não fetch de JSON) e é publicada no GitHub Pages. Não usar Streamlit, porque é o default de uma entrega de IA sem supervisão.
  2. Data de referência (“hoje”) = 2017-12-31, a data máxima do dataset. Ela é um parâmetro, nunca fixada no código.
  3. Tese do score: o que separa os deals é o frescor (idade do deal comparada ao ciclo histórico), não os atributos. O score combina a probabilidade condicionada à idade e ao estágio com o valor do produto. Os atributos (setor, produto, porte da conta) só entram se o backtest temporal mostrar ganho real.
  4. O vendedor não entra como fator de score. A diferença entre vendedores é compatível com ruído (qui-quadrado p=0,26) e usá-la penalizaria pessoas com base em ruído. O nome pode aparecer como contexto, nunca como penalidade.
  5. Listas de ação: Foque (vivo e com alto valor esperado), Reative (bom, mas esfriando), Limpe (deal zumbi) e Qualifique (Prospecting, que não tem data).
  6. Validação sempre fora da amostra e temporal: corte em uma data passada, desfecho posterior. Nunca reportar métrica in-sample como resultado.
  7. Idioma: a interface e a documentação ficam em português (PT-BR). Nomes de colunas, contas e produtos ficam como no dataset.

Fatos dos dados (verificados na fase 0, ver docs/briefing.md)

Regras de trabalho

Git e publicação

Estrutura alvo

analise-officers/ (raiz do repositório)
├── CLAUDE.md
├── README.md                 ← README de projeto (bloco 5)
├── docs/
│   ├── briefing.md           ← contexto + achados da fase 0
│   ├── SCOPE.md              ← bloco 1
│   ├── DATA_QUALITY.md       ← bloco 2
│   ├── SCORING.md            ← bloco 3 (lógica + validação)
│   ├── MODEL_CARD.md         ← bloco 5
│   └── DECISIONS.md          ← log contínuo de decisões
├── solution/
│   ├── data/raw/             ← CSVs originais (CC0)
│   ├── data/processed/
│   ├── scorer/               ← pacote Python: clean, features, score, explain, validate, build
│   ├── tests/
│   ├── app/                  ← index.html, app.js, style.css, data.js (gerado)
│   ├── briefs/               ← brief de segunda-feira por vendedor (gerado)
│   └── requirements.txt
└── process-log/
    ├── 00_fase0_exploracao.md
    ├── scripts/
    ├── chat-exports/
    └── screenshots/