Expand description
Raid assessment: which members read as people, and which read as spawned identities.
A sybil raid never looks like spam from one account. It looks like one message each from a hundred fresh accounts, so per-sender rate limits and per-account reputation both miss it entirely. What survives is the COHORT: many distinct senders posting the same shape inside one window, from identities that were minted minutes ago. This module folds those signals into a per-member verdict plus the reasons behind it, so a moderator sees why before acting — the output drives a rotation’s retain set, and a wrong call there evicts a real member.
Conviction rests on cohort evidence, never on freshness alone: a community that just posted an invite link is supposed to see a burst of quiet new accounts.
Structs§
- Cohort
- A duplicate-text cluster: the evidence a raid actually leaves behind.
- Member
Assessment - One member’s verdict with the evidence that produced it.
- Member
Signals - What the caller knows about one member before any judgement is applied.
- Raid
Params - Tunables for
assess. The defaults are the shape of a real raid; a moderator can widen them from the panel when a wave is slower or quieter than the norm. - Raid
Report - The whole picture for one community.
Enums§
- Verdict
- Where a member lands. Only
Verdict::Suspectis pre-selected for removal.
Functions§
- assess
- Judge every member against the cohort evidence.
now_secsis the clock the caller reads once, so a long assessment can’t drift mid-pass. - skeleton
- Collapse a message to the shape a raid script repeats. Case, punctuation, spacing and digit variation are all one line of attacker code to randomise, so none of them may carry weight.
- skeleton_
with skeletonagainst a set of shortcodes that actually render as images. A:code:outside the set reaches the reader as literal text, so it stays in the skeleton — otherwise wrapping the payload in colons hides a cohort in plain sight.