Invite protection
Invite matching recognizesdiscord.gg/code, discord.com/invite/code, and
the older discordapp.com/invite/code form. It normalizes Unicode compatibility
characters and removes whitespace and zero-width formatting before matching, so
formats such as discord . gg / code resolve to the same destination. Only
normalized destination codes and counts are retained, never message content.
An invite decision is routed through the existing security incident projection.
An active message_spam security rule controls the configured response and its
review/enforcement ownership; review-mode decisions create the normal durable
review path. The outbox delivery is idempotent, so a worker retry resumes that
same incident/review route rather than producing a second moderation response.
Before enabling enforcement, use the detector preview and a disposable server to
check approved destinations, scope, exemptions, and the selected response rule.
Only a SHA-256 content fingerprint, link count, routing identifiers, and timestamp
are retained for rolling-window evaluation. Raw message content is not stored by
this detector. Automated repository checks do not replace disposable-server
acceptance before enforcement is enabled.
Uppercase proportion
Each server chooses the uppercase percentage and the minimum message length and number of cased letters required before this signal is considered. A match records the uppercase and cased-letter counts plus those three configured values, so a reviewer can see why it matched without retrieving message text. The same channel, role, and member exemptions apply before any signal is evaluated. The detector uses Unicode uppercase and lowercase letter categories. Scripts with no case distinction (for example Chinese, Japanese, Korean, Arabic, and emoji) do not contribute letters and cannot match this signal; short content cannot match it either. That is a language limitation, not a moderation judgment. In review mode, a match is routed as one durable reviewed decision and does not delete, warn, or timeout a member.Repetition and visually distorted text
The repetition and distortion signals use Unicode normalization to count adjacent repeated characters, adjacent repeated word-like tokens, and combining marks. Each server chooses a minimum length plus maximum repeat and combining-mark ratios. It can exempt code blocks and the detectedar, en, ja, ko, or zh
script family where local language conventions make these signals unsuitable.
The same channel, role, and member exemptions apply.
Pup retains only ratios, a coarse language family, code-block presence, and a
categorical normalized preview such as [visually-distorted text normalized].
It never retains the message text for this detector, and the preview deliberately
does not repeat the triggering text or reveal configured limits. Detection is a
review aid, not a claim that stylized or non-Latin writing is abusive.