Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Write a fair, enforceable community moderation policy. Use when standing up or overhauling moderation for a forum, Discord, Slack, subreddit, or any user community. Produces a clear code of conduct with examples, a graduated enforcement ladder tied to specific triggers, an appeals process, moderator guidelines, and the handling for the severe cases (threats, doxxing, brigading) that need immediate action. Governs member conduct in a user community — distinct from [[community-management-playbook]
.claude/skills/mohitagw15856-community-moderation-policy/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | -6% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 14% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 22% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 16% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 28% | 0% |
A moderation policy fails when it's vague ("be respectful") or applied inconsistently — members can't predict what's allowed, and mods burn out making judgment calls with no backing. This skill writes a policy that is enforceable: concrete rules with examples, a ladder that matches consequence to behavior, and the process that makes enforcement feel fair even to the person on the receiving end.
Given the community (platform, size, purpose, audience), write the full policy — tune severity and tone to the space (a professional Slack ≠ a gaming Discord). Keep the public-facing rules short and human; put the operational detail in the moderator guidelines.
Ask for (if not provided, else infer and label the assumption):
Short, plain, and specific. The core rules stated positively where possible, each with a one-line example of what crosses the line so it's not ambiguous. Cover the usual: harassment, hate speech, spam/self-promo, off-topic, NSFW, illegal content — scoped to this community.
Consequence matched to behavior and repetition:
| Level | Trigger | Action | Who can apply | |---|---|---|---| | 1 | first minor / borderline | friendly warning, edit/remove | any mod | | 2 | repeat / clear violation | formal warning, temp mute | any mod | | 3 | serious or repeated | temp ban (e.g. 7 days) | senior mod | | 4 | severe / incorrigible | permanent ban | admin | | Zero-tolerance | threats, doxxing, CSAM, targeted harassment | immediate ban + report | admin, no warning |
How a member contests an action: where to appeal, who reviews (not the acting mod), the timeline, and what can/can't be overturned. Appeals are what make the ladder feel legitimate.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 27,844 | 21,682 | -22% | 1 | 1 | 0% | 5,236 | 4,525 | -14% | 0 | 0 | — |
case-02 | fail→pass | 28,314 | 19,994 | -29% | 1 | 1 | 0% | 4,913 | 4,605 | -6% | 0 | 0 | — |
case-03 | fail→pass | 19,221 | 16,513 | -14% | 1 | 1 | 0% | 3,315 | 3,769 | +14% | 0 | 0 | — |
case-04 | fail→fail | 24,282 | 20,684 | -15% | 1 | 1 | 0% | 3,807 | 4,046 | +6% | 0 | 0 | — |
case-05 | fail→fail | 21,223 | 21,490 | +1% | 1 | 1 | 0% | 3,531 | 4,306 | +22% | 0 | 0 | — |
case-06 | fail→pass | 16,608 | 18,120 | +9% | 1 | 1 | 0% | 3,034 | 3,690 | +22% | 0 | 0 | — |
case-07 | fail→pass | 21,619 | 20,384 | -6% | 1 | 1 | 0% | 3,652 | 4,250 | +16% | 0 | 0 | — |
case-08 | fail→pass | 20,793 | 20,795 | +0% | 1 | 1 | 0% | 3,318 | 4,239 | +28% | 0 | 0 | — |
case-09 | fail→pass | 22,341 | 18,354 | -18% | 1 | 1 | 0% | 3,933 | 3,960 | +1% | 0 | 0 | — |
case-10 | fail→pass | 17,580 | 18,461 | +5% | 1 | 1 | 0% | 2,901 | 3,842 | +32% | 0 | 0 | — |
case-11 | fail→fail | 20,188 | 15,545 | -23% | 1 | 1 | 0% | 3,182 | 3,440 | +8% | 0 | 0 | — |
case-12 | fail→pass | 21,070 | 21,643 | +3% | 1 | 1 | 0% | 3,288 | 4,231 | +29% | 0 | 0 | — |
case-13 | fail→pass | 19,650 | 19,335 | -2% | 1 | 1 | 0% | 3,187 | 3,825 | +20% | 0 | 0 | — |
case-14 | pass→pass | 18,155 | 21,575 | +19% | 1 | 1 | 0% | 3,095 | 4,168 | +35% | 0 | 0 | — |
case-15 | fail→fail | 22,418 | 22,588 | +1% | 1 | 1 | 0% | 3,463 | 4,450 | +29% | 0 | 0 | — |
case-16 | pass→pass | 21,673 | 20,323 | -6% | 1 | 1 | 0% | 3,142 | 4,003 | +27% | 0 | 0 | — |
case-17 | fail→fail | 20,389 | 18,640 | -9% | 1 | 1 | 0% | 3,302 | 3,546 | +7% | 0 | 0 | — |
case-18 | fail→fail | 22,827 | 19,562 | -14% | 1 | 1 | 0% | 3,602 | 3,745 | +4% | 0 | 0 | — |
case-19 | fail→pass | 19,136 | 20,640 | +8% | 1 | 1 | 0% | 3,229 | 4,044 | +25% | 0 | 0 | — |
case-20 | pass→fail | 11,549 | 25,589 | +122% | 1 | 1 | 0% | 2,465 | 5,232 | +112% | 0 | 0 | — |
case-21 | pass→pass | 12,190 | 17,071 | +40% | 1 | 1 | 0% | 2,897 | 4,500 | +55% | 0 | 0 | — |
case-22 | pass→pass | 10,448 | 10,787 | +3% | 1 | 1 | 0% | 1,890 | 2,872 | +52% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +41 percentage points is the difference between those two pass rates over the 22 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.