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.
- package/LICENSE +21 -0
- package/NOTICE +36 -0
- package/README.md +174 -0
- package/SOURCES.md +34 -0
- package/dist/cli.js +13834 -0
- package/dist/index.cjs +13366 -0
- package/dist/index.d.cts +36 -0
- package/dist/index.d.ts +36 -0
- package/dist/index.js +13351 -0
- package/dist/node.cjs +13581 -0
- package/dist/node.d.cts +41 -0
- package/dist/node.d.ts +41 -0
- package/dist/node.js +13564 -0
- package/dist/types-BlvvRFG5.d.cts +153 -0
- package/dist/types-BlvvRFG5.d.ts +153 -0
- package/package.json +115 -0
- package/slop-gate.config.json +3 -0
- package/vale/styles/AiTextCheck/DiveDeep.yml +5 -0
- package/vale/styles/AiTextCheck/Furthermore.yml +5 -0
- package/vale/styles/AiTextCheck/ImportantToNote.yml +5 -0
- package/vale/styles/AiTextCheck/InTodaysWorld.yml +5 -0
- package/vale/styles/AiTextCheck/LeverageUtilize.yml +5 -0
- package/vale/styles/AiTextCheck/meta.json +3 -0
- package/vale/styles/Google/AMPM.yml +9 -0
- package/vale/styles/Google/Acronyms.yml +64 -0
- package/vale/styles/Google/Colons.yml +8 -0
- package/vale/styles/Google/Contractions.yml +30 -0
- package/vale/styles/Google/DateFormat.yml +9 -0
- package/vale/styles/Google/Ellipses.yml +9 -0
- package/vale/styles/Google/EmDash.yml +12 -0
- package/vale/styles/Google/Exclamation.yml +12 -0
- package/vale/styles/Google/FirstPerson.yml +13 -0
- package/vale/styles/Google/Gender.yml +9 -0
- package/vale/styles/Google/GenderBias.yml +43 -0
- package/vale/styles/Google/HeadingPunctuation.yml +13 -0
- package/vale/styles/Google/Headings.yml +29 -0
- package/vale/styles/Google/LICENSE +21 -0
- package/vale/styles/Google/Latin.yml +11 -0
- package/vale/styles/Google/LyHyphens.yml +14 -0
- package/vale/styles/Google/OptionalPlurals.yml +12 -0
- package/vale/styles/Google/Ordinal.yml +7 -0
- package/vale/styles/Google/OxfordComma.yml +7 -0
- package/vale/styles/Google/Parens.yml +7 -0
- package/vale/styles/Google/Passive.yml +184 -0
- package/vale/styles/Google/Periods.yml +7 -0
- package/vale/styles/Google/Quotes.yml +7 -0
- package/vale/styles/Google/Ranges.yml +7 -0
- package/vale/styles/Google/Semicolons.yml +8 -0
- package/vale/styles/Google/Slang.yml +11 -0
- package/vale/styles/Google/Spacing.yml +10 -0
- package/vale/styles/Google/Spelling.yml +10 -0
- package/vale/styles/Google/Units.yml +8 -0
- package/vale/styles/Google/We.yml +11 -0
- package/vale/styles/Google/Will.yml +7 -0
- package/vale/styles/Google/WordList.yml +80 -0
- package/vale/styles/Google/meta.json +4 -0
- package/vale/styles/Google/vocab.txt +0 -0
- package/vale/styles/ai-tells/AIAdjectiveNounPairs.yml +8 -0
- package/vale/styles/ai-tells/AICompoundPhrases.yml +139 -0
- package/vale/styles/ai-tells/AbsoluteAssertions.yml +21 -0
- package/vale/styles/ai-tells/AffirmativeFormulas.yml +101 -0
- package/vale/styles/ai-tells/AnnouncementHeadings.yml +16 -0
- package/vale/styles/ai-tells/AnthropomorphicJustification.yml +115 -0
- package/vale/styles/ai-tells/ClosingPleasantries.yml +120 -0
- package/vale/styles/ai-tells/ColloquialAssessments.yml +47 -0
- package/vale/styles/ai-tells/ColonUsage.yml +18 -0
- package/vale/styles/ai-tells/ConclusionMarkers.yml +23 -0
- package/vale/styles/ai-tells/ContrastiveFormulas.yml +188 -0
- package/vale/styles/ai-tells/ContrastiveNegation.yml +22 -0
- package/vale/styles/ai-tells/DefensiveHedges.yml +63 -0
- package/vale/styles/ai-tells/DespiteChallenges.yml +32 -0
- package/vale/styles/ai-tells/EmDashUsage.yml +9 -0
- package/vale/styles/ai-tells/EmphaticCopula.yml +30 -0
- package/vale/styles/ai-tells/EmptyPadding.yml +10 -0
- package/vale/styles/ai-tells/EmptyPaddingStacked.yml +11 -0
- package/vale/styles/ai-tells/ExplainerHeadings.yml +20 -0
- package/vale/styles/ai-tells/FalseBalance.yml +31 -0
- package/vale/styles/ai-tells/FalseExclusivity.yml +41 -0
- package/vale/styles/ai-tells/FigurativeLands.yml +79 -0
- package/vale/styles/ai-tells/FillerPhrases.yml +78 -0
- package/vale/styles/ai-tells/FormalRegister.yml +58 -0
- package/vale/styles/ai-tells/FormalTransitions.yml +74 -0
- package/vale/styles/ai-tells/GrowthMetaphors.yml +28 -0
- package/vale/styles/ai-tells/HedgingPhrases.yml +85 -0
- package/vale/styles/ai-tells/LICENSE +21 -0
- package/vale/styles/ai-tells/ListIntroductions.yml +22 -0
- package/vale/styles/ai-tells/MarketingHeadings.yml +19 -0
- package/vale/styles/ai-tells/Metacommentary.yml +113 -0
- package/vale/styles/ai-tells/MicDrop.yml +205 -0
- package/vale/styles/ai-tells/MicDropHeadings.yml +20 -0
- package/vale/styles/ai-tells/NarrativePivots.yml +59 -0
- package/vale/styles/ai-tells/OpeningCliches.yml +98 -0
- package/vale/styles/ai-tells/OrganicConsequence.yml +38 -0
- package/vale/styles/ai-tells/OverusedVocabulary.yml +185 -0
- package/vale/styles/ai-tells/OverusedVocabularyVerbs.yml +7 -0
- package/vale/styles/ai-tells/ParallelStaccato.yml +34 -0
- package/vale/styles/ai-tells/ParticipialPadding.yml +74 -0
- package/vale/styles/ai-tells/PromotionalPuffery.yml +63 -0
- package/vale/styles/ai-tells/RedundantPrecaution.yml +8 -0
- package/vale/styles/ai-tells/ResonateOveruse.yml +13 -0
- package/vale/styles/ai-tells/RestatementMarkers.yml +36 -0
- package/vale/styles/ai-tells/RhetoricalDevices.yml +53 -0
- package/vale/styles/ai-tells/RhetoricalSelfAnswer.yml +51 -0
- package/vale/styles/ai-tells/SelfReference.yml +52 -0
- package/vale/styles/ai-tells/SemicolonUsage.yml +31 -0
- package/vale/styles/ai-tells/SequencingMarkers.yml +41 -0
- package/vale/styles/ai-tells/ServesAsDodge.yml +66 -0
- package/vale/styles/ai-tells/ShipOveruse.yml +16 -0
- package/vale/styles/ai-tells/StackedAnaphora.yml +185 -0
- package/vale/styles/ai-tells/StrategyBuzzwords.yml +32 -0
- package/vale/styles/ai-tells/StructureAnnouncements.yml +22 -0
- package/vale/styles/ai-tells/SycophancyMarkers.yml +26 -0
- package/vale/styles/ai-tells/UnpackExplore.yml +21 -0
- package/vale/styles/ai-tells/UrgencyInflation.yml +70 -0
- package/vale/styles/ai-tells/VagueAttributions.yml +67 -0
- package/vale/styles/ai-tells/VerbTricolon.yml +78 -0
- package/vale/styles/ai-tells/VerbTricolonDensity.yml +7 -0
- package/vale/styles/ai-tells/WrapUpHeadings.yml +22 -0
- package/vale/styles/signs-of-ai-writing/AspectOveruse.yml +13 -0
- package/vale/styles/signs-of-ai-writing/ChatGPTArtifacts.yml +12 -0
- package/vale/styles/signs-of-ai-writing/ChatbotCommunication.yml +21 -0
- package/vale/styles/signs-of-ai-writing/CitationArtifacts.yml +10 -0
- package/vale/styles/signs-of-ai-writing/ColonOveruse.yml +11 -0
- package/vale/styles/signs-of-ai-writing/Enumeration.yml +11 -0
- package/vale/styles/signs-of-ai-writing/Hedging.yml +6 -0
- package/vale/styles/signs-of-ai-writing/Intensifiers.yml +17 -0
- package/vale/styles/signs-of-ai-writing/KnowledgeCutoff.yml +14 -0
- package/vale/styles/signs-of-ai-writing/LICENSE +12 -0
- package/vale/styles/signs-of-ai-writing/Lists.yml +8 -0
- package/vale/styles/signs-of-ai-writing/Narrative.yml +15 -0
- package/vale/styles/signs-of-ai-writing/Passive.yml +16 -0
- package/vale/styles/signs-of-ai-writing/Placeholders.yml +17 -0
- package/vale/styles/signs-of-ai-writing/ScareQuotes.yml +6 -0
- package/vale/styles/signs-of-ai-writing/Symbolism.yml +23 -0
- package/vale/styles/signs-of-ai-writing/Transitions.yml +17 -0
- package/vale/styles/signs-of-ai-writing/UTMParameters.yml +10 -0
- package/vale/styles/signs-of-ai-writing/Vocabulary.yml +27 -0
- package/vale/styles/signs-of-ai-writing/meta.json +4 -0
- package/vale/styles/write-good/Cliches.yml +702 -0
- package/vale/styles/write-good/E-Prime.yml +32 -0
- package/vale/styles/write-good/Illusions.yml +11 -0
- package/vale/styles/write-good/LICENSE +21 -0
- package/vale/styles/write-good/Passive.yml +183 -0
- package/vale/styles/write-good/README.md +27 -0
- package/vale/styles/write-good/So.yml +5 -0
- package/vale/styles/write-good/ThereIs.yml +6 -0
- package/vale/styles/write-good/TooWordy.yml +221 -0
- package/vale/styles/write-good/Weasel.yml +29 -0
- package/vale/styles/write-good/meta.json +4 -0
- package/vale/vale.ini +38 -0
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
---
|
|
2
|
+
extends: existence
|
|
3
|
+
message: "AI fingerprint: '%s'. Rewrite with concrete specifics instead of this clichéd phrase."
|
|
4
|
+
level: error
|
|
5
|
+
ignorecase: true
|
|
6
|
+
tokens:
|
|
7
|
+
- rich tapestry
|
|
8
|
+
- rich tapestries
|
|
9
|
+
- tapestry of
|
|
10
|
+
- intricate tapestry
|
|
11
|
+
- complex and multifaceted
|
|
12
|
+
- multifaceted and complex
|
|
13
|
+
- intricate interplay
|
|
14
|
+
- delicate balance
|
|
15
|
+
- delicate interplay
|
|
16
|
+
- dynamic interplay
|
|
17
|
+
- crucial role
|
|
18
|
+
- played a crucial role
|
|
19
|
+
- plays a crucial role
|
|
20
|
+
- vital role
|
|
21
|
+
- pivotal role
|
|
22
|
+
- key role
|
|
23
|
+
- instrumental role
|
|
24
|
+
- cutting-edge
|
|
25
|
+
- game-changer
|
|
26
|
+
- game-changing
|
|
27
|
+
- paradigm shift
|
|
28
|
+
- sea change
|
|
29
|
+
- tipping point
|
|
30
|
+
- watershed moment
|
|
31
|
+
- double-edged sword
|
|
32
|
+
- slippery slope
|
|
33
|
+
- tip of the iceberg
|
|
34
|
+
- at the forefront
|
|
35
|
+
- on the cutting edge
|
|
36
|
+
- paving the way
|
|
37
|
+
- laid the groundwork
|
|
38
|
+
- lays the groundwork
|
|
39
|
+
- sets the stage
|
|
40
|
+
- set the stage
|
|
41
|
+
- a testament to
|
|
42
|
+
- stands as a testament
|
|
43
|
+
- serve as a reminder
|
|
44
|
+
- serves as a reminder
|
|
45
|
+
- it remains to be seen
|
|
46
|
+
- only time will tell
|
|
47
|
+
- the jury is still out
|
|
48
|
+
- takes center stage
|
|
49
|
+
- take center stage
|
|
50
|
+
- took center stage
|
|
51
|
+
- paints a picture of
|
|
52
|
+
- paint a picture of
|
|
53
|
+
- painted a picture of
|
|
54
|
+
- is not without its challenges
|
|
55
|
+
- are not without their challenges
|
|
56
|
+
- is not without challenges
|
|
57
|
+
- whether we like it or not
|
|
58
|
+
- whether you like it or not
|
|
59
|
+
- a cornerstone of
|
|
60
|
+
- the transformative power of
|
|
61
|
+
- deeply rooted in
|
|
62
|
+
- deeply rooted
|
|
63
|
+
- the hallmark of
|
|
64
|
+
- a hallmark of
|
|
65
|
+
- moving the needle
|
|
66
|
+
- moves the needle
|
|
67
|
+
- moved the needle
|
|
68
|
+
- move the needle
|
|
69
|
+
- nudge the needle
|
|
70
|
+
- nudges the needle
|
|
71
|
+
- nudged the needle
|
|
72
|
+
- unlocks new
|
|
73
|
+
- unlocked new
|
|
74
|
+
- unlocking new
|
|
75
|
+
- unlock new
|
|
76
|
+
- unlocks the potential
|
|
77
|
+
- unlock the potential
|
|
78
|
+
- unlocks the power
|
|
79
|
+
- unlock the power
|
|
80
|
+
- unlocks the value
|
|
81
|
+
- unlock the value
|
|
82
|
+
- unlocks capabilities
|
|
83
|
+
- unlock capabilities
|
|
84
|
+
- unlocks possibilities
|
|
85
|
+
- unlock possibilities
|
|
86
|
+
|
|
87
|
+
# "real" as intensifier before an abstract noun.
|
|
88
|
+
# AI reaches for "a real choice" / "a real difference" to inflate
|
|
89
|
+
# weight where a plain noun would do. Bare "real" is too broad
|
|
90
|
+
# (real-time, real estate, real world), so this is enumerated.
|
|
91
|
+
- a real choice
|
|
92
|
+
- a real option
|
|
93
|
+
- a real difference
|
|
94
|
+
- a real test
|
|
95
|
+
- a real question
|
|
96
|
+
- a real chance
|
|
97
|
+
- a real problem
|
|
98
|
+
- a real shot
|
|
99
|
+
- a real risk
|
|
100
|
+
- a real cost
|
|
101
|
+
- a real benefit
|
|
102
|
+
- real value
|
|
103
|
+
- real progress
|
|
104
|
+
- real flexibility
|
|
105
|
+
- real benefits
|
|
106
|
+
- real costs
|
|
107
|
+
- real impact
|
|
108
|
+
- real leverage
|
|
109
|
+
- real ownership
|
|
110
|
+
- real accountability
|
|
111
|
+
- real consequences
|
|
112
|
+
- real tradeoffs
|
|
113
|
+
- real trade-offs
|
|
114
|
+
- real choices
|
|
115
|
+
- real options
|
|
116
|
+
- real differences
|
|
117
|
+
|
|
118
|
+
# Investigation-thread metaphors: AI's preferred way to describe
|
|
119
|
+
# "open questions" or "loose ends." Tutorial-blog tone.
|
|
120
|
+
- threads to pull on
|
|
121
|
+
- thread to pull on
|
|
122
|
+
- threads to pull
|
|
123
|
+
- thread to pull
|
|
124
|
+
- loose threads to pull
|
|
125
|
+
- loose threads to chase
|
|
126
|
+
- another thread to pull
|
|
127
|
+
- more threads to pull
|
|
128
|
+
|
|
129
|
+
# Solidification metaphors: the surface/design/contract "hardens"
|
|
130
|
+
# before some deadline. AI reaches for this constantly when
|
|
131
|
+
# describing in-progress work or pre-release windows.
|
|
132
|
+
# Broad regex catches "before/after X hardens" for any 1-6
|
|
133
|
+
# word X.
|
|
134
|
+
- (?:before|after) [^.,;:!?]{1,40} hardens
|
|
135
|
+
- (?:before|after) [^.,;:!?]{1,40} hardened
|
|
136
|
+
- (?:before|after) [^.,;:!?]{1,40} solidifies
|
|
137
|
+
- (?:before|after) [^.,;:!?]{1,40} solidified
|
|
138
|
+
- (?:before|after) [^.,;:!?]{1,40} ossifies
|
|
139
|
+
- (?:before|after) [^.,;:!?]{1,40} ossified
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
extends: existence
|
|
3
|
+
message: "AI overreach: '%s'. Verify this claim or soften it."
|
|
4
|
+
level: error
|
|
5
|
+
ignorecase: true
|
|
6
|
+
tokens:
|
|
7
|
+
- the only way to
|
|
8
|
+
- the only real solution
|
|
9
|
+
- the only way forward
|
|
10
|
+
- the single most important
|
|
11
|
+
- the most important thing is
|
|
12
|
+
- above all else
|
|
13
|
+
- above everything else
|
|
14
|
+
- more than anything else
|
|
15
|
+
- there is no better
|
|
16
|
+
- there is no other way
|
|
17
|
+
- there can be no doubt
|
|
18
|
+
- make no mistake
|
|
19
|
+
- make no mistake about it
|
|
20
|
+
- there's no denying
|
|
21
|
+
- there is no denying
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
---
|
|
2
|
+
extends: existence
|
|
3
|
+
message: "AI affirmation: '%s'. Cut the flourish and state the point plainly."
|
|
4
|
+
level: error
|
|
5
|
+
tokens:
|
|
6
|
+
# "And that's [the/what] X" patterns
|
|
7
|
+
- "[Aa]nd that'?s the beauty of it"
|
|
8
|
+
- "[Aa]nd that'?s what makes it [^.!?]+"
|
|
9
|
+
- "[Aa]nd that'?s what makes this [^.!?]+"
|
|
10
|
+
- "[Aa]nd that'?s exactly (?:what|why|how) [^.!?]+"
|
|
11
|
+
- "[Aa]nd that'?s the (?:key|real|true) [^.!?]+"
|
|
12
|
+
- "[Aa]nd that'?s precisely (?:what|why|how) [^.!?]+"
|
|
13
|
+
|
|
14
|
+
# "That's the X" standalone affirmations
|
|
15
|
+
- "[Tt]hat'?s the key (?:insight|takeaway|point|difference)"
|
|
16
|
+
- "[Tt]hat'?s the beauty of [^.!?]+"
|
|
17
|
+
- "[Tt]hat'?s the power of [^.!?]+"
|
|
18
|
+
- "[Tt]hat'?s the magic of [^.!?]+"
|
|
19
|
+
- "[Tt]hat'?s the essence of [^.!?]+"
|
|
20
|
+
- "[Tt]hat'?s the heart of [^.!?]+"
|
|
21
|
+
- "[Tt]hat'?s the crux of [^.!?]+"
|
|
22
|
+
- "[Tt]hat'?s the real (?:question|issue|challenge|opportunity)"
|
|
23
|
+
|
|
24
|
+
# "This is what X looks like" patterns
|
|
25
|
+
- "[Tt]his is what [^.!?]+ looks like"
|
|
26
|
+
- "[Tt]hat'?s what [^.!?]+ looks like"
|
|
27
|
+
- "[Tt]his is what it means to [^.!?]+"
|
|
28
|
+
- "[Tt]hat'?s what it means to [^.!?]+"
|
|
29
|
+
|
|
30
|
+
# "Here's the thing" and variants
|
|
31
|
+
- "[Hh]ere'?s the thing"
|
|
32
|
+
- "[Hh]ere'?s the deal"
|
|
33
|
+
- "[Hh]ere'?s the truth"
|
|
34
|
+
- "[Hh]ere'?s the reality"
|
|
35
|
+
- "[Hh]ere'?s the kicker"
|
|
36
|
+
- "[Hh]ere'?s the catch"
|
|
37
|
+
- "[Hh]ere'?s the secret"
|
|
38
|
+
- "[Hh]ere'?s what (?:most people|many|few) [^.!?]+"
|
|
39
|
+
- "[Hh]ere'?s why (?:this|that|it) matters"
|
|
40
|
+
|
|
41
|
+
# "The [adjective] X is" revelation patterns
|
|
42
|
+
- "[Tt]he (?:key|fundamental|crucial|core|central|critical|essential|main|primary|underlying|basic|real|true) (?:insight|point|takeaway|lesson|idea|observation|realization|understanding|truth|message|principle) is"
|
|
43
|
+
# "[Adjective] Xs are" revelation patterns (optional article)
|
|
44
|
+
- "(?:[Tt]he )?(?:[Kk]ey|[Ff]undamental|[Cc]rucial|[Cc]ore|[Cc]entral|[Cc]ritical|[Ee]ssential|[Mm]ain|[Pp]rimary|[Uu]nderlying|[Bb]asic|[Rr]eal|[Tt]rue) (?:insights|points|takeaways|lessons|ideas|observations|realizations|understandings|truths|messages|principles) are"
|
|
45
|
+
# Simpler "The X is" patterns
|
|
46
|
+
- "[Tt]he takeaway (?:here )?is [^.!?]+"
|
|
47
|
+
- "[Tt]he lesson (?:here )?is [^.!?]+"
|
|
48
|
+
- "[Tt]he point (?:here )?is [^.!?]+"
|
|
49
|
+
- "[Tt]he insight (?:here )?is [^.!?]+"
|
|
50
|
+
- "[Tt]he bottom line is [^.!?]+"
|
|
51
|
+
|
|
52
|
+
# "And X is [exactly/precisely] what/why" patterns
|
|
53
|
+
- "[Aa]nd (?:this|that) is (?:exactly|precisely) (?:what|why|how) [^.!?]+"
|
|
54
|
+
- "[Aa]nd (?:this|that)'?s (?:exactly|precisely) (?:what|why|how) [^.!?]+"
|
|
55
|
+
|
|
56
|
+
# "Think about it" and "Let that sink in" patterns
|
|
57
|
+
- "[Tt]hink about (?:it|that) for a (?:moment|second)"
|
|
58
|
+
- "[Ll]et that sink in"
|
|
59
|
+
- "[Rr]ead that again"
|
|
60
|
+
- "[Ll]et me say that again"
|
|
61
|
+
|
|
62
|
+
# "X, and that's [rare/powerful/significant]"
|
|
63
|
+
- ", and that'?s (?:rare|powerful|significant|remarkable|important|huge|massive)"
|
|
64
|
+
- "—and that'?s (?:rare|powerful|significant|remarkable|important|huge|massive)"
|
|
65
|
+
|
|
66
|
+
# "The real X is Y" revelation
|
|
67
|
+
- "[Tt]he real (?:secret|trick|key|answer|solution) is [^.!?]+"
|
|
68
|
+
- "[Tt]he real (?:question|issue|problem|challenge) isn'?t [^.!?]+"
|
|
69
|
+
|
|
70
|
+
# "What X really means" patterns
|
|
71
|
+
- "[Ww]hat (?:this|that) really means is [^.!?]+"
|
|
72
|
+
- "[Ww]hat (?:this|that) tells us is [^.!?]+"
|
|
73
|
+
- "[Ww]hat (?:this|that) shows us is [^.!?]+"
|
|
74
|
+
|
|
75
|
+
# "And here's why" / "And here's the thing"
|
|
76
|
+
- "[Aa]nd here'?s (?:why|the thing|the kicker|the catch)"
|
|
77
|
+
- "[Bb]ut here'?s (?:why|the thing|the kicker|the catch)"
|
|
78
|
+
|
|
79
|
+
# "Let me be clear/honest" patterns
|
|
80
|
+
- "[Ll]et me be (?:clear|honest|direct|frank|real)"
|
|
81
|
+
- "[Ll]et'?s be (?:clear|honest|direct|frank|real)"
|
|
82
|
+
- "[Tt]o be (?:clear|honest|direct|frank)"
|
|
83
|
+
|
|
84
|
+
# "Have no doubt" / "Rest assured" patterns
|
|
85
|
+
- "[Hh]ave no doubt"
|
|
86
|
+
- "[Rr]est assured"
|
|
87
|
+
|
|
88
|
+
# "The truth is" patterns
|
|
89
|
+
- "[Tt]he truth is"
|
|
90
|
+
- "[Tt]he reality is"
|
|
91
|
+
- "[Tt]he fact is"
|
|
92
|
+
- "[Tt]he simple truth is"
|
|
93
|
+
- "[Tt]he hard truth is"
|
|
94
|
+
- "[Tt]he uncomfortable truth is"
|
|
95
|
+
|
|
96
|
+
# "Spoiler alert" / meta-commentary
|
|
97
|
+
- "[Ss]poiler alert"
|
|
98
|
+
- "[Pp]lot twist"
|
|
99
|
+
- "[Ff]un fact"
|
|
100
|
+
- "[Pp]ro tip"
|
|
101
|
+
- "[Hh]ot take"
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
extends: existence
|
|
3
|
+
message: "AI announcement heading: '%s'. Cut the heading or rename it to the topic."
|
|
4
|
+
level: error
|
|
5
|
+
ignorecase: true
|
|
6
|
+
scope: heading
|
|
7
|
+
tokens:
|
|
8
|
+
- What You'll Learn
|
|
9
|
+
- What You Will Learn
|
|
10
|
+
- What We'll Cover
|
|
11
|
+
- What We Will Cover
|
|
12
|
+
- What to Expect
|
|
13
|
+
- What We're Building
|
|
14
|
+
- What We Are Building
|
|
15
|
+
- Here's What You'll Get
|
|
16
|
+
- Here's What You Get
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
---
|
|
2
|
+
extends: existence
|
|
3
|
+
message: "AI cliché: '%s'. Say what you mean directly."
|
|
4
|
+
level: error
|
|
5
|
+
ignorecase: true
|
|
6
|
+
tokens:
|
|
7
|
+
# "Earning" family
|
|
8
|
+
- earns? its keep
|
|
9
|
+
- earns? its place
|
|
10
|
+
- earns? its spot
|
|
11
|
+
- earned its keep
|
|
12
|
+
- earned its place
|
|
13
|
+
- earned its spot
|
|
14
|
+
- more than earns?
|
|
15
|
+
|
|
16
|
+
# "Paying" family
|
|
17
|
+
- pays? for itself
|
|
18
|
+
- pays? dividends
|
|
19
|
+
- pays? its rent
|
|
20
|
+
- more than pays? for itself
|
|
21
|
+
- paid for itself
|
|
22
|
+
- paid dividends
|
|
23
|
+
- paid its rent
|
|
24
|
+
- paying its rent
|
|
25
|
+
|
|
26
|
+
# "Weight" family
|
|
27
|
+
- pulls? its weight
|
|
28
|
+
- carries? its weight
|
|
29
|
+
- carrying its weight
|
|
30
|
+
- pulling its weight
|
|
31
|
+
- punche?s? above its weight
|
|
32
|
+
- punching above its weight
|
|
33
|
+
- worth its weight
|
|
34
|
+
|
|
35
|
+
# "Lifting" family
|
|
36
|
+
- does? the heavy lifting
|
|
37
|
+
- does? a lot of heavy lifting
|
|
38
|
+
- doing the heavy lifting
|
|
39
|
+
- doing a lot of heavy lifting
|
|
40
|
+
- does? the legwork
|
|
41
|
+
- doing the legwork
|
|
42
|
+
- do the heavy lifting
|
|
43
|
+
|
|
44
|
+
# "Load-bearing" / "doing work" family.
|
|
45
|
+
- load-bearing
|
|
46
|
+
- load bearing
|
|
47
|
+
- does? the work
|
|
48
|
+
- doing the work
|
|
49
|
+
- does? the real work
|
|
50
|
+
- doing the real work
|
|
51
|
+
- does? the actual work
|
|
52
|
+
- doing the actual work
|
|
53
|
+
- does? the hard work
|
|
54
|
+
- doing the hard work
|
|
55
|
+
- does? the important work
|
|
56
|
+
- doing the important work
|
|
57
|
+
- does? most of the work
|
|
58
|
+
- doing most of the work
|
|
59
|
+
|
|
60
|
+
# "Standing" family
|
|
61
|
+
- stands? on its own
|
|
62
|
+
- standing on its own
|
|
63
|
+
- holds? its own
|
|
64
|
+
- holding its own
|
|
65
|
+
- speaks? for itself
|
|
66
|
+
- speaking for itself
|
|
67
|
+
- justifies? its existence
|
|
68
|
+
- justify its existence
|
|
69
|
+
- justifying its existence
|
|
70
|
+
|
|
71
|
+
# "Deserving" family.
|
|
72
|
+
# Treats abstractions and inanimate subjects as moral agents owed
|
|
73
|
+
# consideration. The gerund shape ("deserves noting", "deserves
|
|
74
|
+
# exploring") is the strongest AI tell — the older idiomatic
|
|
75
|
+
# phrases ("deserves a closer look", "deserves mention") are
|
|
76
|
+
# included for completeness.
|
|
77
|
+
- deserves? attention
|
|
78
|
+
- deserves? mention
|
|
79
|
+
- deserves? mentioning
|
|
80
|
+
- deserves? noting
|
|
81
|
+
- deserves? exploring
|
|
82
|
+
- deserves? unpacking
|
|
83
|
+
- deserves? examining
|
|
84
|
+
- deserves? scrutiny
|
|
85
|
+
- deserves? consideration
|
|
86
|
+
- deserves? careful consideration
|
|
87
|
+
- deserves? careful thought
|
|
88
|
+
- deserves? careful attention
|
|
89
|
+
- deserves? a closer look
|
|
90
|
+
- deserves? a second look
|
|
91
|
+
- deserves? a moment
|
|
92
|
+
- deserves? a mention
|
|
93
|
+
- deserves? credit
|
|
94
|
+
- deserves? confirming
|
|
95
|
+
- deserves? checking
|
|
96
|
+
- deserves? rethinking
|
|
97
|
+
- deserves? revisiting
|
|
98
|
+
|
|
99
|
+
# "Harm" family.
|
|
100
|
+
# Treats inanimate subjects (a check, a config, a flag) as moral
|
|
101
|
+
# agents capable of inflicting or withholding damage — the
|
|
102
|
+
# Hippocratic register applied to code. "The check passes too
|
|
103
|
+
# without doing harm." Technical writing rarely needs it; just say
|
|
104
|
+
# what the change does or doesn't do.
|
|
105
|
+
# NOTE: legitimate in medical / health-software prose ("the device
|
|
106
|
+
# must do no harm"). No regex-clean way to detect that context;
|
|
107
|
+
# disable this rule for those files via .vale.ini if needed.
|
|
108
|
+
- does? harm
|
|
109
|
+
- doing harm
|
|
110
|
+
- does? no harm
|
|
111
|
+
- doing no harm
|
|
112
|
+
- without doing harm
|
|
113
|
+
- causes? harm
|
|
114
|
+
- causing harm
|
|
115
|
+
- without causing harm
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
---
|
|
2
|
+
extends: existence
|
|
3
|
+
message: "AI closing: '%s'. Delete it and end with your actual content."
|
|
4
|
+
level: error
|
|
5
|
+
ignorecase: true
|
|
6
|
+
tokens:
|
|
7
|
+
# "I hope this helps" variants
|
|
8
|
+
- I hope this helps
|
|
9
|
+
- I hope this was helpful
|
|
10
|
+
- I hope this is helpful
|
|
11
|
+
- I hope this proves helpful
|
|
12
|
+
- I hope this will be helpful
|
|
13
|
+
- Hope this helps
|
|
14
|
+
- Hope this was helpful
|
|
15
|
+
- I hope this clears things up
|
|
16
|
+
- I hope this cleared things up
|
|
17
|
+
- I hope this answers your question
|
|
18
|
+
- I hope that answers your question
|
|
19
|
+
- I hope this helps clarify
|
|
20
|
+
- I hope this gives you a better understanding
|
|
21
|
+
- I hope you find this helpful
|
|
22
|
+
- I hope you found this helpful
|
|
23
|
+
- I hope you find this useful
|
|
24
|
+
- I hope you found this useful
|
|
25
|
+
- I hope this is what you were looking for
|
|
26
|
+
- I hope this pointed you in the right direction
|
|
27
|
+
- I hope this sheds some light
|
|
28
|
+
- I hope this makes things clearer
|
|
29
|
+
- Hopefully this helps
|
|
30
|
+
- Hopefully this is helpful
|
|
31
|
+
|
|
32
|
+
# "Feel free to" variants
|
|
33
|
+
- Feel free to ask
|
|
34
|
+
- Feel free to reach out
|
|
35
|
+
- Feel free to let me know
|
|
36
|
+
- Feel free to contact
|
|
37
|
+
- Feel free to ask questions
|
|
38
|
+
- Feel free to ask if you
|
|
39
|
+
- Feel free to ask if there
|
|
40
|
+
- Feel free to drop
|
|
41
|
+
- Please feel free to ask
|
|
42
|
+
- Please feel free to reach out
|
|
43
|
+
|
|
44
|
+
# "Don't hesitate" variants
|
|
45
|
+
- Don't hesitate to ask
|
|
46
|
+
- Don't hesitate to reach out
|
|
47
|
+
- Don't hesitate to contact
|
|
48
|
+
- Don't hesitate to get in touch
|
|
49
|
+
- Don't hesitate to drop
|
|
50
|
+
- Please don't hesitate to ask
|
|
51
|
+
- Please don't hesitate to reach out
|
|
52
|
+
- Please don't hesitate to contact
|
|
53
|
+
|
|
54
|
+
# "Let me know if" variants
|
|
55
|
+
- Let me know if you have any questions
|
|
56
|
+
- Let me know if you have further questions
|
|
57
|
+
- Let me know if you have any other questions
|
|
58
|
+
- Let me know if you have additional questions
|
|
59
|
+
- Let me know if you need anything else
|
|
60
|
+
- Let me know if you need further clarification
|
|
61
|
+
- Let me know if you need any clarification
|
|
62
|
+
- Let me know if you'd like more information
|
|
63
|
+
- Let me know if you'd like me to elaborate
|
|
64
|
+
- Let me know if you'd like me to clarify
|
|
65
|
+
- Let me know if you'd like me to expand
|
|
66
|
+
- Let me know if there's anything else
|
|
67
|
+
- Let me know if there's anything I can help with
|
|
68
|
+
- Let me know if anything is unclear
|
|
69
|
+
- Let me know if that makes sense
|
|
70
|
+
- Let me know if you want me to
|
|
71
|
+
|
|
72
|
+
# "If you have any questions" standalone variants
|
|
73
|
+
- If you have any questions, feel free
|
|
74
|
+
- If you have any further questions
|
|
75
|
+
- If you have any additional questions
|
|
76
|
+
- If you have any more questions
|
|
77
|
+
- If you need any clarification
|
|
78
|
+
- If you need more information
|
|
79
|
+
- If anything is unclear
|
|
80
|
+
- If you'd like more details
|
|
81
|
+
- If you'd like me to elaborate
|
|
82
|
+
- If you want me to expand
|
|
83
|
+
|
|
84
|
+
# "Happy to" variants
|
|
85
|
+
- Happy to help
|
|
86
|
+
- Happy to answer
|
|
87
|
+
- Happy to clarify
|
|
88
|
+
- Happy to elaborate
|
|
89
|
+
- Happy to explain
|
|
90
|
+
- Happy to assist
|
|
91
|
+
- Happy to walk you through
|
|
92
|
+
- I'm happy to help
|
|
93
|
+
- I'd be happy to help
|
|
94
|
+
- I'm happy to clarify
|
|
95
|
+
- I'd be happy to clarify
|
|
96
|
+
- I'm happy to elaborate
|
|
97
|
+
- I'd be happy to elaborate
|
|
98
|
+
- I'm happy to answer
|
|
99
|
+
- I'd be happy to answer
|
|
100
|
+
- I'm happy to walk you through
|
|
101
|
+
- I'd be happy to walk you through
|
|
102
|
+
|
|
103
|
+
# "I'm here to help" variants
|
|
104
|
+
- I'm here to help
|
|
105
|
+
- I'm here if you need
|
|
106
|
+
- I'm here if you have
|
|
107
|
+
- I'm always here to help
|
|
108
|
+
- We're here to help
|
|
109
|
+
- We're always happy to help
|
|
110
|
+
|
|
111
|
+
# Encouragement/well-wishing closers
|
|
112
|
+
- Best of luck
|
|
113
|
+
- Good luck with your
|
|
114
|
+
- Good luck on your
|
|
115
|
+
- You've got this
|
|
116
|
+
- Happy coding
|
|
117
|
+
- Happy learning
|
|
118
|
+
- Happy building
|
|
119
|
+
- Happy exploring
|
|
120
|
+
- Enjoy the journey
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
extends: existence
|
|
3
|
+
message: "AI colloquial assessment: '%s'. State the assessment directly."
|
|
4
|
+
level: error
|
|
5
|
+
nonword: true
|
|
6
|
+
ignorecase: true
|
|
7
|
+
tokens:
|
|
8
|
+
# ==========================================================================
|
|
9
|
+
# "X lands" — figurative landing of jokes, points, arguments, analogies.
|
|
10
|
+
# Anchored to a narrow noun list (and to "really/actually lands"). The broad
|
|
11
|
+
# arrival-verb sense (a request lands on a node, a PR lands in main) lives in
|
|
12
|
+
# FigurativeLands, which exempts these assessment nouns and literal landings.
|
|
13
|
+
# ==========================================================================
|
|
14
|
+
- "[Tt]he (?:joke|point|argument|line|metaphor|analogy|comparison|critique|distinction|observation|framing|insight|takeaway|punchline|callback|bit|reference|callout) (?:really |actually |just |finally )?lands?\\b"
|
|
15
|
+
- "[Tt]he (?:joke|point|argument|line|metaphor|analogy|comparison|critique|distinction|observation|framing|insight|takeaway|punchline|callback|bit|reference|callout) (?:really|actually|just|finally) landed\\b"
|
|
16
|
+
- "\\b(?:really|actually) lands\\b"
|
|
17
|
+
- "\\b(?:really|actually) landed\\b"
|
|
18
|
+
# Figurative "lands" beyond the curated nouns: abstract subjects and
|
|
19
|
+
# assessment completions that can't be a literal landing.
|
|
20
|
+
- "\\bland(?:s|ed)? flat\\b"
|
|
21
|
+
- "\\bwhere (?:it|this|that|everything|the whole thing) (?:really |finally |ultimately |just |all )?lands?\\b"
|
|
22
|
+
|
|
23
|
+
# ==========================================================================
|
|
24
|
+
# "X is the move" — anchored verdict. Bare "the move" is too broad (chess,
|
|
25
|
+
# dance, real-estate), so we only catch the assessment shape.
|
|
26
|
+
# ==========================================================================
|
|
27
|
+
- "\\bis the move\\b"
|
|
28
|
+
- "\\bwas the move\\b"
|
|
29
|
+
- "\\b(?:that|this)'?s the move\\b"
|
|
30
|
+
- "\\b(?:that|this) is the move\\b"
|
|
31
|
+
- "\\bthe right move\\b"
|
|
32
|
+
- "\\bthe smart move\\b"
|
|
33
|
+
- "\\bthe obvious move\\b"
|
|
34
|
+
- "\\bthe play here\\b"
|
|
35
|
+
- "\\bthe move here\\b"
|
|
36
|
+
|
|
37
|
+
# ==========================================================================
|
|
38
|
+
# "What really matters" — the knowing-tone matters phrase. Bare "matters" is
|
|
39
|
+
# ordinary English; this targets the rhetorical wind-up.
|
|
40
|
+
# ==========================================================================
|
|
41
|
+
- "\\bwhat really matters\\b"
|
|
42
|
+
- "\\bwhat truly matters\\b"
|
|
43
|
+
- "\\bwhat actually matters\\b"
|
|
44
|
+
- "\\bwhat genuinely matters\\b"
|
|
45
|
+
- "\\bwhat matters most\\b"
|
|
46
|
+
- "\\ball that (?:really |truly |actually )?matters\\b"
|
|
47
|
+
- "\\bthe only thing that (?:really |truly |actually )?matters\\b"
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
extends: existence
|
|
3
|
+
message: "AI punctuation: '%s'. Lowercase the word after the colon unless it is a proper noun."
|
|
4
|
+
level: error
|
|
5
|
+
nonword: true
|
|
6
|
+
# Replaces Google.Colons, which checks heading text too and flags the title
|
|
7
|
+
# half of "Appendix A: Glossary". Headings are exempt here; everywhere else
|
|
8
|
+
# a capitalized word after a colon is the "Label: Sentence" construction.
|
|
9
|
+
# The lookbehind (from Google's rule) skips a colon preceded by another
|
|
10
|
+
# colon-joined run, so "10:30: Meeting" stays clean. The token also skips
|
|
11
|
+
# acronyms and the pronoun "I", which stay capitalized in any position.
|
|
12
|
+
# Known limitation: Vale strips markup before matching, so a run-in bold
|
|
13
|
+
# label ("**Note:** Like this.") flags too. Disable the rule where that
|
|
14
|
+
# convention is established.
|
|
15
|
+
scope:
|
|
16
|
+
- "~heading"
|
|
17
|
+
tokens:
|
|
18
|
+
- "(?<!:[^ ]+?):\\s(?!I\\b)[A-Z][a-z]*\\b"
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
extends: existence
|
|
3
|
+
message: "AI conclusion: '%s'. Delete this and end on your final point."
|
|
4
|
+
level: error
|
|
5
|
+
ignorecase: true
|
|
6
|
+
tokens:
|
|
7
|
+
- In conclusion
|
|
8
|
+
- In summary
|
|
9
|
+
- To summarize
|
|
10
|
+
- To sum up
|
|
11
|
+
- To conclude
|
|
12
|
+
- In closing
|
|
13
|
+
- Ultimately
|
|
14
|
+
- All in all
|
|
15
|
+
- At the end of the day
|
|
16
|
+
- When all is said and done
|
|
17
|
+
- The bottom line is
|
|
18
|
+
- In the final analysis
|
|
19
|
+
- Taking everything into account
|
|
20
|
+
- Taking all of this into account
|
|
21
|
+
- Overall
|
|
22
|
+
- On the whole
|
|
23
|
+
- By way of conclusion
|