Most moderation work is invisible to the user. The decisions that matter are the ones that aren't. The notification that an account has been restricted, the message that a post was removed, the screen that says a profile is under review. These are the moments the system either keeps the user or loses them.
Tell them what, never why
The instinct of every product team is to give the user a clear reason. The instinct is wrong. Detailed reasons help bad actors triangulate the detection model and ruin it for everyone else. Vague reasons feel insulting to the good actor who gets caught in the net.
The pattern that survives in production is specific about the action and abstract about the cause. Your post was removed because it violated our policy on harassment, with a link to the policy. Not because of the model score, not because of the specific phrase, not because of the historical pattern.
Build the appeals path before launch
The single most common moderation failure pattern we see is products that ship a detection model without an appeals path and rebuild the entire UX six months later under regulatory pressure. The appeals path is not an afterthought. It is the part of the system that protects you against your own false positives.
A working appeals path is fast (response in days, not weeks), traceable (the user can see where their case is), and asymmetric (a human reviews, not the same model that made the decision). The cost of building it is much lower than the cost of not having it the first time you need it.