尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗Shippear #3 · Desafío Ranking de Vendedores
Los reportes mensuales de 135 vendedores y 15 sucursales, convertidos en un BI visual que se juega y en agentes de IA que hacen el trabajo administrativo por el vendedor, para que el vendedor solo venda.
V052 (vendedor) y sup-pintos (gerente de equipo). PIN 1234.DECISIONS.md (V3).| Hoy | Con Liga La Virginia |
|---|---|
| Una planilla mensual con 7 KPIs que nadie mira hasta el cierre | Una carta de jugador con semáforos, que el vendedor mira en la calle todos los días |
| "Estás 82% en cobranzas" | "Cobrá a estos 3 clientes → +0,4 pts, subís al #50 y desbloqueás Oro" |
| El gerente descubre los problemas a fin de mes | Mapa de calor del equipo, rachas en riesgo y misión colectiva en vivo |
| El vendedor pierde horas mandando recordatorios y llenando encuestas | Un agente de cobranzas por WhatsApp y un agente de relevamiento que lee la foto de la góndola |
| Competencia que desmotiva a la mitad de abajo | Ligas de 10 de nivel parecido, rachas, MVP del que más mejoró y misiones colectivas |
Tres pilares:
Browser (mobile-first) ──SWR polling 2s──▶ /api/live (firma de cambios filtrada por sesión)
│ │
▼ ▼
Next.js 15 App Router ── Server Components / Server Actions / API routes ── service role ──▶ Supabase Postgres
│ │ (RLS ON, 0 políticas anon)
middleware JWT lib/scoring.ts ← única fuente de verdad del Puntaje Oficial
(cookie firmada) lib/game.ts ← Puntos de Liga, rachas, temporadas, ligas
lib/acciones.ts ← "Mejorá tu carta" (acciones = deltas sobre datos crudos)
lib/automation.ts ← agentes (cobranza, góndola, Dibu)
usuario (rol VENDEDOR o SUPERVISOR, que en pantalla se llama Gerente) con PIN hasheado con scrypt. La sesión es un JWT HS256 en una cookie httpOnly y un middleware redirige según el rol. El vendedor solo ve su carta. El gerente ve a su equipo, el detalle de sus vendedores, la Liga nacional y la Temporada.anon (probado: la API REST con la anon key devuelve []). Todas las lecturas pasan por el servidor con la service role, filtradas por la sesión./api/live cada 2 segundos. Cuando cambia la firma (ajustes, bandeja, reconocimientos), refresca los Server Components.lib/scoring.ts. Define ranking, podio y Balón de Oro.lib/game.ts. Alimentan beneficios y desempates.scripts/extract-pdf.mjs genera data/dataset.json (el dataset vino en PDF). scripts/seed.ts valida la fórmula y carga todo; scripts/seed-usuarios.ts carga los usuarios.| KPI | Real | Objetivo | Sentido | Peso |
|---|---|---|---|---|
| VTA Venta vs OV | Kilos_Vendidos / Kilos_Objetivo | 100% | ↑ | 30% |
| PRD Productividad | Pedidos / Visitas | 65% | ↑ | 10% |
| ACT No compradores | (Cartera − Compradores) / Cartera | 15% | ↓ | 15% |
| LAN Últ. lanzamientos | Con_Lanzamiento / Compradores | 40% | ↑ | 15% |
| ENT No entregados | No_Entregados / Pedidos | 3% | ↓ | 10% |
| COB Cobranzas | Cobros_en_Plazo / Cobros_Mes | 90% | ↑ | 15% |
| REL Relevamientos | Realizadas / Asignadas | 100% | ↑ | 5% |
| Agente | Qué hace | Ahorro estimado* |
|---|---|---|
| 🧤 Comodín Dibu | Redacta el WhatsApp de cobranza, lanzamiento o aviso de entrega con monto y vencimiento reales. Usa Anthropic (claude-haiku-5-5) si hay ANTHROPIC_API_KEY; si no, plantillas. Nunca inventa cifras. | ~2 min por mensaje |
| 🤖 Agente de Cobranzas Autónomo | Detecta los vencimientos de los próximos 5 días, manda el recordatorio y, cuando el cliente responde "ya pagué", marca el pago, suma el cobro al KPI y la carta sube sola. Endpoints listos para n8n + Twilio (/api/automations/cobranza/run, /api/webhooks/pago con x-webhook-secret). | 1–2 h por semana por vendedor |
| 📸 Agente de Relevamiento Visual | Desde una foto de la góndola "lee" frentes, faltantes y precios y completa hasta 5 encuestas de una vez (simulado en la demo). | ~5 min por encuesta |
* Estimaciones para el pitch, no medidas. En la demo los agentes corren en modo simulado dentro de la app.
Vendedor de demo: V052 · Mansilla Germán (Córdoba/Rio Cuarto). Tiene 90,8 pts, que lo pondrían en Oro, pero está 🔒 bloqueado en Plata por Cobranzas (82%).
V052 y PIN 1234. Se ve la carta Plata con el candado, el puesto #54 de 135, las rachas (🔥 12 meses en Venta) y Tu Liga.Para repetir: ↺ Reiniciar demo en la vista del vendedor.
npm i
npm run migrate # schema.sql + schema-v2.sql (requiere DATABASE_URL; alternativa: SQL Editor)
npm run seed # valida la fórmula, carga datos, juego y usuarios (PIN 1234)
npm run dev # http://localhost:3000 (con proxy/antivirus TLS: npm run dev:local)
npm test && npm run validate
Variables de entorno:
NEXT_PUBLIC_SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY y WEBHOOK_SECRET.AUTH_SECRET: si falta, se deriva de la service role.ANTHROPIC_API_KEY.MODO_PRESENTADOR=off: apaga el selector de roles del footer.NEXT_PUBLIC_SUPABASE_ANON_KEY ya no es necesaria: no hay lecturas anónimas.
Ver DECISIONS.md para todo lo que decidimos sin preguntar. Datos 100% ficticios.