1. Sorun: duyurular Discord'daki en az okunan mesaj türüdür
Her topluluk yöneticisi bu kalıbı bilir. Özenli bir duyuru yazar, sabitler, herkese ping atarsınız ve bir saat içinde memelerin ve iki tartışmanın altında kaybolur. Discord, editoryal katmanı olmayan gerçek zamanlı bir akıştır. Salı günü kontrol eden bir üye, Pazartesi günü ne yayınladığınızı asla göreme.
Haftalık bir özet, bu bahsi farklı bir sözleşmeyle değiştirir. Akışa daha fazla mesaj itmek yerine, haftayı akıştan çıkarır ve tek bir yapılandırılmış, göz gezdirilebilir belge olarak yeniden yayınlar. Özet, yönetici duyurularından değil, üye konuşmalarından oluşturulur. Bu ayrım, pazarlama gibi hissettirmemesini sağlar.
2. İşlem hattı: örnekle, kümele, yaz, yayınla
Sovereign özet işi her Pazartesi 09:00 UTC'de çalışır. Son 7 günlük mesajları (100'e kadar, yalnızca 3 karakterden uzun gerçek içeriği tutarak) örnekler, hedef dili bir öncelik zincirinden çözer — kontrol paneli dili, ardından kiracı ayarları, ardından Discord guild tercih edilen yerel ayarı, ardından bir yedek — ve örneği katı bir istem sözleşmesi altında LLM'ye iletir.
Bu sözleşme kalite kontrolüdür. İstem, kurumsal dolguyu yasaklar, çıktıyı 15–20 satırla sınırlar ve sabit üç bloklu bir yapıya zorlar: temel öne çıkanlar (3–4 gerçek madde), başarılar ve metrikler (2 kısa nokta) ve gelecek hafta için iki öncelik. Model, her satırı örnekteki gerçek mesajlara dayandırması için talimatlandırılmıştır. Kıyaslamalar icat etmez.
Yayınlanan özet, hafta sınırları, özeti ve en önemli konularıyla birlikte saklanır, böylece aynı içerik bir bülten e-postası, bir forum başlığı veya sabitlenmiş bir kanal mesajı olarak yeniden oynatılabilir.
// 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. Yayınlama: bot gönderisi değil, Kurucu webhook'u
Sovereign, özeti topluluk markası profiliyle — kurucu veya şirket adı ve avatarı, asla bot kullanıcı adı değil — donatılmış bir kanal webhook'u aracılığıyla yayınlar. Üyeler bunu insan sesi olarak okur, bu da hem etkileşimi hem de güveni değiştirir.
Discord, mesajları 2.000 karakterle sınırlar, bu nedenle işlem hattı özeti 1.900 karakterlik parçalara böler ve parçaları sırayla yayınlar. Eğer bir webhook mevcut değilse, bot normal bir mesaja geri döner. Tek mekanizma, iki yol, yinelenen mantık yok.
Özet istemi, kurumsal dolguyu ve genel pazarlamayı açıkça yasaklar. Eğer hafta gerçek bir öne çıkan üretmediyse, özet bunu belirtir. Dürüst bir zayıf hafta, uydurulmuş etkileyici bir haftadan daha fazla güven kazanır.