ai-text-check 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/LICENSE +21 -0
  2. package/NOTICE +36 -0
  3. package/README.md +174 -0
  4. package/SOURCES.md +34 -0
  5. package/dist/cli.js +13834 -0
  6. package/dist/index.cjs +13366 -0
  7. package/dist/index.d.cts +36 -0
  8. package/dist/index.d.ts +36 -0
  9. package/dist/index.js +13351 -0
  10. package/dist/node.cjs +13581 -0
  11. package/dist/node.d.cts +41 -0
  12. package/dist/node.d.ts +41 -0
  13. package/dist/node.js +13564 -0
  14. package/dist/types-BlvvRFG5.d.cts +153 -0
  15. package/dist/types-BlvvRFG5.d.ts +153 -0
  16. package/package.json +115 -0
  17. package/slop-gate.config.json +3 -0
  18. package/vale/styles/AiTextCheck/DiveDeep.yml +5 -0
  19. package/vale/styles/AiTextCheck/Furthermore.yml +5 -0
  20. package/vale/styles/AiTextCheck/ImportantToNote.yml +5 -0
  21. package/vale/styles/AiTextCheck/InTodaysWorld.yml +5 -0
  22. package/vale/styles/AiTextCheck/LeverageUtilize.yml +5 -0
  23. package/vale/styles/AiTextCheck/meta.json +3 -0
  24. package/vale/styles/Google/AMPM.yml +9 -0
  25. package/vale/styles/Google/Acronyms.yml +64 -0
  26. package/vale/styles/Google/Colons.yml +8 -0
  27. package/vale/styles/Google/Contractions.yml +30 -0
  28. package/vale/styles/Google/DateFormat.yml +9 -0
  29. package/vale/styles/Google/Ellipses.yml +9 -0
  30. package/vale/styles/Google/EmDash.yml +12 -0
  31. package/vale/styles/Google/Exclamation.yml +12 -0
  32. package/vale/styles/Google/FirstPerson.yml +13 -0
  33. package/vale/styles/Google/Gender.yml +9 -0
  34. package/vale/styles/Google/GenderBias.yml +43 -0
  35. package/vale/styles/Google/HeadingPunctuation.yml +13 -0
  36. package/vale/styles/Google/Headings.yml +29 -0
  37. package/vale/styles/Google/LICENSE +21 -0
  38. package/vale/styles/Google/Latin.yml +11 -0
  39. package/vale/styles/Google/LyHyphens.yml +14 -0
  40. package/vale/styles/Google/OptionalPlurals.yml +12 -0
  41. package/vale/styles/Google/Ordinal.yml +7 -0
  42. package/vale/styles/Google/OxfordComma.yml +7 -0
  43. package/vale/styles/Google/Parens.yml +7 -0
  44. package/vale/styles/Google/Passive.yml +184 -0
  45. package/vale/styles/Google/Periods.yml +7 -0
  46. package/vale/styles/Google/Quotes.yml +7 -0
  47. package/vale/styles/Google/Ranges.yml +7 -0
  48. package/vale/styles/Google/Semicolons.yml +8 -0
  49. package/vale/styles/Google/Slang.yml +11 -0
  50. package/vale/styles/Google/Spacing.yml +10 -0
  51. package/vale/styles/Google/Spelling.yml +10 -0
  52. package/vale/styles/Google/Units.yml +8 -0
  53. package/vale/styles/Google/We.yml +11 -0
  54. package/vale/styles/Google/Will.yml +7 -0
  55. package/vale/styles/Google/WordList.yml +80 -0
  56. package/vale/styles/Google/meta.json +4 -0
  57. package/vale/styles/Google/vocab.txt +0 -0
  58. package/vale/styles/ai-tells/AIAdjectiveNounPairs.yml +8 -0
  59. package/vale/styles/ai-tells/AICompoundPhrases.yml +139 -0
  60. package/vale/styles/ai-tells/AbsoluteAssertions.yml +21 -0
  61. package/vale/styles/ai-tells/AffirmativeFormulas.yml +101 -0
  62. package/vale/styles/ai-tells/AnnouncementHeadings.yml +16 -0
  63. package/vale/styles/ai-tells/AnthropomorphicJustification.yml +115 -0
  64. package/vale/styles/ai-tells/ClosingPleasantries.yml +120 -0
  65. package/vale/styles/ai-tells/ColloquialAssessments.yml +47 -0
  66. package/vale/styles/ai-tells/ColonUsage.yml +18 -0
  67. package/vale/styles/ai-tells/ConclusionMarkers.yml +23 -0
  68. package/vale/styles/ai-tells/ContrastiveFormulas.yml +188 -0
  69. package/vale/styles/ai-tells/ContrastiveNegation.yml +22 -0
  70. package/vale/styles/ai-tells/DefensiveHedges.yml +63 -0
  71. package/vale/styles/ai-tells/DespiteChallenges.yml +32 -0
  72. package/vale/styles/ai-tells/EmDashUsage.yml +9 -0
  73. package/vale/styles/ai-tells/EmphaticCopula.yml +30 -0
  74. package/vale/styles/ai-tells/EmptyPadding.yml +10 -0
  75. package/vale/styles/ai-tells/EmptyPaddingStacked.yml +11 -0
  76. package/vale/styles/ai-tells/ExplainerHeadings.yml +20 -0
  77. package/vale/styles/ai-tells/FalseBalance.yml +31 -0
  78. package/vale/styles/ai-tells/FalseExclusivity.yml +41 -0
  79. package/vale/styles/ai-tells/FigurativeLands.yml +79 -0
  80. package/vale/styles/ai-tells/FillerPhrases.yml +78 -0
  81. package/vale/styles/ai-tells/FormalRegister.yml +58 -0
  82. package/vale/styles/ai-tells/FormalTransitions.yml +74 -0
  83. package/vale/styles/ai-tells/GrowthMetaphors.yml +28 -0
  84. package/vale/styles/ai-tells/HedgingPhrases.yml +85 -0
  85. package/vale/styles/ai-tells/LICENSE +21 -0
  86. package/vale/styles/ai-tells/ListIntroductions.yml +22 -0
  87. package/vale/styles/ai-tells/MarketingHeadings.yml +19 -0
  88. package/vale/styles/ai-tells/Metacommentary.yml +113 -0
  89. package/vale/styles/ai-tells/MicDrop.yml +205 -0
  90. package/vale/styles/ai-tells/MicDropHeadings.yml +20 -0
  91. package/vale/styles/ai-tells/NarrativePivots.yml +59 -0
  92. package/vale/styles/ai-tells/OpeningCliches.yml +98 -0
  93. package/vale/styles/ai-tells/OrganicConsequence.yml +38 -0
  94. package/vale/styles/ai-tells/OverusedVocabulary.yml +185 -0
  95. package/vale/styles/ai-tells/OverusedVocabularyVerbs.yml +7 -0
  96. package/vale/styles/ai-tells/ParallelStaccato.yml +34 -0
  97. package/vale/styles/ai-tells/ParticipialPadding.yml +74 -0
  98. package/vale/styles/ai-tells/PromotionalPuffery.yml +63 -0
  99. package/vale/styles/ai-tells/RedundantPrecaution.yml +8 -0
  100. package/vale/styles/ai-tells/ResonateOveruse.yml +13 -0
  101. package/vale/styles/ai-tells/RestatementMarkers.yml +36 -0
  102. package/vale/styles/ai-tells/RhetoricalDevices.yml +53 -0
  103. package/vale/styles/ai-tells/RhetoricalSelfAnswer.yml +51 -0
  104. package/vale/styles/ai-tells/SelfReference.yml +52 -0
  105. package/vale/styles/ai-tells/SemicolonUsage.yml +31 -0
  106. package/vale/styles/ai-tells/SequencingMarkers.yml +41 -0
  107. package/vale/styles/ai-tells/ServesAsDodge.yml +66 -0
  108. package/vale/styles/ai-tells/ShipOveruse.yml +16 -0
  109. package/vale/styles/ai-tells/StackedAnaphora.yml +185 -0
  110. package/vale/styles/ai-tells/StrategyBuzzwords.yml +32 -0
  111. package/vale/styles/ai-tells/StructureAnnouncements.yml +22 -0
  112. package/vale/styles/ai-tells/SycophancyMarkers.yml +26 -0
  113. package/vale/styles/ai-tells/UnpackExplore.yml +21 -0
  114. package/vale/styles/ai-tells/UrgencyInflation.yml +70 -0
  115. package/vale/styles/ai-tells/VagueAttributions.yml +67 -0
  116. package/vale/styles/ai-tells/VerbTricolon.yml +78 -0
  117. package/vale/styles/ai-tells/VerbTricolonDensity.yml +7 -0
  118. package/vale/styles/ai-tells/WrapUpHeadings.yml +22 -0
  119. package/vale/styles/signs-of-ai-writing/AspectOveruse.yml +13 -0
  120. package/vale/styles/signs-of-ai-writing/ChatGPTArtifacts.yml +12 -0
  121. package/vale/styles/signs-of-ai-writing/ChatbotCommunication.yml +21 -0
  122. package/vale/styles/signs-of-ai-writing/CitationArtifacts.yml +10 -0
  123. package/vale/styles/signs-of-ai-writing/ColonOveruse.yml +11 -0
  124. package/vale/styles/signs-of-ai-writing/Enumeration.yml +11 -0
  125. package/vale/styles/signs-of-ai-writing/Hedging.yml +6 -0
  126. package/vale/styles/signs-of-ai-writing/Intensifiers.yml +17 -0
  127. package/vale/styles/signs-of-ai-writing/KnowledgeCutoff.yml +14 -0
  128. package/vale/styles/signs-of-ai-writing/LICENSE +12 -0
  129. package/vale/styles/signs-of-ai-writing/Lists.yml +8 -0
  130. package/vale/styles/signs-of-ai-writing/Narrative.yml +15 -0
  131. package/vale/styles/signs-of-ai-writing/Passive.yml +16 -0
  132. package/vale/styles/signs-of-ai-writing/Placeholders.yml +17 -0
  133. package/vale/styles/signs-of-ai-writing/ScareQuotes.yml +6 -0
  134. package/vale/styles/signs-of-ai-writing/Symbolism.yml +23 -0
  135. package/vale/styles/signs-of-ai-writing/Transitions.yml +17 -0
  136. package/vale/styles/signs-of-ai-writing/UTMParameters.yml +10 -0
  137. package/vale/styles/signs-of-ai-writing/Vocabulary.yml +27 -0
  138. package/vale/styles/signs-of-ai-writing/meta.json +4 -0
  139. package/vale/styles/write-good/Cliches.yml +702 -0
  140. package/vale/styles/write-good/E-Prime.yml +32 -0
  141. package/vale/styles/write-good/Illusions.yml +11 -0
  142. package/vale/styles/write-good/LICENSE +21 -0
  143. package/vale/styles/write-good/Passive.yml +183 -0
  144. package/vale/styles/write-good/README.md +27 -0
  145. package/vale/styles/write-good/So.yml +5 -0
  146. package/vale/styles/write-good/ThereIs.yml +6 -0
  147. package/vale/styles/write-good/TooWordy.yml +221 -0
  148. package/vale/styles/write-good/Weasel.yml +29 -0
  149. package/vale/styles/write-good/meta.json +4 -0
  150. package/vale/vale.ini +38 -0
@@ -0,0 +1,78 @@
1
+ ---
2
+ extends: existence
3
+ message: "AI tricolon: '%s'. Three parallel verbs in series. Restructure or vary the count."
4
+ level: error
5
+ nonword: true
6
+ tokens:
7
+ # ==========================================================================
8
+ # Verb tricolons: three parallel verb phrases in a comma series.
9
+ #
10
+ # LLMs produce prose where nearly every enumeration is exactly three items
11
+ # and almost never two or four. This rule flags each instance.
12
+ #
13
+ # Optional adverb prefix (?:\w+ly )? catches "carefully analyzes data,
14
+ # thoroughly processes results, and accurately generates reports."
15
+ # ==========================================================================
16
+
17
+ # --- Gerund: "[adv] verbing X, [adv] verbing Y, and/or [adv] verbing Z" ---
18
+ - "(?:\\w+ly )?\\w+ing [^,]+, (?:\\w+ly )?\\w+ing [^,]+, and (?:\\w+ly )?\\w+ing [^.!?]+"
19
+ - "(?:\\w+ly )?\\w+ing [^,]+, (?:\\w+ly )?\\w+ing [^,]+, or (?:\\w+ly )?\\w+ing [^.!?]+"
20
+
21
+ # --- Past tense -ed: "[adv] verbed X, [adv] verbed Y, and/or [adv] verbed Z"
22
+ - "(?:\\w+ly )?\\w+ed [^,]+, (?:\\w+ly )?\\w+ed [^,]+, and (?:\\w+ly )?\\w+ed [^.!?]+"
23
+ - "(?:\\w+ly )?\\w+ed [^,]+, (?:\\w+ly )?\\w+ed [^,]+, or (?:\\w+ly )?\\w+ed [^.!?]+"
24
+
25
+ # --- Third person -s: "[adv] verbs X, [adv] verbs Y, and/or [adv] verbs Z"
26
+ - "(?:\\w+ly )?\\w+s [^,]+, (?:\\w+ly )?\\w+s [^,]+, and (?:\\w+ly )?\\w+s [^.!?]+"
27
+ - "(?:\\w+ly )?\\w+s [^,]+, (?:\\w+ly )?\\w+s [^,]+, or (?:\\w+ly )?\\w+s [^.!?]+"
28
+
29
+ # --- Base form after modals -----------------------------------------------
30
+ - "(?:can|could|will|would|should|shall|may|might|must) (?:\\w+ly )?\\w+ [^,]+, (?:\\w+ly )?\\w+ [^,]+, and (?:\\w+ly )?\\w+ [^.!?]+"
31
+ - "(?:can|could|will|would|should|shall|may|might|must) (?:\\w+ly )?\\w+ [^,]+, (?:\\w+ly )?\\w+ [^,]+, or (?:\\w+ly )?\\w+ [^.!?]+"
32
+
33
+ # --- Base form after pronoun subjects: "They/We/You [adv] verb X, ..." -----
34
+ - "(?:They|We|You) (?:\\w+ly )?\\w+ [^,]+, (?:\\w+ly )?\\w+ [^,]+, and (?:\\w+ly )?\\w+ [^.!?]+"
35
+ - "(?:They|We|You) (?:\\w+ly )?\\w+ [^,]+, (?:\\w+ly )?\\w+ [^,]+, or (?:\\w+ly )?\\w+ [^.!?]+"
36
+
37
+ # --- Infinitive (shared "to"): "to verb X, verb Y, and/or verb Z" ---------
38
+ - "to (?:\\w+ly )?\\w+ [^,]+, (?:\\w+ly )?\\w+ [^,]+, and (?:\\w+ly )?\\w+ [^.!?]+"
39
+ - "to (?:\\w+ly )?\\w+ [^,]+, (?:\\w+ly )?\\w+ [^,]+, or (?:\\w+ly )?\\w+ [^.!?]+"
40
+
41
+ # --- Infinitive (repeated "to"): "to verb X, to verb Y, to verb Z" --------
42
+ - "to (?:\\w+ly )?\\w+ [^,]+, to (?:\\w+ly )?\\w+ [^,]+, and to (?:\\w+ly )?\\w+ [^.!?]+"
43
+ - "to (?:\\w+ly )?\\w+ [^,]+, to (?:\\w+ly )?\\w+ [^,]+, or to (?:\\w+ly )?\\w+ [^.!?]+"
44
+
45
+ # --- Base form after colon: "discipline: verb X, verb Y, and/or verb Z" -----
46
+ - ": (?:\\w+ly )?\\w+ [^,]+, (?:\\w+ly )?\\w+ [^,]+, and (?:\\w+ly )?\\w+ [^.!?]+"
47
+ - ": (?:\\w+ly )?\\w+ [^,]+, (?:\\w+ly )?\\w+ [^,]+, or (?:\\w+ly )?\\w+ [^.!?]+"
48
+
49
+ # ==========================================================================
50
+ # Asyndetic tricolons: three parallel verb phrases with NO conjunction.
51
+ # "parse input, call a service method, format output."
52
+ #
53
+ # Even punchier than the syndetic form — AI loves the drumroll without
54
+ # the cymbal crash. Third item uses [^,.!?]+ to prevent matching into
55
+ # a fourth item in longer lists.
56
+ # ==========================================================================
57
+
58
+ # --- Asyndetic gerund: "verbing X, verbing Y, verbing Z" -----------------
59
+ - "(?:\\w+ly )?\\w+ing [^,]+, (?:\\w+ly )?\\w+ing [^,]+, (?:\\w+ly )?\\w+ing [^,.!?]+"
60
+
61
+ # --- Asyndetic past tense -ed -------------------------------------------
62
+ - "(?:\\w+ly )?\\w+ed [^,]+, (?:\\w+ly )?\\w+ed [^,]+, (?:\\w+ly )?\\w+ed [^,.!?]+"
63
+
64
+ # --- Asyndetic third person -s ------------------------------------------
65
+ - "(?:\\w+ly )?\\w+s [^,]+, (?:\\w+ly )?\\w+s [^,]+, (?:\\w+ly )?\\w+s [^,.!?]+"
66
+
67
+ # --- Asyndetic base form after modals -----------------------------------
68
+ - "(?:can|could|will|would|should|shall|may|might|must) (?:\\w+ly )?\\w+ [^,]+, (?:\\w+ly )?\\w+ [^,]+, (?:\\w+ly )?\\w+ [^,.!?]+"
69
+
70
+ # --- Asyndetic base form after pronoun subjects -------------------------
71
+ - "(?:They|We|You) (?:\\w+ly )?\\w+ [^,]+, (?:\\w+ly )?\\w+ [^,]+, (?:\\w+ly )?\\w+ [^,.!?]+"
72
+
73
+ # --- Asyndetic base form after colon ------------------------------------
74
+ - ": (?:\\w+ly )?\\w+ [^,]+, (?:\\w+ly )?\\w+ [^,]+, (?:\\w+ly )?\\w+ [^,.!?]+"
75
+
76
+ # --- Subject-verb tricolon: "the [adj] X verbs A, the [adj] Y verbs B, ..." -
77
+ - "[Tt]he (?:\\w+ ){1,3}\\w+s [^,]+, the (?:\\w+ ){1,3}\\w+s [^,]+, and the (?:\\w+ ){1,3}\\w+s [^.!?]+"
78
+ - "[Tt]he (?:\\w+ ){1,3}\\w+s [^,]+, the (?:\\w+ ){1,3}\\w+s [^,]+, or the (?:\\w+ ){1,3}\\w+s [^.!?]+"
@@ -0,0 +1,7 @@
1
+ ---
2
+ extends: occurrence
3
+ message: "AI tricolon: multiple verb tricolons in one paragraph (found %s). Rewrite some with two or four items."
4
+ level: error
5
+ scope: paragraph
6
+ max: 1
7
+ token: '((?:\w+ly )?\w+s [^,]+, (?:\w+ly )?\w+s [^,]+, (?:and|or) (?:\w+ly )?\w+s [^.!?]+|(?:\w+ly )?\w+ing [^,]+, (?:\w+ly )?\w+ing [^,]+, (?:and|or) (?:\w+ly )?\w+ing [^.!?]+|(?:\w+ly )?\w+ed [^,]+, (?:\w+ly )?\w+ed [^,]+, (?:and|or) (?:\w+ly )?\w+ed [^.!?]+)'
@@ -0,0 +1,22 @@
1
+ ---
2
+ extends: existence
3
+ message: "AI wrap-up heading: '%s'. Delete the section or rename the heading to the topic."
4
+ level: error
5
+ ignorecase: true
6
+ scope: heading
7
+ tokens:
8
+ - Final Thoughts
9
+ - Closing Thoughts
10
+ - Parting Thoughts
11
+ - Wrapping Up
12
+ - Wrap-Up
13
+ - Wrap Up
14
+ - Putting It All Together
15
+ - Bringing It All Together
16
+ - Tying It All Together
17
+ - The Big Picture
18
+ - The Bottom Line
19
+ - The Takeaway
20
+ - Final Word
21
+ - Last Word
22
+ - Final Take
@@ -0,0 +1,13 @@
1
+ extends: existence
2
+ message: "Overuse of 'aspect' language: '%s'"
3
+ level: warning
4
+ link: https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing
5
+ tokens:
6
+ - 'multifaceted'
7
+ - 'various aspects'
8
+ - 'different aspects'
9
+ - 'multiple aspects'
10
+ - 'key aspects'
11
+ - 'important aspects'
12
+ - 'various facets'
13
+ - 'many dimensions'
@@ -0,0 +1,12 @@
1
+ extends: existence
2
+ message: "ChatGPT citation artifact detected: '%s'"
3
+ level: error
4
+ link: https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing#G15_criteria
5
+ nonword: true
6
+ tokens:
7
+ - ':contentReference\[oaicite:\d+\]\{index=\d+\}'
8
+ - '\[oaicite:\d+\]'
9
+ - 'oai_citation:\d+'
10
+ - 'oai_citation'
11
+ - 'sandbox:/mnt/data/'
12
+ - 'https?://chat\.openai\.com/'
@@ -0,0 +1,21 @@
1
+ extends: existence
2
+ message: "Chatbot communication pattern detected: '%s'"
3
+ level: error
4
+ link: https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing#G15_criteria
5
+ tokens:
6
+ - 'I hope this helps'
7
+ - 'Of course!'
8
+ - 'Certainly!'
9
+ - "You're absolutely right"
10
+ - 'Would you like me to'
11
+ - 'Is there anything else'
12
+ - 'Let me know if you'
13
+ - 'More detailed breakdown'
14
+ - 'Here is a (draft|Wikipedia|detailed) article'
15
+ - 'As an AI (language )?model'
16
+ - "I'm sorry, I can't"
17
+ - 'Would you like it expanded'
18
+ - 'This fictional article'
19
+ - 'This Wikipedia-style article'
20
+ - 'Final important tip'
21
+ - 'Feel free to ask'
@@ -0,0 +1,10 @@
1
+ extends: existence
2
+ message: "LLM citation artifact detected: '%s'"
3
+ level: error
4
+ link: https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing
5
+ nonword: true
6
+ tokens:
7
+ - '↩\d+'
8
+ - '\[↩\]'
9
+ - '<sup>\[↩\]</sup>'
10
+ - '\{\{cite[^}]+\}\}<sup>\[\d+\]</sup>'
@@ -0,0 +1,11 @@
1
+ extends: existence
2
+ message: "Colon overuse pattern detected: '%s'"
3
+ level: suggestion
4
+ link: https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing
5
+ tokens:
6
+ - ': including'
7
+ - ': such as'
8
+ - ': for example,'
9
+ - ': notably,'
10
+ - ': specifically,'
11
+ - ': particularly,'
@@ -0,0 +1,11 @@
1
+ extends: existence
2
+ message: "Hedged enumeration detected: '%s'"
3
+ level: suggestion
4
+ link: https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing
5
+ tokens:
6
+ - 'one of the most'
7
+ - 'among the most'
8
+ - 'some of the most'
9
+ - 'one of the first'
10
+ - 'among the earliest'
11
+ - 'some of the earliest'
@@ -0,0 +1,6 @@
1
+ extends: occurrence
2
+ message: "Too many hedging phrases (found %d, max 2)"
3
+ level: warning
4
+ link: https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing
5
+ max: 2
6
+ token: '\b(it''s important to note|it is worth noting|it should be noted|notably|it''s worth mentioning|of course|certainly|clearly|obviously|undoubtedly|without a doubt|there is no doubt|it goes without saying|needless to say|as you might expect)\b'
@@ -0,0 +1,17 @@
1
+ extends: existence
2
+ message: "Intensifier detected: '%s'"
3
+ level: suggestion
4
+ link: https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing
5
+ tokens:
6
+ - 'remarkably'
7
+ - 'notably'
8
+ - 'significantly'
9
+ - 'particularly'
10
+ - 'especially'
11
+ - 'exceptionally'
12
+ - 'extraordinarily'
13
+ - 'impressively'
14
+ - 'strikingly'
15
+ - 'notably significant'
16
+ - 'highly significant'
17
+ - 'particularly important'
@@ -0,0 +1,14 @@
1
+ extends: existence
2
+ message: "AI knowledge cutoff reference detected: '%s'"
3
+ level: warning
4
+ link: https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing
5
+ tokens:
6
+ - 'as of my last update'
7
+ - 'as of my knowledge cutoff'
8
+ - 'my training data only goes up to'
9
+ - "I don't have information beyond"
10
+ - 'my knowledge was last updated'
11
+ - 'as of \[month/year\]'
12
+ - "I cannot provide information past"
13
+ - 'my training only includes data until'
14
+ - 'as of the time of my training'
@@ -0,0 +1,12 @@
1
+ This Vale style is licensed under the Creative Commons
2
+ Attribution-ShareAlike 4.0 International License (CC BY-SA 4.0).
3
+
4
+ You are free to share and adapt the material under the terms of that
5
+ license. Attribution and ShareAlike conditions apply.
6
+
7
+ License: https://creativecommons.org/licenses/by-sa/4.0/
8
+ Legal code: https://creativecommons.org/licenses/by-sa/4.0/legalcode
9
+ Source: https://github.com/ammil-industries/vale-signs-of-ai-writing
10
+
11
+ This work is derived from Wikipedia, "Signs of AI writing", which is
12
+ also available under CC BY-SA 4.0.
@@ -0,0 +1,8 @@
1
+ extends: existence
2
+ message: "Avoid using numbered sequence words (firstly, secondly, thirdly) in the same paragraph."
3
+ level: warning
4
+ scope: paragraph
5
+ link: https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing
6
+ ignorecase: true
7
+ raw:
8
+ - '\b(firstly|first)[,\s][\s\S]*\b(secondly|second)[,\s][\s\S]*\b(thirdly|third)\b'
@@ -0,0 +1,15 @@
1
+ extends: existence
2
+ message: "Prescriptive narrative language detected: '%s'"
3
+ level: suggestion
4
+ link: https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing
5
+ tokens:
6
+ - 'it is important to understand'
7
+ - 'it is crucial to recognize'
8
+ - 'it is essential to note'
9
+ - 'one must consider'
10
+ - 'we must acknowledge'
11
+ - 'it is vital to remember'
12
+ - 'it is necessary to examine'
13
+ - 'one should note'
14
+ - 'we should recognize'
15
+ - 'it is critical to understand'
@@ -0,0 +1,16 @@
1
+ extends: existence
2
+ message: "'%s' looks like passive voice."
3
+ ignorecase: true
4
+ level: suggestion
5
+ link: https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing
6
+ raw:
7
+ - \b(am|are|were|being|is|been|was|be)\b\s*
8
+ tokens:
9
+ - founded
10
+ - known
11
+ - considered
12
+ - established
13
+ - recognized
14
+ - created
15
+ - regarded
16
+ - developed
@@ -0,0 +1,17 @@
1
+ extends: existence
2
+ message: "Placeholder text detected: '%s'"
3
+ level: error
4
+ link: https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing
5
+ tokens:
6
+ - '\[INSERT TEXT\]'
7
+ - '\[PLACEHOLDER\]'
8
+ - '\[YOUR_[A-Z]+\]'
9
+ - '\[TBD\]'
10
+ - '\[CITATION NEEDED\]'
11
+ - '\[COMPANY NAME\]'
12
+ - '\[YEAR\]'
13
+ - '\[FOUNDER NAME\]'
14
+ - '\{\{TEMPLATE\}\}'
15
+ - '<INSERT_TEXT>'
16
+ - '<PLACEHOLDER>'
17
+ - 'Lorem ipsum'
@@ -0,0 +1,6 @@
1
+ extends: existence
2
+ message: "Unnecessary quotation/hedging detected: '%s'"
3
+ level: suggestion
4
+ link: https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing
5
+ raw:
6
+ - "so-called ['\"].+?['\"]"
@@ -0,0 +1,23 @@
1
+ extends: existence
2
+ message: "AI-typical symbolic language detected: '%s'"
3
+ level: suggestion
4
+ link: https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing
5
+ tokens:
6
+ - '(stands|serves) as'
7
+ - 'testament to'
8
+ - 'reminder of'
9
+ - 'plays a (vital|crucial|pivotal|central) role'
10
+ - '(underscores|highlights) (the )?significance'
11
+ - 'reflects broader'
12
+ - 'symbolizing its ongoing'
13
+ - '(enduring|lasting) impact'
14
+ - 'key turning point'
15
+ - 'indelible mark'
16
+ - 'deeply rooted'
17
+ - 'profound heritage'
18
+ - 'steadfast dedication'
19
+ - 'prominent fixture'
20
+ - 'contributes to (the )?significance'
21
+ - 'enhancing (the )?significance'
22
+ - 'dynamic hub of'
23
+ - 'rich tapestry'
@@ -0,0 +1,17 @@
1
+ extends: existence
2
+ message: "Formal transition word detected: '%s'"
3
+ level: suggestion
4
+ link: https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing
5
+ tokens:
6
+ - 'furthermore,'
7
+ - 'moreover,'
8
+ - 'additionally,'
9
+ - 'in addition,'
10
+ - 'however,'
11
+ - 'nevertheless,'
12
+ - 'nonetheless,'
13
+ - 'on the other hand,'
14
+ - 'conversely,'
15
+ - 'consequently,'
16
+ - 'therefore,'
17
+ - 'thus,'
@@ -0,0 +1,10 @@
1
+ extends: existence
2
+ message: "ChatGPT UTM tracking parameter detected: '%s'"
3
+ level: error
4
+ link: https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing#G15_criteria
5
+ nonword: true
6
+ tokens:
7
+ - 'utm_source=chatgpt\.com'
8
+ - 'utm_source=openai'
9
+ - '\?utm_source=(chatgpt|openai)'
10
+ - '&utm_source=(chatgpt|openai)'
@@ -0,0 +1,27 @@
1
+ extends: existence
2
+ message: "AI-typical vocabulary detected: '%s'"
3
+ level: suggestion
4
+ link: https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing
5
+ tokens:
6
+ - '\bdelves?\b'
7
+ - 'delving'
8
+ - 'delved'
9
+ - '\btapestry\b'
10
+ - '\bvibrant\b'
11
+ - 'multifaceted'
12
+ - 'intricate(ly)?'
13
+ - 'meticulous(ly)?'
14
+ - '\bmyriad\b'
15
+ - 'showcases?'
16
+ - 'showcased'
17
+ - 'showcasing'
18
+ - 'boasts?'
19
+ - 'boasted'
20
+ - 'boasting'
21
+ - 'rich (tapestry|history|array)'
22
+ - 'complex (landscape|tapestry)'
23
+ - 'dynamic landscape'
24
+ - 'comprehensive understanding'
25
+ - '\bcornerstone\b'
26
+ - 'multitude of'
27
+ - 'plethora of'
@@ -0,0 +1,4 @@
1
+ {
2
+ "feed": "https://github.com/ammil-industries/vale-signs-of-ai-writing/releases.atom",
3
+ "vale_version": ">=1.0.0"
4
+ }