Bot policy
The following page is a translation of cross-project policy into English language. Please note that in the event of any differences in meaning or interpretation between the original English version of this document and a translation, the original English version takes precedence. This page has been developed and approved by the community and its compliance is mandatory for all users. It must not be modified without prior community approval. |
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
- 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
- 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
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
- Global bots: global permission · global groups (toolforge) · member list · group changelog
- Global groups
- Global bot wikis: wikiset overview • wikiset changelog
- Bot status request to stewards
- About bots:
- Bot
- Interwiki bot and Interwiki sorting order
- Pywikibot framework (supports any MediaWiki installation)