Jump to content

Bot policy

From Meta, a Wikimedia project coordination wiki
Shortcut:
BP
This page outlines standards and guidelines related to bots which are enforced on some projects (see Bot policy/Implementation); this can be checked by visiting "Project:Bot policy" on that wiki, which should point here or redirect to the local policy.

This page is also policy on Meta, including automatic approval and global bots. To request bot access on Meta, please go to Meta:Requests for adminship#Requests for bot flags.

Bots are automated or semi-automated processes that edit pages with reduced or no direct human supervision. Because bots may potentially strain server resources or disrupt the project, bots must follow the policy and guidelines outlined below. The policy outlines the way bots may be used on applicable projects; bots which do not follow the policy may be blocked immediately until the operator has resolved any issues or non-compliance.

Policy

Bot account

A bot must be run using a separate account from the operator, as no human editor should be granted a bot flag. Its user page should clearly and visibly denote it as a bot to distinguish it from human editors, and operators must be available to answer any comments themselves. No user is permitted to make use of automated answering scripts. Some operators may choose to redirect the bot's talk page to their own, if their bot is not configured to detect messages.

Authorisation

There are three ways to obtain bot access on a wiki.

Global bots

Global bots are given access on all wikis that allow global bots. As of November 12, 2022 and as a result of this RFC, newly created content wikis will have global bot access enabled by default. Local projects can decide to opt-in or opt-out at any time through community consensus (see list). Operators applying for a global bot flag must meet the following requirements:
  • The bot operator must start a discussion that will last for 2 weeks at Steward requests/Bot status#Global bot status requests;
  • The discussion will be publicized via MassMessage (New global bot discussion), where interested community members and wikis can be subscribed;
  • The bot operator must demonstrate the bot task is welcomed on multiple Wikimedia projects. A good way to show it is to be flagged on 5 or more wikis for a single task;
  • The operator should make sure to adhere to the wiki's preference as related to the use of the bot flag.
  • The global bot status gives the bot access to a restricted number of projects and wikis that allow global bot access. New wikis are added to this set by default. An exhaustive list of wikis that are not included is available. (You can request local bot flags on projects where global bots are not allowed.)

Automatic approval

If automatic approval is explicitly allowed on the wiki, bot operators can request a local bot flag directly from stewards. To qualify for this, the following requirements must be met:
  • this must be permitted by the local bot policy or request page;
  • the bot must edit regularly without a bot flag for at least a week or make 100 edits on the applicable wikis for demonstration purposes;
  • the bot must only fix double-redirects.

Community consensus

Otherwise if there is a local community interested in processing bot applications, bots must obtain community approval on the most relevant local discussion page before editing without a bot flag at high speeds or without human supervision. Once there is consensus, a local bureaucrat will add the flag, or a steward may be requested to do so. If there is no local community and the above does not apply, the bot must operate without a bot flag or not at all.

Unacceptable usage

  • Controversial changes: Bots may be used to perform edits which are most likely supported by other local editors; they should never be used to perform controversial edits. If you intend to expand the scope of the bot beyond that which was supported by the community, make note of this at the relevant discussion page to ensure that there is no opposition. If your bot flag was given by automatic approval, you must not exceed the limits described under "Automatic approval".
  • Data retrieval: Bots may not be used to retrieve bulk content for any use not directly related to an approved bot task. This includes dynamically loading pages from another website, which may result in the website being blacklisted and permanently denied access. If you would like to download bulk content or mirror a project, please do so by downloading or hosting your own copy of our database.
  • Spellchecking: No bot may automatically correct spelling mistakes without explicit community approval, particularly in the main content namespace. It is not technically possible in most languages to automatically correct spelling mistakes without a significant margin of error.

Removal of global bot status

Global bot permissions will be removed:

  • At the bot's operator request
  • If the bot is persistently used to perform tasks that are outside the global bot remit
  • If the bot is found to be inactive, with the following provisions:
    • A global bot account is deemed inactive if it has not made any edits for a whole year on any project that allows global bot access.
    • Before a global bot account's permissions are removed on the basis of inactivity, its operator must be notified at least on their home wiki(s) and at Meta-Wiki.

Guidelines

Name

Although not required, the bot name should clearly contain the word "bot" in its user name to more easily distinguish it from human editors; the most common forms are derived from the operator's username (such as Pathosbot), or using disambiguation style (such as Xenophon (bot)).

Edit throttle and peak hours

Bots running without a bot flag should edit at intervals of over 1 minute between edits (= less than 1 edit per minute). Once they have been authorised and appropriately flagged, they should operate at an absolute minimum interval of 5 seconds (12 edits per minute). Bots should try to avoid running during the busiest hours, as they rapidly use server resources that should be reserved for human readers and editors. During these hours, they should operate at intervals of 20 seconds (3 edits per minute) to conserve resources.

Bots' editing speeds can be automatically adjusted based on server load (slave database server lag) by appending an extra parameter to the query string of each requested URL; see maxlag documentation on mediawiki.

Supervision

Unless the bot is publicly stated to run autonomously, the operator should remain available, occasionally check for messages, and be ready to shut down the bot if it does not perform as desired or if complaints are received. If the operator is not available, the bot may be blocked until any issues are resolved.

Best practices

Please read wikitech:Help:Toolforge/Developing successful tools for strong recommendations that will make life easier for you and for everyone else in the future!

Briefly:

  • Pick a license
  • Publish the code
  • Have co-maintainers
  • Write some documentation

See also