Chirp Moderation
This module provides a self-improving moderation system for the Chirp microblogging module, allowing sites to pre-screen content based on keywords and moderation categories. It automatically learns from moderator rejections to grow its keyword vocabulary, enabling it to block harmful content without needing AI.
Chirp Moderation scaffolds a complete, self-improving moderation pre-screening system for the Chirp microblogging module — moderation categories, a keyword vocabulary that grows every time a moderator rejects a chirp, and a report/hard-block manager that acts automatically on a screening match. A site can run this entire system with zero AI dependency; the companion Chirp AI Moderation module is a separate, optional layer on top for sites that also want an AI provider check.
Features
- Moderation categories — an admin-editable list of reasons a chirp gets flagged (spam, harassment, hate speech, threats of violence, etc.), each with its own "hard block" toggle. Ships with five starter categories out of the box.
- Self-improving keyword vocabulary — starts empty. Every time a moderator rejects a reported chirp and supplies a category and keyword/phrase, that phrase is added to the vocabulary automatically. The next chirp containing that phrase is then caught instantly, with no further moderator effort and no AI call.
- Hard block vs. soft block — a hard-block category match (e.g. slurs, threats of violence) rejects a chirp outright, before it's ever visible to anyone. A soft-block match unpublishes the chirp and routes it into Chirp's own moderator review queue for a human decision.
- Extends Chirp's existing moderation queue, not a second one — every keyword-sourced report (and, if Chirp AI Moderation is installed, every AI-sourced report) shows up in the same review queue as ordinary member reports, with the flagging source and matched category displayed inline.
- Zero JavaScript required — the category picker and keyword field on the moderator's Reject form are plain server-rendered HTML. The whole workflow, including vocabulary growth, works with JavaScript completely disabled.
- A real plugin architecture underneath — screening runs through a `ChirpModerationScreener` plugin type defined in Chirp core. This module provides the keyword-matching plugin; other modules (like Chirp AI Moderation) can add their own screening strategies without this module or Chirp core needing to know about them.
Post-Installation
Enabling the module immediately starts screening every new chirp (top-level posts and replies alike) against the keyword vocabulary — there's nothing further to configure to get basic protection running, though the vocabulary starts empty until moderators begin rejecting content.
To manage moderation categories, visit Configuration → Content → Chirp Moderation (/admin/config/content/chirp-moderation). This requires the Administer Chirp Moderation categories permission, which is deliberately separate from Chirp's own day-to-day Moderate reported chirps permission — reserve it for trusted site administrators, not general moderators.
Day-to-day moderator work (reviewing reports, approving or rejecting) happens entirely inside Chirp core's own existing moderation queue at /moderation/chirps — this module only adds fields and options to that existing page, it doesn't introduce a separate one.
Additional Requirements
- Chirp — the parent microblogging module this extends.
- Chirp Config (bundled with Chirp core) — owns the underlying "report" flag this module attaches fields to.
- Flag
No AI-related dependencies of any kind — those live entirely in the optional companion module below.
Recommended modules/libraries
Chirp AI Moderation — an optional companion module that adds an AI-provider moderation check on top of everything this module provides, for sites that want automated screening beyond keyword matching. Hard-depends on this module; installing this module alone does not require it.
Similar projects
This module is purpose-built infrastructure for Chirp's own comment-based microblogging model (chirps are comments on user entities, not nodes) and its existing Flag-based report/review queue — it extends that system rather than replacing it, so it isn't a drop-in alternative to general-purpose Drupal moderation/workflow modules, which typically target node-based content and don't share Chirp's own data model.
Supporting this Module
This module is supported by Lisa Harrison (lisa.rae), an individual contributor and long-time member of the Drupal community.
Community Documentation
See this project's own README.md for full developer documentation — data model, the screening pipeline, the two extension hooks Chirp core provides for a source-agnostic moderation queue, routes/permissions, and the test suite.
Depends on
Dependencies of the latest stable release
No dependencies recorded for this project.
Required by
Tracked projects that depend on this one
No tracked projects depend on this one yet.