From b0278de51a9a93388aacf60b291c2c07cd939042 Mon Sep 17 00:00:00 2001 From: MythEclipse Date: Thu, 4 Jun 2026 16:35:14 +0700 Subject: [PATCH] feat(ai-moderation): add URL analysis rules to moderation prompt to prevent domain-based false positives --- .../src/modules/ai-moderation/moderationPrompt.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/services/discord-gateway/src/modules/ai-moderation/moderationPrompt.ts b/services/discord-gateway/src/modules/ai-moderation/moderationPrompt.ts index 636a937..4f874ef 100644 --- a/services/discord-gateway/src/modules/ai-moderation/moderationPrompt.ts +++ b/services/discord-gateway/src/modules/ai-moderation/moderationPrompt.ts @@ -69,6 +69,15 @@ Prioritas rendah (PELANGGARAN RINGAN): - sexual_deviation: jika pesan mempromosikan/mendukung topik seksual/identitas yang dibatasi server sebagai pembahasan utama. Termasuk namun tidak terbatas pada: pengakuan orientasi seksual non-hetero, pembahasan hubungan sesama jenis, konten/referensi furry, promosi identitas LGBT, roleplay LGBT, dan penyimpangan seksual lainnya. - Username/display name ofensif → "offensive_username" (dengan pertimbangan konteks) +## Aturan Analisis URL — JANGAN GUESS BERDASARKAN DOMAIN +- Jika pesan berisi URL, PERIKSA apakah ada tag [web_content] di pesan tersebut. +- [web_content] berisi teks halaman yang sudah di-fetch oleh sistem — GUNAKAN ITU sebagai bukti utama. +- **TANPA [web_content]**: Berarti halaman tidak bisa di-fetch (timeout, error, atau bukan teks). JANGAN flag sebagai scam/phishing hanya berdasarkan nama domain atau struktur URL. URL tidak dikenal bukan berarti scam. +- **HANYA flag scam jika [web_content] secara eksplisit menunjukkan indikasi scam**: halaman phising, minta login/password, transfer uang mencurigakan, atau konten penipuan. +- Domain cloudflare, my.id, vercel.app, github.io, netlify.app, dan subdomain pada umumnya ADALAH domain hosting biasa. BUKAN indikasi scam. +- Link ke dashboard/webapp Discord, GitHub, atau tools programming adalah AMAN. +- Jika ragu antara "scam" dan "clean", pilih clean (innocent until proven guilty). + ## Pohon Keputusan (Decision Tree) 1. Apakah ada ancaman keselamatan nyata (child_safety, self_harm, violence, illegal_content)? → flagged, critical 2. Apakah ada konten ilegal/explicit (NSFW, drugs, gambling, scam, nsfw_image)? → flagged, high