Test-Scratch-Wiki:Bots

Bots are semi-automated or fully-automated tools that often do repetitive tasks in order to maintain the pages of the Scratch Wiki. Bots are legitimate alternate accounts of its programmer or owner and have regular user pages. However, edits to the wiki made by bots are computer-generated, and can be supervised editing by its owner. Bot user pages are clearly stated with a Bots and a Bot user template. Bots can also post on user talk pages, alerting a user about something. To block a bot from editing a talk page, place the NoBots template on the page. Currently, there are bots; however, there is no certainty on how many are active at this current time. User group rights for bots and others can be found here.

How to create a bot
New bots need to be approved by Scratch Wiki users and admins. This is easily done by posting an idea for a bot in the bot request page. After a new account for a bot, a script needs to be written to run it. The Chicken Scheme, Common Lisp, Haskell, Java, Microsoft .NET, Perl, PHP, Python, and Ruby programming languages all have libraries available to make bots. Working bots, with scripting, need to be tested. A good place to test it is in the owner's sandbox. After approval, and after letting a bureaucrat change its user group, your bot is approved and can function normally. Bots must skip pages marked with the template.

The requirements for creating a bot are:
 * The bot must have a legitimate purpose
 * The bot must be designed to help the Wiki as a whole, and can't only be for one person
 * The bot must be approved by an Experienced Wikian or Admin before an account request is submitted
 * The owner must have a good history on the Wiki

Steps to request a bot
Here are the main steps that must be followed to request a bot.
 * 1) Read this page.
 * 2) Submit a bot request on Test-Scratch-Wiki:Bot Requests, detailed on the previous page you read.
 * 3) * You may want to watch that page and be notified when it is changed.
 * 4) Respond to the discussions.
 * 5) If your request status turns to "Test on main account", run your bot script on your account once, and stop. Notify the discussion.
 * 6) * If there are recommendations, put them in your bot and test again until majority of people are satisfied.
 * 7) If your bot script has been approved, create a new Scratch account and request a new wiki account. Be sure to say in the request notes that this account will be a bot account, owned by you.
 * 8) *Your bot's name does not have to include the word "bot" in it!

Evaluation
Admins meticulously evaluate the bot's edits and also the bot's code. Therefore, Admins check the code for: Admins check the edits for:
 * Accuracy no flaws that will destroy the wiki, etc.
 * Variability bots, such as spelling bots, must be programmed to accept multiple answers.
 * Accuracy no flaws in editing.
 * Comment bot edit's summaries must contain something relevant to edits and cannot be nil.
 * Feasibility are the edits helpful to the wiki?
 * Speed must have a time delay to prevent the wiki from crashing if the bot involves mass-editing.

Recommendations for bots
A good addition to bots (especially fully-automated bots) is an on/off page on the bots talk page. A user, upon seeing a bot malfunction in the Recent Changes tab, can stop the bot temporarily by editing the page's contents.

Another good addition to bots is a quick explanation of the bot in its user page. An admin may have no idea what the task(s) of a bot is without explanation. A bot that edits and leaves a good edit summary is sufficient. Bots should always have a template on their userpages, as well as a  template to signify a bot user. Bot accounts should be used only with a GUI or a script and their edits should be computer-generated.

Bots should be monitored very closely for the first few days after activation in order to prevent undesired edits.

After the creation of a bot
Once a bot has been accepted and is ready for the wiki, update the /Areas/ page. Also, make sure that your bot request has been archived.

Examples
Some examples of bots are:
 * ThisIsAnAccount makes edits relating to redirects
 * VoxBot cleans up articles in the Scratch Wiki
 * WikiMonitor alerts users for breaking common Scratch etiquette