Jump to content

Wikipedia:Edit filter/Requested

From Wikipedia, the free encyclopedia
    Requested edit filters

    This page can be used to request edit filters, or changes to existing filters. Edit filters are primarily used to address common patterns of harmful editing.

    Private filters should not be discussed in detail. If you wish to discuss creating an LTA filter, or changing an existing one, please instead email details to wikipedia-en-editfilters@lists.wikimedia.org.

    Otherwise, please add a new section at the bottom using the following format:

    == Brief description of filter ==
    *'''Task''': What is the filter supposed to do? To what pages and editors does it apply?
    *'''Reason''': Why is the filter needed?
    *'''Diffs''': Diffs of sample edits/cases. If the diffs are revdelled, consider emailing their contents to the mailing list.
    ~~~~
    

    Please note the following:

    • Edit filters are used primarily to prevent abuse. Contributors are not expected to have read all 200+ policies, guidelines and style pages before editing. Trivial formatting mistakes and edits that at first glance look fine but go against some obscure style guideline or arbitration ruling are not suitable candidates for an edit filter.
    • Filters are applied to all edits on all pages. Problematic changes that apply to a single page are likely not suitable for an edit filter. Page protection may be more appropriate in such cases.
    • Non-essential tasks or those that require access to complex criteria, especially information that the filter does not have access to, may be more appropriate for a bot task or external software.
    • To prevent the creation of pages with certain names, the title blacklist is usually a better way to handle the problem - see MediaWiki talk:Titleblacklist for details.
    • To prevent the addition of problematic external links, please make your request at the spam blacklist.
    • To prevent the registration of accounts with certain names, please make your request at the global title blacklist.
    • To prevent the registration of accounts with certain email addresses, please make your request at the email blacklist.


    Keyboard mashing filter?

    [edit]
    • Task: What is the filter supposed to do? To what pages and editors does it apply?

    The filter is intended to catch "keyboard spam" edits (things along the line of "ajksljhgfhlasjaewzxcvo"). The way I believe this could be implemented is with a filter that catches strings of length 5 that contain only lowercase consonants (y is a vowel in this case). For example, in the example given above, the substring "jklsj" would be caught and flagged. Should only apply for main space edits and only for IPs to avoid usernames triggering the filter. Exception needed for links. I don't know what regex has in its capabilities so I don't know if this is possible. I'm worried about edits on other language scripts messing it up.

    • Reason: Why is the filter needed?

    This is a relatively common pattern of vandalism; the diffs below were collected over a span of a single, non cherry-picked hour.

    • Diffs: Diffs of sample edits/cases. If the diffs are revdelled, consider emailing their contents to the mailing list

    [1][2][3]

    Wildfireupdateman :) (talk) 17:50, 13 January 2025 (UTC)[reply]

    Have you given some thought to compounds such as Knightsbridge and Catchphrase, names like Goldschmidt and Norbert Pfretzschner, technical articles like HTML color names (white is #FFFFFF; see also hex for color names Blanched almond, Gainsboro, Lemon chiffon, Navajo white, Pale turquoise, and Snow); the parenthetical phrase in the first line of The Adventures of Mr. Nicholas Wisdom, and non-English content (notably German compounds) such as Handschriftencensus (6), Selbstschutz (7), and Rechtschreibreform (7). But I believe these examples are rare, and that there are no 8-letter examples, so you can probably whitelist all of these. There might be a portion of an article that covers keyboard spam with examples, and you might have to whitelist that, too. Mathglot (talk) 10:31, 14 January 2025 (UTC)[reply]
    I didn't think of those. It appears that in addition to the filter below, there are way too many exceptions to work properly. I'm going to retract this request but I don't know how; can someone help out? Wildfireupdateman :) (talk) 20:16, 14 January 2025 (UTC)[reply]
    There IS a filter for this:
    It works almost exactly as suggested as well, even the exception for links, with the difference being it looks for 9 characters, not 5.
    At any rate, perhaps the filter could be improved - for example, it didn't catch the second example because the edit edited a line starting with a pipe (|), why do we exclude edits that do that?
    That change was done here in 2012, which changed it from excluding edits that left a line like |- or |. in the article to ones that edit any line starting with a pipe or an exclamation mark.
    The filter did not catch examples 1 and 3 because of the aforementioned vowels before it reached 9 'repeating' characters. – 2804:F1...87:8192 (::/32) (talk) 15:32, 14 January 2025 (UTC)[reply]
    Alternate idea: since keyboard spam usually stays on the same keyboard row, could a filter that checks for repeated characters in the same row (usually the home row) be a thing? Chaotic Enby (talk · contribs) 17:50, 27 January 2025 (UTC)[reply]
    If that is the case, the length trigger would probably be ~7-8 or so, as there are sufficiently few words(typewriter, rupturewort) that would need to be implemented as exceptions. Wildfireupdateman :) (talk) 17:54, 27 January 2025 (UTC)[reply]
    Yep, that would be a more reasonable length trigger – 5 is too short, but 8 would likely still match most keymashes. Chaotic Enby (talk · contribs) 17:55, 27 January 2025 (UTC)[reply]
    I'm working on a major update to this filter. Daniel Quinlan (talk) 11:35, 28 February 2025 (UTC)[reply]
    [edit]
    • Task: Flag links generated by ChatGPT and other LLMs, through the ?utm_source parameter
    • Reason: Additions of LLM-generated content can contain citations that do not actually support the text.
    • Diffs: Special:Diff/1271820600 (mentioned in the linked discussion), this search brings up a lot more including in high-profile articles

    Following a discussion at Wikipedia talk:Large language models#LLM-generated content, a suggestion was brought up, namely an edit filter detecting ?utm_source=chatgpt.com in links. That parameter is appended after an URL when copied from ChatGPT (for example, https://en.wikipedia.org/wiki/Wikipedia:Edit_filter/Requested?utm_source=chatgpt.com points to the same place as https://en.wikipedia.org/wiki/Wikipedia:Edit_filter/Requested, but indicates the source of the link as being ChatGPT).

    I suggested the following simple filter:

    page_namespace == 0 &
    added_lines rlike "utm_source=chatgpt\.com"
    

    Another user (@Z. Patterson) proposed a more advanced filter that would detect other LLMs in URLs, but exclude some situations to avoid false positives, based on 1045 (hist · log):

    equals_to_any(page_namespace, 0, 10, 118) & 
    (
        llmurl := "\b(chatgpt|copilot\.microsoft|gemini\.google|groq|)\.\w{2,3}\b";
        added_lines irlike (llmurl) &
        !(removed_lines irlike (llmurl)) &
        !(summary irlike  "^(?:revert|restore|rv|undid)|AFCH|speedy deletion|reFill") &
        !(added_lines irlike "\{\{(db[\-\|]|delete\||sd\||speedy deletion|(subst:)?copyvio|copypaste|close paraphrasing)|\.pdf")
    )
    

    Chaotic Enby (talk · contribs) 20:06, 28 February 2025 (UTC)[reply]

    Pinging users who participated in the previous discussion: @Alaexis @Phlsph7 @Photos of Japan @PPelberg (WMF) @1AmNobody24 @Chipmunkdavis Chaotic Enby (talk · contribs) 20:08, 28 February 2025 (UTC)[reply]
    Sounds like a sensible idea. To be clear, are you proposing to just tag these edits, or to eventually warn as well? I think it'd be a good idea to warn, as similar filters for citations do. There is the risk of false positives for editors who research via LLMs but do check the source content, so a good evaluation period would be useful. I think we'd also want to put in an extendedconfirmed exemption like in filter 1057 (hist · log). FozzieHey (talk) 22:13, 28 February 2025 (UTC)[reply]
    I'd agree that warning would be helpful – I don't think it hurts to give a reminder to editors who do check source content that they're on the right track. Regarding an extended-confirmed exemption, I don't think it should be present: some additions like this one do come from extended-confirmed users, and it could be useful to remind them to check the generated sources. Since it is just a visual warning and logging, rather than any kind of action being taken, I would say it's appropriate to have it show up for all users. Chaotic Enby (talk · contribs) 22:29, 28 February 2025 (UTC)[reply]
    I guess it's whether we treat the warning as a "warning, you probably shouldn't do this" or a gentle reminder like you say, which would also influence how we draft the warning template. Arguably citing Wikipedia is worse (and I can't think of any valid reasons as to why you would need to, outside of some very niche articles about Wikipedia), and an extendedconfirmed exemption is present there. FozzieHey (talk) 22:40, 28 February 2025 (UTC)[reply]
    I agree that we should warn users, as we do for self-published sources. It will give them time to think about what they are entering and if it is legitimate. It should deter most instances of citing LLMs. Z. Patterson (talk) 04:36, 1 March 2025 (UTC)[reply]
    The filter idea seems good, whether it should be attached to a warning or other action is a later discussion. I'm not sure how much analysis has been done. CMD (talk) 07:53, 1 March 2025 (UTC)[reply]
    This sounds like a sensible filter to start log-only for testing, see how it goes, and then perhaps upgrade to tagging if we don't have too many false positives. However, I just tested the filter suggested by Z. Patterson and it is matching any edit which adds a URL - could you double check the regex? Sam Walton (talk) 08:25, 1 March 2025 (UTC)[reply]
    I'm guessing it might be because the (chatgpt|copilot\.microsoft|gemini\.google|groq|) part ends with |) which includes the empty string as an option, removing that pipe and changing to (chatgpt|copilot\.microsoft|gemini\.google|groq) instead might fix it. Chaotic Enby (talk · contribs) 12:31, 1 March 2025 (UTC)[reply]
    @Samwalton9 and Chaotic Enby: Yes, I had intended to include only URLs that have LLMs. I also suggest adding claude\.ai to the filter so it catches instances of citing Claude. Z. Patterson (talk) 12:49, 1 March 2025 (UTC)[reply]
    {{tq|sounds like a sensible filter to start log-only for testing, see how it goes, and then perhaps upgrade to tagging if we don't have too many false positives.}}
    +1, @Samwalton9!
    Thinking a bit ahead about the question @FozzieHey posed above, is anyone here holding an idea in mind for when/how people might be inserting links of this sort? E.g. might you imagine them to be pasting these links into Citoid? Might you imagine them to be pasting these links directly into articles? Something else?
    I ask the above with two thoughts in mind:
    1. Might the kind of feedback the filter y'all are shaping here is intended to deliver be well suited for an Edit Check?
    2. When might people attempting to insert links be open to receiving feedback about them?
    This all of course assumes the filter ends up demonstrating a low enough false positive rate for us (collectively) consider it reliable.
    And hey, thank you for inviting me into this conversation, @Chaotic Enby. PPelberg (WMF) (talk) 22:31, 3 March 2025 (UTC)[reply]
    Sounds like a good idea. In the regular expression you're using, should it be "groq" or "grok"? Or both? Alaexis¿question? 18:25, 1 March 2025 (UTC)[reply]
    Groq appears to also exist, but I think Grok was intended. Chaotic Enby (talk · contribs) 18:45, 1 March 2025 (UTC)[reply]
    @Alaexis and Chaotic Enby: I intended for both Groq and Grok to be included. Originally, I thought about Groq, but I would also like to include Grok. Z. Patterson (talk) 19:22, 1 March 2025 (UTC)[reply]
    Trialling log-only at Special:AbuseFilter/1346. Further refinement welcome, I just used the suggestion above. Sam Walton (talk) 22:00, 1 March 2025 (UTC)[reply]
    Thanks! Looking at the first two hits:
    • Special:Diff/1278344988 does make use of a link with the utm_source=chatgpt.com parameter. It does seem to be consistent with the claim (a sports team being relegated), although not stating it explicitly (the source only gives tournament results). I might be missing something, as the whole website is in Icelandic.
    • Special:Diff/1278344163 also uses such a link. The claim it is attached to is very promotional, and, while the source does support a small bit of it, it doesn't even make sense for the rest of the claim, which discusses events taking place since the source's publication.
    Chaotic Enby (talk · contribs) 22:24, 1 March 2025 (UTC)[reply]
    Another random comment: Putting the content through gptzero.me suggests that the second hit is likely AI-generated and the first isn't. (As an aside, I've thought about making a tool that automatically scans all of Wikipedia (or maybe even most Wikimedia projects) to check for potential AI-generated content. However, there is a lot of text on Wikipedia, and not a lot of AI detection tools that can handle such a volume of content, so I'm not sure whether this idea is actually doable or not.) Duckmather (talk) 01:34, 2 March 2025 (UTC)[reply]
    A caution with that is that apparently a lot of LLMs used Wikipedia articles as part of their training, so articles prior to the date the LLM was trained will turn up a lot of false positives when fed Wikipedia articles, or so I have read in discussions, at least. - The Bushranger One ping only 05:59, 4 March 2025 (UTC)[reply]
    @Chaotic Enby the filter seems to be working well with just over 40 hits so far. How useful are you (and anyone else here) finding it? Would tagging edits be helpful? Sam Walton (talk) 08:37, 4 March 2025 (UTC)[reply]
    Looking at a few edits, the filter is definitely working well, and catches a lot of questionable edits. Tagging could be helpful, although I believe warning to remind the editors to verify their sources might be more productive than having someone else double-check behind. Also noting that a lot of the edits are to drafts, which is not surprising, but users do have a lot more latitude there. Chaotic Enby (talk · contribs) 12:35, 4 March 2025 (UTC)[reply]
    Noting here that the filter flags edits from ALL users, including bots, so we might want to exclude extended confirmed users, sysops and bots per WP:EF/TP. Codename Noreste (talk) 21:07, 4 March 2025 (UTC)[reply]
    Not sure if we should exclude extended-confirmed users, per my comments earlier. Regarding bots, I'm not opposed to excluding them, as I don't see in which cases they would add LLM-generated URLs to begin with. Chaotic Enby (talk · contribs) 21:24, 4 March 2025 (UTC)[reply]
    I was curious, so I looked into what bit of chatgpt actually generates a link with that kind of URL. Notably, asking chatgpt to write an article for you doesn't produce links like that (for me). What does create them is their web-search tool -- which writes a summary of the search topic, but also includes a list of links and inline-citations. Said summary with citations isn't in a particularly friendly format for pasting directly into wikipedia, though someone who was willing to go through and convert all the external-links into citations could probably make it work.
    As such, I suspect that this filter is mostly catching the LLM-equivalent of people who googled for citations -- it’s just that google search doesn’t stick a recognizable URL parameter onto all the links you follow, so we can't detect those.
    It's probably a good warning-sign: someone who uses one of these links is at higher risk of having also copied in whatever chatgpt wrote about the topic, or of having trusted chatgpt about it without reading the source themselves. That said, it's not an actually dispositive sign of malfeasance. Escalating to a "maybe double-check your sources, we know they came from a LLM" warning sounds reasonable enough, but outright blocking such edits feels a step too far. DLynch (WMF) (talk) 03:07, 5 March 2025 (UTC)[reply]
    Thanks for the investigation! Have you seen phab:T387903? I'm planning to check other LLMs to see if they have similar behaviors. Chaotic Enby (talk · contribs) 07:16, 5 March 2025 (UTC)[reply]

    Date format changes

    [edit]
    • Task: Could we have a filter to log/tag (not disallow/warn) changes to date formats? We already have a filter in place to note changes to birth dates and death dates. But it isn't specifically designed to detect changes to the format of dates, which is what I'd like the ability to track.
    • Reason: An LTA has been on a crusade for nearly two decades to change all the dates to his preferred format. See Wikipedia:Sockpuppet investigations/Kipperfield as well as this ANI thread. This user has been socking since at least 2008 and there is no sign of it stopping. Some date changes may be are helpful, but Kipperfield has been changing dates indiscriminately and en-masse without regard to policy.
    • Diffs: [4][5]

    Someone who's wrong on the internet (talk) 16:35, 14 March 2025 (UTC)[reply]

    Since this is an LTA, it is better to continue on the mailing list. – PharyngealImplosive7 (talk) 16:38, 14 March 2025 (UTC)[reply]
    Normally it would be. But in this case, there is no need for the filter to be private as Kipperfield has never made efforts to change his behavior to avoid detection. Someone who's wrong on the internet (talk) 18:16, 14 March 2025 (UTC)[reply]
    In fact, making the filter private would hamper its effectiveness as non-administrators would not be able to examine the filter log. Someone who's wrong on the internet (talk) 18:28, 14 March 2025 (UTC)[reply]
    I'm pretty sure I've seen vandalism like this with no connection to this LTA. I've wondered before, if adding |df=y to articles that use {{Use mdy dates}} should be on one of the vandalism filters. Nobody (talk) 14:04, 17 March 2025 (UTC)[reply]
    It probably should be. Someone who's wrong on the internet (talk) 16:00, 17 March 2025 (UTC)[reply]
    Is any action going to be taken? Someone who's wrong on the internet (talk) 14:28, 24 March 2025 (UTC)[reply]
    It sometimes takes a while for EFMs to get here. @Daniel Quinlan do you have time to take a look at this? Nobody (talk) 14:32, 24 March 2025 (UTC)[reply]
    I'll try to make some rough code for this filter:
    !("confirmed" in user_groups) &
    page_namespace == 0 &
    added_lines contains "\|df\s*=y\s*" &
    !(removed_lines contains "\|df\s*=y\s*") &
    "{{[Uu]se\smdy\sdates(?:\|.*)?}}" in new_html
    
    I'm still thinking about how to check whether a user changes the date format without the template, so I have not included that here. – PharyngealImplosive7 (talk) 15:10, 24 March 2025 (UTC)[reply]
    I'm going to take a look at this. It'll take me some time to analyze past accounts and cover most of the edits. @Someone who's wrong on the internet: Other than changing to the "day first" format and what looks like some repetitive edit summaries, are there any other common patterns? I see a lot of BLP articles, but it's not limited to that. Also, you might consider removing the username and links from your comments above. If you have questions or concerns about that last request, please feel free to email me or the list. Thanks. Daniel Quinlan (talk) 19:02, 24 March 2025 (UTC)[reply]
    No other identifying patterns. Just indiscriminate date changes. There is no need to design a filter specifically for this LTA. I just want a log of all mdy-to-dmy (or vice versa) changes. Someone who's wrong on the internet (talk) 19:56, 24 March 2025 (UTC)[reply]
    Then I guess you could just use something like my filter idea above, but slightly expanded:
    !("confirmed" in user_groups) &
    page_namespace == 0 &
    (
    added_lines contains "\|df\s*=y(?:es)\s*" &
    !(removed_lines contains "\|df\s*=y(?:es)\s*") &
    "{{[Uu]se\smdy\sdates(?:\|.*)?}}" in new_html
    ) ^
    (
    added_lines contains "\|mf\s*=y(?:es)\s*" &
    !(removed_lines contains "\|mf\s*=y(?:es)\s*") &
    "{{[Uu]se\sdmy\sdates(?:\|.*)?}}" in new_html
    )
    
    PharyngealImplosive7 (talk) 20:04, 24 March 2025 (UTC)[reply]
    The filter is going to be pretty specific although the tag won't sound that specific (maybe "new user modifying date format" after several weeks of testing). I'll let you know the tag when the testing phase is done. A generalized filter did not make sense based on my analysis and testing. If any further discussion is needed, please use the mailing list. I'd still appreciate that edit before this is archived. Thanks. Daniel Quinlan (talk) 04:51, 25 March 2025 (UTC)[reply]

    AfD closures by anonymous users

    [edit]

    Someone who's wrong on the internet (talk) 14:58, 17 March 2025 (UTC)[reply]

    user_type in [ip, temp]
    & page_namespace == 4
    & page_title contains "Articles for deletion"
    & added_lines contains "'''Please do not modify it.'''</span>"
    & !(removed_lines contains "'''Please do not modify it.'''</span>")
    I'm using "Please do not modify it" as it's the most consistent part of closure statements, but the style of the div could also be used, assuming there is no hatting template that generates the same style. That last line might be a bit unnecessary as IPs messing with closed discussions isn't something we'd want either, but that's probably another issue. I've futureproofed it by also including temporary accounts. Chaotic Enby (talk · contribs) 15:07, 17 March 2025 (UTC)[reply]
    Is it possible to look for substituded template use? Since it looks like they properly used {{subst:Afd top}}. Nobody (talk) 15:12, 17 March 2025 (UTC)[reply]
    That's the thing, they didn't really use it properly, their close reads The following discussion is an closed debate instead of The following discussion is an archived debate. Chaotic Enby (talk · contribs) 15:18, 17 March 2025 (UTC)[reply]
    Noting that user_type in [ip, temp] should be replaced with !("autoconfirmed" in user_groups). – PharyngealImplosive7 (talk) 16:45, 17 March 2025 (UTC)[reply]
    Why should it be? I thought IPs weren't allowed to close discussions, not non-autoconfirmed users. Chaotic Enby (talk · contribs) 17:02, 17 March 2025 (UTC)[reply]
    Because in your current set-up, this issue may arise: Expressions like page_namespace in [14, 15] may not work as expected. This one will evaluate to true also if page_namespace is 1, 4, or 5. However, I agree my set-up also excludes new users. – PharyngealImplosive7 (talk) 19:53, 17 March 2025 (UTC)[reply]
    I don't think that will be an issue, as the five values user_type can have are ip, temp, named, external, and unknown. None of them are substrings of ip or temp, so the code should work as expected. Chaotic Enby (talk · contribs) 20:58, 17 March 2025 (UTC)[reply]
    FYI, further discussions of this should continue on the edit filter mailing list, as this is looks like an LTA. Codename Noreste (talk) 21:38, 17 March 2025 (UTC)[reply]
    It doesn't matter that this is an LTA. IPs are prohibited from closing AfDs regardless. Someone who's wrong on the internet (talk) 19:49, 18 March 2025 (UTC)[reply]
    Seconded. If an IP wants to start closing AfDs, they need to create an account, period. That is set in stone. BD2412 T 20:27, 18 March 2025 (UTC)[reply]
    Minor change here, but the double ampersands should be single ampersands for the and operators. I'm not sure if the abuse filter can tell the difference but it's better to be safe than sorry. – PharyngealImplosive7 (talk) 02:10, 19 March 2025 (UTC)[reply]
    How soon will this filter be activated? Someone who's wrong on the internet (talk) 00:46, 23 March 2025 (UTC)[reply]

    IP editing of triple quoted text

    [edit]
    • Task: What is the filter supposed to do? To what pages and editors does it apply?

    The filter is meant to prevent vandalism of what is typically the name of the article in text.

    • Reason: Why is the filter needed?

    I see this once in a while in vandalism by IPs.

    • Diffs: Diffs of sample edits/cases. If the diffs are revdelled, consider emailing their contents to the mailing list.

    https://en.wikipedia.org/w/index.php?diff=1281666529 The way this filter would work is by detecting text encompassed in triple quotes at the start of the article (although probably after infoboxes) and doing something in that case. Wildfireupdateman :) (talk) 20:56, 22 March 2025 (UTC)[reply]

    I'm thinking about edge cases such as multiple bolded names being present in the title (like Cougar, or for a less extreme case most species with both a scientific name and a common name). Also, are you planning to just log or tag them? Chaotic Enby (talk · contribs) 21:17, 22 March 2025 (UTC)[reply]
    I think maybe we could test whether in the old wikitext, the bolded text that was changed is the same as the page title. I think the end goal should be tag/warn/captcha. – PharyngealImplosive7 (talk) 23:12, 22 March 2025 (UTC)[reply]
    Some filter code could include:
    page_namespace == 0 &
    !("confirmed" in user_groups) &
    edit_delta < 5 &
    (
        stringy := "(?s)^.*?'''.+?'''";
        added_lines rlike stringy &
        removed_lines rlike stringy
    )
    PharyngealImplosive7 (talk) 23:32, 22 March 2025 (UTC)[reply]
    Probably also should add !(added_lines rlike "'''" + page_title + "'''"), otherwise it might flag other changes to the same paragraph. Chaotic Enby (talk · contribs) 23:42, 22 March 2025 (UTC)[reply]
    Good catch. I will add it now. – PharyngealImplosive7 (talk) 23:44, 22 March 2025 (UTC)[reply]
    The page_title filter would not work for the example that was linked in the request. Many pages are like that. You'd probably want to match the first bolded term in the removed lines and check if it's still in the added lines. Ponor (talk) 23:55, 22 March 2025 (UTC)[reply]
    If we disabled the global flag, we probably could make the filter only match the first bolded text. I'll implement that in the sample above. I just realized that you can't modify the global flag because it is controlled by the engine's settings, so I modified the pattern slightly. – PharyngealImplosive7 (talk) 00:16, 23 March 2025 (UTC)[reply]
    I have a filter like that on another wiki and it works great, probably one of the best filters when it comes to casual vandals. It's set to prevent saving unless an edit summary (10ish characters) is given: most vandals don't bother to read the notice and eventually quit. Not all cases need to be covered, checking whether ^'''+(...) are the same in removed and added lines is sufficient. Ponor (talk) 21:53, 22 March 2025 (UTC)[reply]
    Do you have exceptions for summaries like "fixed typo" and "added content" (typical canned ip summaries?) Edits with those summaries should probably not be saved. Wildfireupdateman :) (talk) 00:58, 23 March 2025 (UTC)[reply]
    I have it in some other filters, though I can't say I see those canned responses very often. When asked for input, in a message that starts with "This action has been automatically identified as harmful, and therefore disallowed.", most vandals just quit. That's my experience IRL. Ponor (talk) 00:14, 24 March 2025 (UTC)[reply]

    First of all, I'd set some nice goals. These edits should pass:

    '''Subject''' is
    +
    A '''subject''' is
    '''Subject''' is
    +
    '''''Subject''''' is
    In architecture, the '''subject''' is
    +
    The '''subject''' is
    The '''subject''' is
    +
    In architecture, the '''Subject One''' is

    These edits should be prevented or challenged (Green tickY ask for edit summary? Red XN captcha?):

    '''Subject''' is
    +
    '''Subject vandal''' is
    '''Subject''' is
    +
    '''Vandal''' is
    The '''subject''' is
    +
    The '''subject vandal''' is
    The '''subject''' is something that
    +
    is something that

    So something along these lines should work for most articles:

    &
    action == "edit"
    &
    (
       subject := get_matches("(?:^|\n)(?:In [^,]{1,25}, )?(?:[Aa] |[Tt]he )?'''+([-–\w ]+)'''", removed_lines)[1];
       
       subject /*no action if subject was not found, for any reason*/
       & 
       ( lcase(subject) != lcase(get_matches("'''+([-–\w ]+)'''", added_lines)[1]) )
    )

    If you want to ask for their edit summary (anything longer than 15 characters, for example), set filter to disallow (with a nice message) and add to the filter the following:

    &
    
    (/*change of subject needs to be explained, most vandals will quit*/
       summ := get_matches("(?:/\*[^*]+\*/)?(.*)", summary)[1];
       (length(summ) < 15)
      |(length(summ) > 250)
    )

    I've had a filter like this running for a few years, and from the log I can tell it works perfectly fine. Ponor (talk) 00:08, 24 March 2025 (UTC)[reply]

    Significance-misleading edits

    [edit]
    • Task: Catch edit summaries usually associated with minor edits, but attached to major edits instead.
    • Reason: It is not allowed to use misleading edit summaries, and patrolling recent changes, I've encountered misleading edit summaries.
    • Diffs: Special:Diff/1282174235 (Way more than this are targeted)
    • Code: sum := "typo|spelling|error|added (links|content)|gramm[ae]r"; significant := edit_delta > 15; significant & (summary rlike sum)

    Faster than Thunder (talk | contributions) 20:34, 24 March 2025 (UTC)[reply]

    I would bump the size up from 10 to maybe 25-50 (although it actually wouldn't be able to catch the example edit even at >10). Another idea might be to check IP edits for "typo" and see if they added any extra spaces (indicative of adding another word, which means they were not fixing typos). Wildfireupdateman :) (talk) 22:42, 24 March 2025 (UTC)[reply]
    For the typical "canned" summaries we can use the regex in 633 (hist · log): "^(?:/\* .* \*/\s?)?(?:Fixed typo|Fixed grammar|Added links|Added content)$". – PharyngealImplosive7 (talk) 23:32, 24 March 2025 (UTC)[reply]
    1. Done.
    2. Not "^...$", to prevent bypassing. Faster than Thunder (talk | contributions) 00:59, 25 March 2025 (UTC)[reply]
    any extra spaces (indicative of adding another word, which means they were not fixing typos). I recently corrected "atleast" to "at least". We need to make sure the added spaces are outside of the word. The code should not match something like "sp, unsourced" where I'm both fixing a typo and removing an unsourced statement in one edit. That would have a high edit delta, but the presence of the major edit keyword "unsourced" in addition to the minor edit keywords means it's a major edit. This could be done by adding ^( and )$ from the other filter. The synonyms at WP:ESL#Spelling, WP:ESL#Typo, WP:ESL#Grammar, and WP:ESL#Links: internal may be useful. Finally, I don't see why the "added content" part of added (links|content) is "usually associated with minor edits". 216.58.25.209 (talk) 06:42, 26 March 2025 (UTC)[reply]
    Filter 970 (hist · log) would have caught this edit, but the edit_delta was only 7. What you're really looking for is edit distance, which unfortunately AbuseFilter does not measure at the byte level. Not saying that 970 can't be improved in some other ways. Suffusion of Yellow (talk) 00:55, 25 March 2025 (UTC)[reply]

    Careless moves to mainspace

    [edit]

    There should be a filter to block moves from "User:Username/Foo" to "Username/Foo". This is a fairly common error, and never what we want. * Pppery * it has begun... 15:10, 26 March 2025 (UTC)[reply]