Wikipedia:Deferred changes/Implementation

The page details the proposed implementation of deferred changes.

Technical aspects
To defer an edit, flagged revisions is enabled on the page and the latest edit prior to the latest user's edits is marked as reviewed. The page appears at Special:PendingChanges and the edits can be reviewed. In addition, if the deferral is active, the stable version is displayed to readers by default.

A deferred page is recorded in the database with a "defer" level, and whenever an edit to a page with "defer" level is reviewed, the config is reset. So this implements the "defer until reviewed" concept. No change in the db schema is needed.

For AbuseFilter, two custom actions are added to defer passively or actively.

Bots can defer an edit with the API passively, and actively if the bot can rollback.

ORES may defer during its job, checking the damaging thresholds to apply for passive and active deferrals from MediaWiki pages on wiki.

FlaggedRevs can also check tags added in core or by extensions with the ChangeTagsUpdate hook. If any of the added tags is meant to indicate a problem, it defers the edit. By relying on the already well integrated change tag functionality, this can be easily used from a variety of sources. Problem tags are specified by tag managers, they trigger a deferral by default, but can be selectively prevented from doing so.

Tasks

 * T118696 fpr API/AF
 * T150593 for ORES
 * T153284 notifications
 * T150594 enwiki request

Commits
The finished commits are struck out.
 * Basic commits
 * 218104 Main implementation (includes API and AbuseFilter)
 * 326156 ORES implementation
 * For notification
 * 316957 Echo notification (which depends on 316410, and needs an icon)
 * For simultaneous use of regular patrol
 * 328111 Make patrol of reviewed changes optional
 * 315109 Don't autopatrol autoreviewed users in protection-based configs
 * For easier reviewing
 * 315145 Show log excerpt by default in review form
 * Required for change tags support
 * 315344 Change tags support (in FlaggedRevs)
 * 190656 Allow patrolling of tagged changes with minimalist RC patrol (this adds 'problem' tags)

Testing
Testing can be done at http://deferred-changes.wmflabs.org.

Rollout
As agreed in the RFC on deferred changes, roll out should occur cautiously and progressively.

It is suggested to set an edit filter to defer only passively at first, check that this does not add excessively to the backlog and does not result in too many false positives, then it is possible to set it to defer actively if desired. To properly control the backlog, edit filters should be set to defer one by one or in small batches.

With bots and ORES, it is suggested to have two thresholds: one for passive defer and one (higher) for active defer; at the beginning active defer is not enabled and the passive defer is set to very high, then one checks that this does not add excessively to the backlog and does not result in too many false positives, and if it doesn't the threshold can become the active defer threshold, while at the same time the passive threshold can be set lower, and so on.

To facilitate reporting of false positives, the edit filter log comments (MediaWiki:abusefilter-actionsummary-passivedefer and MediaWiki:abusefilter-actionsummary-activedefer) should contain false report links. Bot log comments should do so as well.

Deferred changes should be transformed in an information page like Pending changes, and MediaWikiflaggedrevs-defer-help should link there.

User:ClueBot NG: ask operators if possible to directly integrate, if not set up a task by another bot (ask at WP:BOTREQ) to defer based on Cluebot's IRC feed.