Skip to content

gbbragadev/comadre

Repository files navigation

Comadre 💅

Sua amiga de IA que sabe de tudo — te conta a treta com voz de gente e fonte na tela, dá opinião e ainda apresenta um programa só pra você.

Documento-fonte: docs/PROJETO-COMADRE.md · Decisões: docs/adr/

O Produto

Telas:

  • / — Home personalizado (manchetes desde última visita, me conta tudo para programa)
  • /palco — Conversa com a Comadre ao vivo (ancorada na treta, com citação de fonte)
  • /programa?treta=... — Modo Programa com voz expressiva e avatar animado
  • /tretas — Listagem completa de tretas ativas
  • /t/[id] — Detalhe da treta (capítulos, votos, discussão)
  • /voce — Perfil e memória do usuário (apelido, fandoms, preferências)
  • /admin — Kill-switch editorial (arquiva tretas problemáticas)
  • /transparencia — Disclosure de IA + regulação 18+

API Core:

Rota O quê
GET /pauta títulos das fichas do dia (ticker)
POST /chat conversa SSE com persona ancorada
POST /programa modo programa com blocos narrativos
GET /home manchetes + recomendação personalizada
GET /tretas listagem de fichas ativas
GET /tretas/:id detalhe completo + capítulos
GET /perfil memória do usuário (header x-device-id)
POST /perfil salva apelido e fandoms
GET /custos unit economics (tokens + TTS)
GET /health status
GET/POST /admin/blocklist kill-switch editorial (header x-admin-token)

Subir tudo (dev)

# 1. Infra local (Postgres+pgvector na porta 5434, Redis na 6379)
docker compose up -d

# 2. Dependências
pnpm install

# 3. API (porta 4310) — precisa das envs OPEN_ROUTER_API_KEY e ELEVENLABS_API_KEY
pnpm dev:api

# 4. Front (porta 3000)
pnpm dev:web

# 5. Workers BullMQ (agenda coleta de pauta a cada 15min)
pnpm dev:workers

Abra http://localhost:3000, clique em "me dá uma fofoca" (ou ▶️ assistir o programa) e suba o volume. 🔊

Público (túnel cloudflared dedicado)

https://comadre.gbbragadev.com — túnel comadre (config em ~/.cloudflared/comadre.yml, API e front no mesmo host: paths /chat|/programa|/health|/custos|/pauta|/home|/tretas|/perfil|/admin → 4310, resto → 3000). Após reboot: powershell -ExecutionPolicy Bypass -File tools\start-comadre.ps1. Proteção de custo: teto diário global (LIMITE_TURNOS_DIA=300, LIMITE_TTS_MIN_DIA=20min; estourou → resposta vira só texto / recusa simpática). Acompanhe em GET /custos.

Variáveis de ambiente

Documentadas em .env.example. As chaves podem vir das envs da máquina — o .env é opcional e nunca deve ser commitado. Sem ELEVENLABS_API_KEY, o chat funciona só em texto.

Pauta real (pipeline editorial)

Fichas vêm do Postgres (fallback para fixtures se vazio). Pipeline (packages/editorial): RSS → extrai candidato via DeepSeek V4 Flash (regras duras: nada de menores, saúde íntima, crime fora do enquadramento) → deduplica por personagens → grava treta/capítulos transacionalmente. Worker roda a cada 15min, mas só liga quando packages/editorial/fontes.json tiver fontes.

Pauta S03: 14 fontes reais de entretenimento brasileiro (Globo, UOL, Extra, Folha, etc.) com feeds RSS funcionando. Criterios em ADR-004 (status: FECHADO) e ADR-006 (auto-publish + 18+).

Setup do banco: pnpm --filter @comadre/api db:migrate aplica schema (idempotente).

Verificações rápidas

pnpm --filter @comadre/api selfcheck    # parser de tags [MOSTRAR]
pnpm -r typecheck                        # typecheck de todos os pacotes
node tools/compara-modelos.mjs          # comparativo real de modelos (gasta ~US$0,01)

Regras que o código respeita (não negociáveis — seção 5 do doc)

  • A persona só comenta o que está na ficha, sempre citando a fonte.
  • Nunca voz/imagem clonada de pessoa real — voz é sintética (ElevenLabs Voice Design).
  • Fichas de teste usam personagens fictícios.
  • Disclosure de IA permanente no rodapé do front.

About

Comadre — sua amiga de IA que te conta a treta com voz de gente e fonte na tela, dá opinião e apresenta um programa só pra você.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages