Skip to main content
The Open Notes Discourse plugin adds AI-powered content moderation with community oversight to your forum. It is the reference implementation of the public API contract — every decision made during its design is the tie-breaker for ambiguity in the integration spec.

What it does

When a post is created or edited in a monitored category, the plugin sends it to the Open Notes server for classification. The response determines which of two paths the post takes.

Two-tier moderation

When the AI classifies content with high confidence as harmful, the post is hidden immediately. A ReviewableOpennotesItem is created in the retro_review state so the community can confirm or overturn the decision.The community’s verdict is final: if enough voters disagree, the post is restored, marked scan-exempt, and a staff annotation is added explaining what happened.

What staff see

  • Review queue (/review) — flagged items with classification labels, scores, and community vote tallies.
  • Admin dashboard — activity metrics, classification breakdown, consensus health, and top reviewers.
  • Per-category configuration — different auto-action thresholds and review group routing per category.

Overturn flow

If the community votes to overturn an automated action:
  1. The post is restored and made visible.
  2. The post is marked scan-exempt (minor edits will not re-trigger classification).
  3. A staff annotation is added explaining the post was hidden and then restored.
  4. Substantial rewrites clear the scan-exempt flag and allow re-classification.

Where to go next

Install

Add the plugin to app.yml and rebuild your container.

Configure

Server URL, API key, monitored categories, and moderation behavior.

User guide

What community members see and how review voting works.

Architecture

Ember components, Sidekiq jobs, and how the plugin maps the public API contract.