Como reuniões Inventa viram sinais estruturados, passam por triagem e voltam pro dia a dia via Slack. Visão da arquitetura em produção (PoC Fase 1).
Reunião entra pelo Granola; IA extrai sinais sobre transcript diarizado completo (fallback: resumo).
flowchart LR granola["Granola
Reuniões Inventa"] captura["Captura
Poll 15 min"] storage["Armazenamento
Resumo + metadados"] pii["Proteção PII
Antes do LLM"] haiku["Triagem Haiku
Vale extrair?"] sonnet["Extração Sonnet
6 tipos de sinal"] entities["Entidades
Marcas · pessoas"] db["Base de sinais
Postgres Neon"] granola --> captura --> storage --> pii --> haiku --> sonnet --> entities --> db
Todo sinal passa por regras de confiança. Decisões ficam na trilha de auditoria (inclui revisão Opus).
Confiança > 85%
Vai direto pro Slack, sem fila humana.
Confiança 70% – 85%
Opus valida, ajusta score e pode promover, dispensar ou mandar pra fila.
Confiança < 70%
App de Triagem — promover, editar ou dispensar. Escalação automática após 24h.
Sinais aprovados são empurrados pro dia a dia — push antes de pull.
flowchart LR promoted["Sinal aprovado
Promovido"] brand["Canal da marca
#cliente-marca"] tracker["Commitments
#commitments-tracker"] themes["Temas
#cs-themes-semanal"] inventa["/inventa
Consulta com fontes"] reminders["Lembretes
48h + D+1"] promoted --> brand promoted --> tracker promoted --> themes promoted --> inventa tracker --> reminders
/inventaComando no Slack para consultar o que saiu das reuniões — complementa o push de sinais nos canais. Responde só com sinais promovidos (triados ou auto-aprovados).
flowchart TB slack["Slack /inventa"] rules["Regras fixas
marca · periodo · tipo
sem LLM"] search["Busca sinais promovidos"] zero{"Zero resultados?"} retry["Amplia busca
periodo · tipo · modo"] haikuAdv["Haiku sugere reformular"] answer["Resposta com fontes"] slack --> rules --> search --> zero zero -->|nao| answer zero -->|sim| retry --> search retry -->|"ainda zero"| haikuAdv --> answer
~1 segundo
Lookup tipo Bauducco essa semana — lista sinais com botão Abrir reunião. Sem síntese IA.
2 – 4 segundos
O que rolou com Bauducco? — busca semântica, Haiku ordena candidatos, Sonnet redige com citações numeradas.
| Etapa | Como funciona | LLM? |
|---|---|---|
| Entender a pergunta | Regex + palavras-chave (marca, período, tipo) | Não |
| Busca rápida | Full-text search no Postgres | Não |
| Busca semântica | Embedding + Vectorize (similaridade) | Não generativo |
| Ordenar candidatos | Haiku escolhe os mais relevantes | Sim |
| Redigir resposta | Sonnet sintetiza com citações obrigatórias | Sim |
| Zero resultados | Retry automático (amplia filtros) → Haiku sugere reformulação | Só no empty state |
/inventa não inventa reunião. Toda afirmação na síntese cita sinal real; cada card traz
link pro Granola. Se nada aparece, o sistema amplia a busca (período, tipo, modo) e só então a IA
sugere como reformular — sem afirmar que algo existe na base.
Exemplos:
/inventa Bauducco essa semana ·
/inventa o que rolou com Bauducco? ·
/inventa quais riscos foram levantados nos últimos 14 dias?
| Tipo | Uso típico |
|---|---|
| Compromisso | Prazo + responsável → lembretes |
| Decisão | O que foi decidido na call |
| Risco | Ameaça a prazo ou entrega |
| Sinal de cliente | Feedback ou demanda de marca |
| Process gap | Falha de processo interno |
| Ideia | Proposta ainda não decidida |
| Ferramenta | O que monitora |
|---|---|
| Langfuse | Qualidade IA — Haiku, Sonnet, Opus |
| cs-ops | Custo LLM, Opus reviews, erros |
| Trilha de auditoria | Promote · edit · dismiss · delta Opus |
?include=transcript). A extração
prioriza utterances com speaker label; se indisponível, cai no resumo editorial (modo degradado).
Workers Cloudflare, filas e storage — referência para engenharia.
| Camada | Worker / App | Função |
|---|---|---|
| Entrada | cs-poller | Cron 15 min → R2 + fila cs-ingest |
| Extração | cs-extraction-pipeline | PII · Haiku · Sonnet · Opus · Vectorize |
| Triagem | cs-triage-api + triage-app | API + UI promote/edit/dismiss |
| Slack | cs-slack-bot | Posts promovidos + /inventa |
| Compromissos | cs-commitments-scheduler | Cron horário · quiet hours 20–8h BRT |
| Temas | cs-themes-digest | Digest seg 9h BRT |
| Ops | cs-ops | Dashboard Analytics Engine |
| Item | Detalhe |
|---|---|
| Endpoint | cs-slack-bot POST /slack/command |
| Dados | Neon Postgres (FTS) + Vectorize cs-signals (synth) |
| Modelos | Haiku rerank + empty advisor · Sonnet síntese (AI Gateway) |
| Latência | FTS síncrono ~1s · synth ack + waitUntil 2–4s |
| Retry zero-result | drop texto → drop tipo → período 30d → escalar hybrid · depois Haiku empty advisor |
| Recurso | Papel |
|---|---|
| cs-ingest | Poller → extraction pipeline |
| cs-promoted | Triagem → slack-bot |
| cs-transcripts (R2) | Payload sanitizado por reunião |
| Neon Postgres | Sinais, entidades, commitments, audit |
| Vectorize cs-signals | /inventa synth + themes digest |