|The following page documents an official cross-project policy.|
This page has been elaborated and approved by the community and its compliance is mandatory for all users. It must not be modified without prior community approval.
|←||Bot policy and guidelines|
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.
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.
There are three ways to obtain bot access on a wiki.
- Global bots are given access on all wikis that allow global bots (this must be explicitly permitted by local policy, see list). To qualify for global bot access, the following requirements must be met:
- 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 just gives the bot access to a restricted number of projects and wikis where they do not have a local bot flag. You will find an exhaustive list of wikis where the global bot flag is active here. (You can request local bot flags on projects where global bots are not allowed.)
- 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 maintain interlanguage links or fix double-redirects.
- 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.
- 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:
- Inactivity is deemed as any global bot account not performing any edits on any project where global bot flag is allowed for a whole year.
- Before removal of global bot flag for inactivity takes place, operators must be notified at least on their respective home wikis and at Meta-Wiki.
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.
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.
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!
- Pick a license
- Publish the code
- Have co-maintainers
- Write some documentation
- Global bots:
- Special global permissions