Jump to content

Wikipedia:Bots/Requests for approval

From Wikipedia, the free encyclopedia

New to bots on Wikipedia? Read these primers!

To run a bot on the English Wikipedia, you must first get it approved. Follow the instructions below to add a request. If you are not familiar with programming, consider asking someone else to run a bot for you.

 Instructions for bot operators

Current requests for approval

Operator: Matrix (talk · contribs · SUL · edit count · logs · page moves · block log · rights log · ANI search)

Time filed: 18:59, Sunday, September 7, 2025 (UTC)

Function overview: Make old AfD discussions dark mode compatible

Automatic, Supervised, or Manual: Automatic

Programming language(s): Pywikibot

Source code available: replace.py

Links to relevant discussions (where appropriate): Think this is non-controversial, but I am free to get consensus if it is required

Edit period(s): one time run

Estimated number of pages affected: Let's assume 40 AfDs per day. We need to correct everything between mid 2024 and mid 2005, which is 19 years. That works out to 19*365*40=~277400 pages 495000 per Cryptic

Namespace(s): Wikipedia

Exclusion compliant (Yes/No):Yes

Function details:

The bot will replace <span style="color:red;">'''Please do not modify it.'''</span> with <span style="color:var(--color-error, red);">'''Please do not modify it.'''</span>, as well as replace background-color: #F3F9FF; with background-color: var(--background-color-progressive-subtle, #F3F9FF);, which will make looking at old AfD archives easier for dark mode users. There are a few variations of the former which I am aware of and will ensure to include.

It will also fix a lot of instances of the "Background color inline style rule exists without a corresponding text color" lint error.

Matrix ping mewhen u reply (t? - c) 18:59, 7 September 2025 (UTC)[reply]

Discussion

I know for a fact that this will be controversial, because fixing linter errors on old AFDs had a few individuals bringing out their pitchforks. Please at the very least get a silent consensus to do this task. Primefac (talk) 19:36, 7 September 2025 (UTC)[reply]

Sure, @Primefac, could you please link an example of "individuals bringing out their pitchforks" (like a discussion somewhere) so I can assess the potential reasons for not doing this kind of task before I try to get consensus from somewhere? —Matrix ping mewhen u reply (t? - c) 20:31, 7 September 2025 (UTC)[reply]
The main one started here and ended up here. The end result was (unsurprisingly) that a vocal minority didn't like the edits but they had consensus to continue. I'm not saying that you don't have consensus for it (the RFC at least gives an indication it's not outright a problem), and one of the primary movers in that dispute has retired, but part of BOTREQ is that we should have some indication that there is a desire for these edits.
To put it another way, I personally see no issue with making useful edits which assist other editors even though the changes are minor/trivial, but with my BAG hat on I would be remiss if I didn't at least mention the pushback when "sub-sub-subpages of AfD talk pages from 2005 that literally no human will ever visit again" are edited. Primefac (talk) 21:29, 7 September 2025 (UTC)[reply]
I don't think those apply to this task. The objections to MalnadachBot wasn't that it was fixing linter errors, or that it was editing old closed AFDs, or even the combination; it was that it was editing the same page many - sometimes very many - times each, fixing one user's signature at a time. —Cryptic 18:57, 8 September 2025 (UTC)[reply]

Can you please provide a link to a couple of example edits on real pages that show both of the changes that this bot task would make? – Jonesey95 (talk) 00:55, 8 September 2025 (UTC)[reply]

I oppose this task. It's not worth running a bot to make 200,000 edits so the small number of people viewing old AfDs in dark mode see some form-letter text they most likely already know slightly better. * Pppery * it has begun... 02:46, 8 September 2025 (UTC)[reply]
@Pppery: do you know how many people use dark mode? Plus we're fixing lint errors along the way. Paving the way for a more accessible Wikipedia should be important. I don't see the cost, what is "not worth" about it? I'm doing it, I'll happily give up some of my time. —Matrix ping mewhen u reply (t? - c) 19:11, 8 September 2025 (UTC)[reply]
The question isn't the number of people who use dark mode, it's the intersection of the number of people who use dark mode and who visit old AfDs, and the latter set is pretty small in the first place. And you surely know already that large bot tasks inevitably cause people to complain as they are happening. * Pppery * it has begun... 19:13, 8 September 2025 (UTC)[reply]
@Pppery: ok let's have this discussion in VPP, I don't want to reply twice. —Matrix ping mewhen u reply (t? - c) 19:14, 8 September 2025 (UTC)[reply]
@Jonesey95: Sure. I made an example at User:Matrix/before-after-dark-mode-afd for more recent AfDs. An example for old AfDs is available at User:Matrix/before-after-dark-mode-afd-2. You won't actually notice the background change in the "after", which is because old AfDs have the "metadata" class, and crude dark mode fixes target this class, see phab:T365330. My bot won't remove this class, since the issue will be fixed by phab:T365330 anyway. —Matrix ping mewhen u reply (t? - c) 18:05, 8 September 2025 (UTC)[reply]
Thanks. I see the differences, but I don't understand the reason for them. The red text, and all other text, shows up just fine for me in both light and dark mode. Maybe I am missing something; if so, please point it out. I am skeptical of page-by-page changes to address the technical issue of bgcolor without a specified color when the page looks fine already. Is there any way to modify one of the existing classes to address this issue instead of going page by page? – Jonesey95 (talk) 18:25, 8 September 2025 (UTC)[reply]
@Jonesey95: the red is slightly different on the latter example; it now has a higher contrast with the surrounding text, and fits in with the new link colours; you can try using the WGAC contrast extension to see. You can scroll a bit at [1] to see that there are indeed linter errors on AfDs (plus a bunch of other stuff).
There is no way to modify one of the existing classes, other than place an !important rule in MediaWiki:Common.css, which creates a new host of problems (one being that we are actively trying to stop using that page). TemplateStyles would also necessitate going page by page to insert the <templatestyles /> tag, which defeats the point. —Matrix ping mewhen u reply (t? - c) 18:35, 8 September 2025 (UTC)[reply]
I know that there are Linter errors flagged; I have fixed literally millions of Linter errors since 2018. I am skeptical of some of them, however, including this background color error, since it sometimes produces false positives. I won't stand in your way if you want to fix them, though. – Jonesey95 (talk) 18:39, 8 September 2025 (UTC)[reply]
@Jonesey95: This is not a false positive; we can look at Wikipedia:Articles for deletion/Toby Lee Marshall and see there is a background color without a foreground color. We have a workaround with the selector "html.skin-theme-clientpref-night .mw-parser-output [style*='background']", but the less we use this janky workaround and actually fix issues, the better. —Matrix ping mewhen u reply (t? - c) 18:47, 8 September 2025 (UTC)[reply]

Is there a reason AfD does not use a template for the that style part? A template would have made fixing this much easier. Not a an admin, but support fixing lint errors. Also, the previous RfC was pretty clear. I don't see how we need a new lint RfC each time. The small number of people watching these old pages can safely put the ignore bot flag on their watchlist. --Gonnym (talk) 15:07, 8 September 2025 (UTC)[reply]

@Gonnym: honestly, I don't know. Probably just people in 2004 decided it should be that way, and everyone went with it. On Commons, templates aren't substituted for i18n reasons, but on enwiki this doesn't apply. Also, if we were to change that, it would probably break Twinkle, Ultraviolet and a bunch of other tools, and no one wants to deal with that headache. —Matrix ping mewhen u reply (t? - c) 18:06, 8 September 2025 (UTC)[reply]

From my 2 searches (1, 2nd one which times out), it seems that this would affect more than just AfD pages. There's a lot of talk pages with old RMs with the same markup. Tenshi! (Talk page) 18:23, 8 September 2025 (UTC)[reply]

I am limiting the scope of this task to AfDs, any other tasks will be discussed at a later date if this is successful. —Matrix ping mewhen u reply (t? - c) 18:27, 8 September 2025 (UTC)[reply]

The number of pages is closer to about 495000, FWIW. —Cryptic 19:38, 8 September 2025 (UTC)[reply]

Thanks @Cryptic: I was pretty sure my estimate would be way off, but don't know how to do SQL. —Matrix ping mewhen u reply (t? - c) 20:27, 8 September 2025 (UTC)[reply]

Bots in a trial period

Operator: L235 (talk · contribs · SUL · edit count · logs · page moves · block log · rights log · ANI search)

Time filed: 22:16, Saturday, September 13, 2025 (UTC)

Function overview: ClerkBot will keep a running log of protection actions that are taken as arbitration enforcement (AE) actions on behalf of the Arbitration Committee (sample). ClerkBot will also notify admins if they take AE protection actions that forget to specify which arbitration case their AE action arose from (sample).

Automatic, Supervised, or Manual: Automatic

Programming language(s): Python

Source code available: GitHub repo

Links to relevant discussions (where appropriate): Wikipedia:Arbitration/Requests/Motions#CTOP/AE_page_protection_logging (current permalink)

Edit period(s): Daily

Estimated number of pages affected: Approximately 1-10 per day (the log page, plus one user talk page per admin who has neglected to specify the WP:CTOP under which the AE action was taken). For a rough upper bound, 73 admins have taken at least one AE protection action this year.

Namespace(s): Wikipedia and User talk

Exclusion compliant (Yes/No): No

Function details: This bot maintains the table currently present at User:ClerkBot/AE protection report (which may move to Wikipedia:Arbitration enforcement log/Protections if the currently pending ArbCom motion passes). Specifically, the bot examines every protection action taken since its last run (specifically, new protections and modified protections, not unprotections). If it appears based on the edit summary to be an Arbitration Enforcement (AE) action, it logs the action to the table.

It also attempts to determine the topic code that applies to the action based on the edit summary. If the protection edit summary links to the appropriate contentious topic page as required by the pending motion, or one of several other heuristics allows the bot to detect the appropriate topic code, then it automatically logs the topic code. If not, then the bot will notify the protecting admin of the protection action(s) that require manual labeling (sample). The notifications will only become active if the pending motion, which requires that the protection action link to the applicable contentious topic page (e.g., WP:CT/BLP), passes.

If the motion passes, the functionality of the bot will be mandated by ArbCom's procedures (it requires that protection actions will be automatically logged at Wikipedia:Arbitration enforcement log/Protections).

The bot is not exclusion compliant, as the notifications should not be subject to opt-out because they relate to recent administrator actions that will not have complied with ArbCom's procedure relating to the appropriate way to log protection actions.

Discussion

  • For BAG's information, I am currently running this as an exempt bot in the bot's userspace, with the table living at User:ClerkBot/AE protection report and the notificatons going to User:ClerkBot/AE protection report/notifications dryrun. If the motion passes, the bot will need to update Wikipedia:Arbitration enforcement log/Protections and the notifications will go live to admins. Best, KevinL (aka L235 · t · c) 22:16, 13 September 2025 (UTC)[reply]
  • Isn't this a bit premature to file a BRFA before the motion has passed or being anywhere near a majority? Tenshi! (Talk page) 16:14, 14 September 2025 (UTC)[reply]
    I don't think so, for two reasons.
    1. Ideally, the bot would be fully ready to go (approved) by the time the motion passes, because when the motion passes, administrators will no longer need to log any protections to WP:AELOG, so it would be ideal to avoid a gap in coverage. Approving a bot takes time, so I wanted to get the process started now.
    2. Even if the motion doesn't pass, the bot could still operate the Wikipedia:Arbitration enforcement log/Protections log part (not the notifications part) under our general remit as arbitration clerks. This could be valuable to, for example, note when AE protections aren't being logged as currently required, which based on a glance seems to happen quite frequently. Running the bot as an EXEMPTBOT in the bot's userspace is a bit awkward for this purpose.
    The bot is functional and operational (though obviously its functionality might continue to get fleshed out by e.g. breaking out actions onto different pages by year or topic code), so I don't think a BRFA is hampered by a difficulty of testing the bot either. Best, KevinL (aka L235 · t · c) 21:21, 14 September 2025 (UTC)[reply]
    Thanks for replying. How would the bot handle cases where Protection Helper Bot reprotects a page? Tenshi! (Talk page) 21:47, 14 September 2025 (UTC)[reply]
    Currently, Protection Helper Bot is treated as any other admin taking any normal protection action. This means that, because it restates the original protection reason, if it is reinstating an AE action, it will be tagged in the log. (It shows up 17 times in the log so far for 2025.)
    This works great so long as the original protection reason includes the topic page link or topic code in the block summary. However, if the summary is lacking, then the current implementation would notify Protection Helper Bot. This is non-ideal functionality. I think the options are:
  1. Suppress all notifications for users that have the bot flag.
  2. Do #1, and also notify the admins on behalf of whom the bot is acting.
I will implement #1 today, and consider whether #2 is worth doing. I am leaning towards no on #2. Best, KevinL (aka L235 · t · c) 19:38, 15 September 2025 (UTC)[reply]
Now done. KevinL (aka L235 · t · c) 21:55, 18 September 2025 (UTC)[reply]

In my capacity as a clerk, noting that the motion has carried.

In my capacity as an interested editor and admin, it has been two weeks since this was opened. Tagging with {{BAG assistance needed}}—and thank you for all the work you BAGers do! HouseBlaster (talk • he/they) 21:29, 25 September 2025 (UTC)[reply]

Approved for trial (30 days). Please provide a link to the relevant contributions and/or diffs when the trial is complete.DreamRimmer 02:12, 26 September 2025 (UTC)[reply]

Operator: Scaledish (talk · contribs · SUL · edit count · logs · page moves · block log · rights log · ANI search)

Time filed: 12:58, Tuesday, September 16, 2025 (UTC)

Automatic, Supervised, or Manual: automatic

Programming language(s): Python

Source code available: GitHub

Function overview: Update US settlement census data

Links to relevant discussions (where appropriate): Request 1 · Request 2

Edit period(s): Yearly; new estimates released yearly

Estimated number of pages affected: Unknown, likely low 10 thousands

Exclusion compliant (Yes/No): Yes

Already has a bot flag (Yes/No): No

Function details:

  • Doesn't add to a template if it sees there are multiple of it on the same page
  • Doesn't overwrite info if it is same age or newer

Discussion

Supervised Test 1 & Supervised Test 2 Scaledish! Talkish? Statish. 13:06, 16 September 2025 (UTC)[reply]

Approved for trial (50 edits). Please provide a link to the relevant contributions and/or diffs when the trial is complete. Since this is your first bot task, I am treating this as a one-off task. For future years, a new BRFA will be needed, and then we can see if it can be approved to run annually. – DreamRimmer 13:58, 24 September 2025 (UTC)[reply]

Operator: GalStar (talk · contribs · SUL · edit count · logs · page moves · block log · rights log · ANI search)

Time filed: 21:00, Wednesday, July 2, 2025 (UTC)

Function overview:

Automatic, Supervised, or Manual: Automatic

Programming language(s): Rust/Python

Source code available: Uses mwbot

Links to relevant discussions (where appropriate): Wikipedia:Bot_requests#Redirects_related_to_those_nominated_at_RfD and Wikipedia talk:Redirects for discussion#Avoided double redirects of nominated redirects

Edit period(s): Continous

Page: Wikipedia:Redirects_for_discussion

Exclusion compliant (Yes/No): Yes (but N/A)

Adminbot (Yes/No): No

Function details:

  • Look at each RFD on each RFD Page
  • Determines whether there are any other redirects, in any namespace, that meet one or more of the following criteria:
    • Are marked as an avoided-double redirect of a nominated redirect
    • Are redirects to the nominated redirect
    • Redirect to the same target as the nominated redirect and differ only in the presence or absence of non-alphanumeric characters, and/or differ only in case
  • If the bot finds any redirects that match and which are not currently nominated at RfD, then it should post a message in the discussion (final details about the message are TBD, but the bot request outline the general point). The bot limits the length of it's message, ensuring that the RfD is not over-cluttered.

Discussion

Thanks for working on this GalStar, but it's not clear whether it is checking for redirects that differ only in the presence/absence of diacritics? Thryduulf (talk) 23:41, 2 July 2025 (UTC)[reply]

Diacritics fall under non-alphanumeric characters. GalStar (talk) (contribs) 16:48, 3 July 2025 (UTC)[reply]

Approved for trial (30 days). Please provide a link to the relevant contributions and/or diffs when the trial is complete.DreamRimmer 06:35, 8 July 2025 (UTC)[reply]

{{Operator assistance needed}} Anything on the trial? Tenshi! (Talk page) 18:54, 4 August 2025 (UTC)[reply]

Am on vacation, expect updates in a few days. GalStar (talk) (contribs) 15:48, 11 August 2025 (UTC)[reply]
 On hold until RfD accepts my proposal to use a new templating system, one that is more friendly to bots. — Preceding unsigned comment added by GalStar (talkcontribs) 05:57, 25 August 2025 (UTC)[reply]
 On hold. For AnomieBot. Tenshi! (Talk page) 15:12, 25 August 2025 (UTC)[reply]
@GalStar: Is there a reason why you can't just use regex to find each nomination and use the information from that? For example, TenshiBot's unlisted copyright problems report looks for copyright problems in the subpages which use substed {{article-cv}} (regex: [2], although the script knows the names of the pages already, I imagine it wouldn't be too hard to get that from RfD subpages). Tenshi! (Talk page) 20:57, 6 September 2025 (UTC)[reply]
Thanks for pointing this out. I was trying to do this the "right" way with wikicode parsing, but I'll take a look at regex. GalStar (talk) (contribs) 04:13, 8 September 2025 (UTC)[reply]
A user has requested the attention of the operator. Once the operator has seen this message and replied, please deactivate this tag. (user notified) Any update? – DreamRimmer 09:17, 29 September 2025 (UTC)[reply]

Bots that have completed the trial period

Operator: Vanderwaalforces (talk · contribs · SUL · edit count · logs · page moves · block log · rights log · ANI search)

Time filed: 18:37, Sunday, September 7, 2025 (UTC)

Automatic, Supervised, or Manual: automatic

Programming language(s): Python

Source code available: https://en.wikipedia.org/wiki/User:DreamRimmer/rfdsubpage.py

Function overview: For Wikipedia:Redirects for discussion, creates the subpages for discussion for each day at Wikipedia:Redirects for discussion/Log/Year Month Day, then transclude the subpage at the main RfD page. It will also create discussion subpages for the next 4 days.

Links to relevant discussions (where appropriate): Wikipedia:Bots/Noticeboard#Task_takeover

Edit period(s): Daily

Estimated number of pages affected: Subpages, RfD page

Exclusion compliant (Yes/No): No

Already has a bot flag (Yes/No): Yes

Function details: Basically what's explained above.

Discussion

Approved for trial (7 days). Please provide a link to the relevant contributions and/or diffs when the trial is complete. Primefac (talk) 19:00, 7 September 2025 (UTC)[reply]

{{Operator assistance needed}} Anything on the trial? Tenshi! (Talk page) 13:49, 15 September 2025 (UTC)[reply]

VWF bot made the following edits relating to this task, it also appears DumbBot returned to activity, which means there's nothing much for VWF bot to do, including creating log subpages. VWF bot tried creating a subpage for September 14 but the subpage got no parameter and no date string. Program was later fixed but didn't get a chance to create more subpages because editors created them far upfront already (+DumbBot being back).
Vanderwaalforces (talk) 15:39, 15 September 2025 (UTC)[reply]
Trial complete. Vanderwaalforces (talk) 15:48, 15 September 2025 (UTC)[reply]
Update: Confirming that the next time VWF bot got the chance to create a new RfD log page, it was successful at Wikipedia:Redirects for discussion/Log/2025 September 26. Vanderwaalforces (talk) 12:09, 22 September 2025 (UTC)[reply]
@Vanderwaalforces and Tizio: What's the status on this? Technically, the bot seems to work fine, but if DumbBot is back, it the takeover still needed? Headbomb {t · c · p · b} 17:34, 27 September 2025 (UTC)[reply]
@Headbomb I guess it is left for BAG to decide if this bot should be running simultaneously with DumbBOT or not; just as you said, everything is working fine. Vanderwaalforces (talk) 09:38, 30 September 2025 (UTC)[reply]
@Vanderwaalforces and Tizio: I'd be enclined to decline the BRFA simply because of continuity reasons and not have two bots deal with the same task, sending people to troubleshoot issues with two different bot/bot ops, etc...
However, if DumbBOT goes kaput again, reopen this and it can be speedily approved. Fair? Tizio, any comments before I officialize this? Headbomb {t · c · p · b} 11:59, 1 October 2025 (UTC)[reply]

Operator: Dušan Kreheľ (talk · contribs · SUL · edit count · logs · page moves · block log · rights log · ANI search)

Time filed: 18:09, Sunday, August 17, 2025 (UTC)

Function overview: Edit the page about Slovak places.

Automatic, Supervised, or Manual: Semi-manual

Programming language(s): Wikimate, own code

Source code available: private

Links to relevant discussions (where appropriate):

Edit period(s): Occasional

Estimated number of pages affected: Max. 3000

Namespace(s): Mainspace

Exclusion compliant: No (The range of pages usually does not have such a need.)

Function details:

  • Task(s) (now):
    • Add population table (see top)
    • Update section Geography:
      • The goal is to avoid quoting from the krehel.sk domain (an older solution that is a relic of the past).
      • Rewrite with reference without source krehel.sk (partial advertising per user now).

The user also did something on other Wikipedias about Slovak places.

Discussion


Approved requests

Bots that have been approved for operations after a successful BRFA will be listed here for informational purposes. No other approval action is required for these bots. Recently approved requests can be found here (edit), while old requests can be found in the archives.


Denied requests

Bots that have been denied for operations will be listed here for informational purposes for at least 7 days before being archived. No other action is required for these bots. Older requests can be found in the Archive.

Expired/withdrawn requests

These requests have either expired, as information required by the operator was not provided, or been withdrawn. These tasks are not authorized to run, but such lack of authorization does not necessarily follow from a finding as to merit. A bot that, having been approved for testing, was not tested by an editor, or one for which the results of testing were not posted, for example, would appear here. Bot requests should not be placed here if there is an active discussion ongoing above. Operators whose requests have expired may reactivate their requests at any time. The following list shows recent requests (if any) that have expired, listed here for informational purposes for at least 7 days before being archived. Older requests can be found in the respective archives: Expired, Withdrawn.