MenuModeration

Moderation

Every group is a moderation service over its own content. Reports come in, labels go out, and a simple queue tracks what's open.

Each group is also a moderation service with authority over all content in the group.

Reports in, labels out

Moderation works the normal atproto way: reports come in on one side, labels come out the other. Sometimes a group-specific action is needed too, such as ejecting a member.

Reports are sent with createReport, the same way content is reported to any moderation service, addressed to the group.

Labels live next to their subject

Labels are published as label records by the group DID, in the same space as the content they label. A label on a forum post goes in the forum space. Anyone who can see the post can see its label, and nobody else.

Labels on accounts go in the members space.

A label can cite the rule it enforces, and a later label with neg: true negates an earlier one.

The proposal anticipates a general com.atproto label record type. Until one exists, group.opensocial.label fills that role.

Two tiers of labelling

  • label lets a member apply and negate ordinary labels.
  • takedown is needed for the two strongest labels, !hide and !takedown.

A group can let many people tag content while keeping removal with a few.

The queue

On top of this, the standard specifies a simple moderation workflow. A subject (a record or an account) is open, escalated or resolved.

Method Requires Does
listSubjects mod.read The queue, filterable by status.
getSubjectHistory mod.read Every report, label, note and decision on one subject.
resolveSubject mod.resolve Resolve or escalate, optionally with a note.
applyLabel label or takedown Write a label into the subject’s space.
negateLabel label or takedown Negate an earlier label.

Moderators can see limited information and take limited actions. The aim is to support moderation inside ordinary apps, not to replace dedicated tools.

Beyond the queue

Large groups may need much more complex moderation. That usually means bespoke moderation software working with the group directly, not in-app flows. The standard doesn’t try to cover it.