1. El problema: los anuncios son el tipo de mensaje menos leído en Discord
Todo administrador de comunidad conoce el patrón. Escribes un anuncio cuidadoso, lo fijas, haces ping a todos, y en una hora queda sepultado bajo memes y dos discusiones. Discord es un flujo en tiempo real sin capa editorial. Un miembro que revisó el martes nunca verá lo que publicaste el lunes.
Un resumen semanal reemplaza esa apuesta con un contrato diferente. En lugar de empujar más mensajes al flujo, extrae la semana del flujo y la republica como un documento estructurado y fácil de escanear. El resumen se genera a partir de las conversaciones de los miembros, no de los anuncios del administrador. Esa distinción es lo que evita que se sienta como marketing.
2. El pipeline: muestrear, agrupar, escribir, publicar
El trabajo de resumen de Sovereign se ejecuta cada lunes a las 09:00 UTC. Muestra los mensajes de los últimos 7 días (hasta 100, conservando solo contenido real de más de 3 caracteres), resuelve el idioma objetivo a partir de una cadena de prioridad — idioma del panel de control, luego configuración del inquilino, luego la configuración regional preferida del gremio de Discord, luego un respaldo — y entrega la muestra al LLM bajo un estricto contrato de `prompt`.
Ese contrato es el control de calidad. El `prompt` prohíbe el relleno corporativo, limita la salida a 15-20 líneas y fuerza una estructura fija de tres bloques: puntos clave destacados (3-4 viñetas fácticas), logros y métricas (2 puntos cortos) y dos prioridades para la próxima semana. El modelo está instruido para basar cada línea en los mensajes reales de la muestra. No inventa puntos de referencia.
El resumen publicado se almacena con sus límites semanales, resumen y temas principales, de modo que el mismo contenido puede reproducirse como un correo electrónico de boletín, un hilo de foro o un mensaje de canal fijado.
// Language resolution: dashboard UI > tenant settings > guild locale > fallback
const LANG_PRIORITY = [targetLang, settings.language, guildLocale, 'fr'];
const effectiveLang = LANG_PRIORITY.find(Boolean);
// 7-day sampling window, max 100 messages, real content only
const weekStart = new Date(Date.now() - 7 * 24 * 60 * 60 * 1000);
const sample = await prisma.unifiedMessage.findMany({
where: { member: { tenantId }, createdAt: { gte: weekStart } },
orderBy: { createdAt: 'asc' },
take: 100
});
// Prompt contract enforced on the LLM:
// 1. Key highlights: 3-4 factual bullets taken from real messages
// 2. Wins & metrics: 2 short points
// 3. Focus for the week: 2 priorities
// Hard cap: 15-20 lines. Corporate filler: forbidden.3. Publicación: el `webhook` del Fundador, no una publicación de bot
Sovereign publica el resumen a través de un `webhook` de canal vestido con el perfil de marca de la comunidad — nombre y avatar del fundador o de la empresa, nunca el nombre de usuario del bot. Los miembros lo leen como una voz humana, lo que cambia tanto el compromiso como la confianza.
Discord limita los mensajes a 2.000 caracteres, por lo que el `pipeline` divide el resumen en fragmentos de 1.900 y los publica en secuencia. Si no hay un `webhook` disponible, el bot recurre a un mensaje normal. Un mecanismo, dos caminos, sin lógica duplicada.
El `prompt` del resumen prohíbe explícitamente el relleno corporativo y el marketing genérico. Si la semana no produjo puntos destacados reales, el resumen lo indica. Una semana honestamente escasa genera más confianza que una impresionante inventada.