Repository: Automattic/harper (2026-03-19T12:43:35Z)

Issue:
Need to flag "verse" used as a verb related to "versus"
The English word **versus** is a preposition, meaning it can come before nouns and noun phrases.

But some younger and/or foreign speakers of English treat it as a verb:
- We were having that discussion last night about train ride **verse** plane ride.
- A game of Morra, with 3 different AI you can **verse** against.
- This will make you switch to Smite and Fanatisim if you are **versing** a particular boss.
- Welcome to rock, paper, scissors, where you will **verse** a computer, and the first one to win 3 rounds, wins
- In my last 5 games as a solo I have **versed** both duos and trios in every game.
- Newer players never **versed** Torch in his OP state so its really funny cos they dont even know what his kit does fully, since they never **vs** him.
- I want the function to take input from the user who will type in the name of 2 teams they want to **verse** each other
- I'm making my first ever project which is a dice game in pygame where you press the y key to roll a dice and you **verse** the computer
- I'm writing a code where I am **versing** the computer.
- The player is **versing** a PC and the results of the game are based on the 2 values.
- Is there any disadvantages to it **verses** the standard pipeline or the semantic proposal?
- Utilizing this method you can see how many adoptable dogs are house trained in the U.S. **verses** those that are not.
- Balancing the amount of work on it **verses** other work, but should now be able to make progress.
- That 10% could ruin that extension even though there might be 100k actually using it **verses** only 4k from the 80% of 5k extension.
- Teams in Group1 does NOT **verse** teams in Group3
- Teams in Group1 **verses** every other team in Group 1 twice (Eg. 1v2, 2v1, 1v3, 3v1, 1v4, 4v1, 1v5, 5v1.....)
- This same rule applies to teams in Group3 as they **verse** other teams in Group3
- Teams in Group2 **verse** every other team once.
- I also added Lichess api functionality so that you can **verse** the bot online.
- This is a Tic Tac Toe bot, where you can **verse** it either starting or going second.
- If you want to manually test improvement, you can **verse** your current bot against an older version and see who comes out on top.
- A web game where you **verse** your friends and test your reflexes.
- You will be **versing** the computer, Good luck!
- ... the team they are **versing**.

When misused this way it is spelled **"verses"** in the third-person singular present, which is a different English word, a plural noun, so doesn't invoke spellcheck.
- **"versed"** also passes spellcheck because it's also a different word, most commonly seen in the phrase "well-versed".
- **"verse"**, used as the lemma is of course also a word, a singular noun.
- **"versing"** is archaic. We can probably remove it from the dictionary.
- **"verses"** may be used as a verb form and as a misspelling for the preposition.

Because most of the inflections are already English words, context will be essential to disambiguate whether it's an error or legitimate use.

Suggested replacements could be: **face**, **challenge**, **play against**, **compete against**.



Discussion:

Patch:
diff --git a/harper-core/src/linting/phrase_set_corrections/mod.rs b/harper-core/src/linting/phrase_set_corrections/mod.rs
index d9727a1a63..ec68490a1a 100644
--- a/harper-core/src/linting/phrase_set_corrections/mod.rs
+++ b/harper-core/src/linting/phrase_set_corrections/mod.rs
@@ -525,6 +525,22 @@ pub fn lint_group() -> LintGroup {
             "Corrects the eggcorn `wreck havoc` to `wreak havoc`, which is the proper term for causing chaos or destruction.",
             LintKind::Eggcorn
         ),
+        "VerseAsVerb" => (
+            &[
+                ("verse against", "play against"),
+                ("versed against", "played against"),
+                ("versing against", "playing against"),
+                ("verses against", "plays against"),
+                ("verse me", "play me"),
+                ("verse him", "play him"),
+                ("verse her", "play her"),
+                ("verse them", "play them"),
+                ("verse you", "play you"),
+            ],
+            "`Verse` is not a verb meaning to compete. Use `play against` or `compete against` instead.",
+            "Corrects the nonstandard use of `verse` as a verb (from `versus`) to standard alternatives.",
+            LintKind::Nonstandard
+        ),
         "WroteToRote" => (
             &[
                 ("by wrote", "by rote"),


Test patch:
diff --git a/harper-core/src/linting/phrase_set_corrections/tests.rs b/harper-core/src/linting/phrase_set_corrections/tests.rs
index 9734ddfd09..8068943e68 100644
--- a/harper-core/src/linting/phrase_set_corrections/tests.rs
+++ b/harper-core/src/linting/phrase_set_corrections/tests.rs
@@ -1665,6 +1665,40 @@ fn fix_wrecks_havoc() {
     );
 }
 
+// VerseAsVerb
+
+#[test]
+fn corrects_verse_against() {
+    assert_suggestion_result(
+        "A game of Morra, with 3 different AI you can verse against.",
+        lint_group(),
+        "A game of Morra, with 3 different AI you can play against.",
+    );
+}
+
+#[test]
+fn corrects_versing_against() {
+    assert_suggestion_result(
+        "This will help when you are versing against a particular boss.",
+        lint_group(),
+        "This will help when you are playing against a particular boss.",
+    );
+}
+
+#[test]
+fn corrects_verse_me() {
+    assert_suggestion_result(
+        "Come verse me in this game.",
+        lint_group(),
+        "Come play me in this game.",
+    );
+}
+
+#[test]
+fn allows_versus() {
+    assert_no_lints("It was red versus blue in the finals.", lint_group());
+}
+
 // WroteToRote
 
 #[test]