Skip to content

Content Moderation

mdeguzis edited this page Jun 6, 2026 · 2 revisions

Content Moderation

User-submitted report text is scanned automatically on two layers:

  1. Wordlist (naughty-words) - offline multilingual filter, runs first on every row
  2. OpenAI Moderation API - semantic fallback for anything the wordlist misses (requires OPENAI_API_KEY secret in the proton-pulse-data repo; falls back to wordlist-only if absent)

The scan runs every 4 hours via GitHub Actions (content-moderation.yml) with a 5-hour lookback window, and does a full 25-hour sweep daily at 02:00 UTC. Flagged reports are hidden from public views automatically. Report authors see a "Flagged" badge on their profile page with a plain-language explanation and a link to the Discord server for disputes.

To trigger a manual scan:

gh workflow run content-moderation.yml --repo mdeguzis/proton-pulse-data \
  -f dry_run=true -f lookback_hours=720

Clone this wiki locally