Skip to content

Latest commit

 

History

History
33 lines (24 loc) · 1.61 KB

File metadata and controls

33 lines (24 loc) · 1.61 KB

Instruções para agentes

Regras permanentes de trabalho neste repositório.

Git

  • Mudanças entram por branch + PR. Não force-push na main.
  • Não criar tags nem publicar o Worker sem instrução explícita do usuário.

Scraping

  • NUNCA rodar scraping por conta própria — nem run-once, nem jobs agendados, nem coleta manual de loja/categoria, nem re-coleta para "refrescar"/"corrigir" dados.
  • Scraping só é executado quando o usuário pedir explicitamente.
  • Em trabalho de desenvolvimento (ex: nova regra da engine, novo endpoint), usar os dados já existentes no Supabase; se faltar dado, sinalizar e esperar instrução — não inventar coleta.

Supabase Postgres — economia e segurança

  • Evitar SELECT * ou varreduras amplas sem WHERE/LIMIT em products/listings/price_history — tabelas grandes, custo de IO.
  • Para validações, preferir agregações mínimas (count(*), count(*) GROUP BY loja/categoria com limite) e só quando estritamente necessário.
  • Migração D1→Supabase: usar scripts/d1-to-supabase.sh (idempotente com ON CONFLICT DO NOTHING); legado scripts/d1-push-remote.sh está deprecado.
  • DATABASE_URL (pooler 6543 para Workers/Hyperdrive, 5432 direct para drizzle-kit) via apps/api/.dev.vars — nunca commitar.

Stack

  • Front: Angular em apps/web.
  • API: Cloudflare Worker (apps/api) + Supabase Postgres (sa-east-1) + Hyperdrive + Drizzle + Zod.
  • Domínio puro em packages/domain (sem I/O).
  • Scraper Python em scraper/ — persiste via OPENPC_API_URL (/internal/v1).
  • Sem Docker, sem GitHub Actions, sem pasta deploy/.