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,74 @@
|
|
|
1
|
+
---
|
|
2
|
+
extends: existence
|
|
3
|
+
message: "AI transition: '%s'. Delete it, or use a simpler connector like 'and', 'but', or 'so'."
|
|
4
|
+
level: error
|
|
5
|
+
ignorecase: true
|
|
6
|
+
tokens:
|
|
7
|
+
- Moreover
|
|
8
|
+
- Furthermore
|
|
9
|
+
- Additionally
|
|
10
|
+
- Consequently
|
|
11
|
+
- Subsequently
|
|
12
|
+
- Nevertheless
|
|
13
|
+
- Nonetheless
|
|
14
|
+
- Conversely
|
|
15
|
+
- Accordingly
|
|
16
|
+
- Hence
|
|
17
|
+
- Thus
|
|
18
|
+
- Therefore
|
|
19
|
+
- Thereby
|
|
20
|
+
- Henceforth
|
|
21
|
+
- Likewise
|
|
22
|
+
- Similarly
|
|
23
|
+
- In addition
|
|
24
|
+
- In contrast
|
|
25
|
+
- On the contrary
|
|
26
|
+
- By contrast
|
|
27
|
+
- As a result
|
|
28
|
+
- For instance
|
|
29
|
+
- For example
|
|
30
|
+
- In particular
|
|
31
|
+
- Specifically
|
|
32
|
+
- Notably
|
|
33
|
+
- Importantly
|
|
34
|
+
- Significantly
|
|
35
|
+
- Crucially
|
|
36
|
+
- Essentially
|
|
37
|
+
- Fundamentally
|
|
38
|
+
- With that in mind
|
|
39
|
+
- With this in mind
|
|
40
|
+
- To that end
|
|
41
|
+
- In turn
|
|
42
|
+
- Building on this
|
|
43
|
+
- Building on that
|
|
44
|
+
- That's why
|
|
45
|
+
- This is why
|
|
46
|
+
- Which is why
|
|
47
|
+
- That's because
|
|
48
|
+
- This is because
|
|
49
|
+
- What's more
|
|
50
|
+
- What is more
|
|
51
|
+
- Not to mention
|
|
52
|
+
- To that point
|
|
53
|
+
- On that note
|
|
54
|
+
- On a related note
|
|
55
|
+
- Case in point
|
|
56
|
+
- A case in point
|
|
57
|
+
- Of note
|
|
58
|
+
- Worth noting
|
|
59
|
+
- Along the same lines
|
|
60
|
+
- In the same vein
|
|
61
|
+
- By extension
|
|
62
|
+
- To top it off
|
|
63
|
+
- That's not all
|
|
64
|
+
- Better yet
|
|
65
|
+
- Even better
|
|
66
|
+
- Equally important
|
|
67
|
+
- Equally crucial
|
|
68
|
+
- Equally significant
|
|
69
|
+
- That is to say
|
|
70
|
+
- In light of this
|
|
71
|
+
- In light of that
|
|
72
|
+
- Given this
|
|
73
|
+
- Given that
|
|
74
|
+
- Given the above
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
extends: existence
|
|
3
|
+
message: "AI growth metaphor: '%s'. Say what literally happens, or disable this rule for medical or nature writing."
|
|
4
|
+
level: error
|
|
5
|
+
nonword: true
|
|
6
|
+
ignorecase: true
|
|
7
|
+
# The startup-as-organism register: a product is conceived, incubated, born, and
|
|
8
|
+
# raised to maturity. The biological-development words are flagged broadly and
|
|
9
|
+
# disable-in-domain (medical, nature, agriculture, parenting) covers their
|
|
10
|
+
# literal senses (an egg incubates, a fledgling is a young bird, a gestation
|
|
11
|
+
# period). The finance and tech-overloaded words (viable, seed, organic) are
|
|
12
|
+
# scoped to their startup phrases so the random seed, a viable option, and
|
|
13
|
+
# organic produce stay clean. "Infancy" is scoped to the metaphor phrase so
|
|
14
|
+
# literal babyhood does not fire.
|
|
15
|
+
tokens:
|
|
16
|
+
# Biological-development words (broad)
|
|
17
|
+
- "\\bincubat(?:e|es|ed|ing|ion|or|ors)\\b"
|
|
18
|
+
- "\\bgestat(?:e|es|ed|ing|ion)\\b"
|
|
19
|
+
- "\\bnascent\\b"
|
|
20
|
+
- "\\bfledglings?\\b"
|
|
21
|
+
- "\\bembryonic\\b"
|
|
22
|
+
- "\\bcultivat(?:e|es|ed|ing)\\b"
|
|
23
|
+
- "\\bnurtur(?:e|es|ed|ing)\\b"
|
|
24
|
+
- "\\bin (?:its|their|the|early|relative|comparative|this) infancy\\b"
|
|
25
|
+
# Finance and tech-overloaded words, scoped to the startup phrase
|
|
26
|
+
- "\\bminimum viable\\b"
|
|
27
|
+
- "\\bseed (?:funding|rounds?|stage|capital|money|investment|financing|investors?|backers?)\\b"
|
|
28
|
+
- "\\borganic growth\\b"
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
---
|
|
2
|
+
extends: existence
|
|
3
|
+
message: "AI hedge: '%s'. Delete this throat-clearing and state your point directly."
|
|
4
|
+
level: error
|
|
5
|
+
ignorecase: true
|
|
6
|
+
tokens:
|
|
7
|
+
- It's important to note that
|
|
8
|
+
- It is important to note that
|
|
9
|
+
- It is important to understand
|
|
10
|
+
- It is important to consider
|
|
11
|
+
- It is important to recognize
|
|
12
|
+
- It is important to acknowledge
|
|
13
|
+
- It is important to emphasize
|
|
14
|
+
- It is important to highlight
|
|
15
|
+
- It is important to mention
|
|
16
|
+
- It's worth noting that
|
|
17
|
+
- It is worth noting that
|
|
18
|
+
- It's worth mentioning that
|
|
19
|
+
- It is worth mentioning that
|
|
20
|
+
- It is worth emphasizing that
|
|
21
|
+
- It is worth highlighting that
|
|
22
|
+
- It is worth pointing out that
|
|
23
|
+
- It is worth remembering that
|
|
24
|
+
- It is essential to note
|
|
25
|
+
- It is essential to understand
|
|
26
|
+
- It is essential to recognize
|
|
27
|
+
- It is essential to acknowledge
|
|
28
|
+
- It is essential to emphasize
|
|
29
|
+
- It is crucial to note
|
|
30
|
+
- It is crucial to understand
|
|
31
|
+
- It is crucial to recognize
|
|
32
|
+
- It is critical to note
|
|
33
|
+
- It is critical to understand
|
|
34
|
+
- It is critical to recognize
|
|
35
|
+
- It is necessary to note
|
|
36
|
+
- It is necessary to understand
|
|
37
|
+
- It is necessary to recognize
|
|
38
|
+
- It should be noted that
|
|
39
|
+
- It should be emphasized that
|
|
40
|
+
- It should be mentioned that
|
|
41
|
+
- It bears mentioning
|
|
42
|
+
- It goes without saying
|
|
43
|
+
- Needless to say
|
|
44
|
+
- Generally speaking
|
|
45
|
+
- Broadly speaking
|
|
46
|
+
- For the most part
|
|
47
|
+
- By and large
|
|
48
|
+
- All things considered
|
|
49
|
+
- That being said
|
|
50
|
+
- That said
|
|
51
|
+
- With that said
|
|
52
|
+
- Having said that
|
|
53
|
+
- On the other hand
|
|
54
|
+
- At the same time
|
|
55
|
+
- To be sure
|
|
56
|
+
- To some extent
|
|
57
|
+
- In some ways
|
|
58
|
+
- In many ways
|
|
59
|
+
- In a sense
|
|
60
|
+
- As such
|
|
61
|
+
- As it were
|
|
62
|
+
- One thing is clear
|
|
63
|
+
- One thing is certain
|
|
64
|
+
- One thing is for sure
|
|
65
|
+
- One thing is for certain
|
|
66
|
+
- This much is clear
|
|
67
|
+
- This much is certain
|
|
68
|
+
- raises important questions
|
|
69
|
+
- raises serious questions
|
|
70
|
+
- raises questions about
|
|
71
|
+
- begs the question
|
|
72
|
+
- forces us to ask
|
|
73
|
+
- forces us to consider
|
|
74
|
+
- invites us to consider
|
|
75
|
+
- invites us to ask
|
|
76
|
+
- invites us to reflect
|
|
77
|
+
- prompts us to ask
|
|
78
|
+
- prompts us to consider
|
|
79
|
+
- calls into question
|
|
80
|
+
- calls on us to
|
|
81
|
+
- reminds us that
|
|
82
|
+
- reminds us of the importance
|
|
83
|
+
- as you might expect
|
|
84
|
+
- as you'd expect
|
|
85
|
+
- as one might expect
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025-2026 Tony Burns
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
extends: existence
|
|
3
|
+
message: "AI list intro: '%s'. Skip the announcement and present the content directly."
|
|
4
|
+
level: error
|
|
5
|
+
ignorecase: true
|
|
6
|
+
tokens:
|
|
7
|
+
- Below you'll find
|
|
8
|
+
- Below you will find
|
|
9
|
+
- Here's a breakdown of
|
|
10
|
+
- Here is a breakdown of
|
|
11
|
+
- Here's an overview of
|
|
12
|
+
- Here is an overview of
|
|
13
|
+
- Here's a summary of
|
|
14
|
+
- Here is a summary of
|
|
15
|
+
- Here's everything you need to know
|
|
16
|
+
- Here is everything you need to know
|
|
17
|
+
- Here's what you need to know about
|
|
18
|
+
- Here is what you need to know about
|
|
19
|
+
- The following sections will
|
|
20
|
+
- The following guide will
|
|
21
|
+
- The following tutorial will
|
|
22
|
+
- The following walkthrough will
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
extends: existence
|
|
3
|
+
message: "AI marketing heading: '%s'. Strip the puffery and name the topic plainly."
|
|
4
|
+
level: error
|
|
5
|
+
ignorecase: true
|
|
6
|
+
scope: heading
|
|
7
|
+
tokens:
|
|
8
|
+
- The Ultimate Guide
|
|
9
|
+
- Everything You Need to Know
|
|
10
|
+
- Mastering
|
|
11
|
+
- Unlocking
|
|
12
|
+
- The Power of
|
|
13
|
+
- The Magic of
|
|
14
|
+
- Why Choose
|
|
15
|
+
- The Future of
|
|
16
|
+
- The Art of
|
|
17
|
+
- The Science of
|
|
18
|
+
- A Game-Changer
|
|
19
|
+
- Revolutionizing
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
---
|
|
2
|
+
extends: existence
|
|
3
|
+
message: "AI metacommentary: '%s'. Delete it or replace it with substantive content."
|
|
4
|
+
level: error
|
|
5
|
+
nonword: true
|
|
6
|
+
scope: raw
|
|
7
|
+
tokens:
|
|
8
|
+
# "This [short noun] matters." - filler bridge sentences
|
|
9
|
+
- "This \\w+ matters\\."
|
|
10
|
+
- "This \\w+ \\w+ matters\\."
|
|
11
|
+
- "This \\w+ \\w+ \\w+ matters\\."
|
|
12
|
+
|
|
13
|
+
# "This matters because" variants
|
|
14
|
+
- "This matters because"
|
|
15
|
+
- "This is important because"
|
|
16
|
+
- "This distinction matters"
|
|
17
|
+
- "This difference matters"
|
|
18
|
+
- "This framing matters"
|
|
19
|
+
- "This choice matters"
|
|
20
|
+
- "This detail matters"
|
|
21
|
+
- "This nuance matters"
|
|
22
|
+
- "This subtlety matters"
|
|
23
|
+
|
|
24
|
+
# "Let me explain" / "Let's explore" throat-clearing
|
|
25
|
+
- "Let me explain"
|
|
26
|
+
- "Let's explore"
|
|
27
|
+
- "Let's examine"
|
|
28
|
+
- "Let's consider"
|
|
29
|
+
- "Let's look at"
|
|
30
|
+
- "Let's break down"
|
|
31
|
+
- "Let's unpack"
|
|
32
|
+
- "Let's dive into"
|
|
33
|
+
|
|
34
|
+
# "The key here is" / "The point is" filler
|
|
35
|
+
- "The key here is"
|
|
36
|
+
- "The point here is"
|
|
37
|
+
- "The idea here is"
|
|
38
|
+
- "The insight here is"
|
|
39
|
+
- "The takeaway here is"
|
|
40
|
+
- "The important thing here is"
|
|
41
|
+
|
|
42
|
+
# "It's worth [verb]ing" hedged assertions
|
|
43
|
+
- "It'?s worth noting"
|
|
44
|
+
- "It'?s worth mentioning"
|
|
45
|
+
- "It'?s worth pointing out"
|
|
46
|
+
- "It'?s worth emphasizing"
|
|
47
|
+
- "It'?s worth highlighting"
|
|
48
|
+
- "It'?s worth remembering"
|
|
49
|
+
|
|
50
|
+
# Bold callout phrases (in markdown)
|
|
51
|
+
- "\\*\\*Key insight:?\\*\\*"
|
|
52
|
+
- "\\*\\*Key takeaway:?\\*\\*"
|
|
53
|
+
- "\\*\\*Key point:?\\*\\*"
|
|
54
|
+
- "\\*\\*Important:?\\*\\*"
|
|
55
|
+
- "\\*\\*Note:?\\*\\*"
|
|
56
|
+
- "\\*\\*Bottom line:?\\*\\*"
|
|
57
|
+
- "\\*\\*The point:?\\*\\*"
|
|
58
|
+
|
|
59
|
+
# "This is the insight/key/point" framing
|
|
60
|
+
- "This is the insight"
|
|
61
|
+
- "This is the key"
|
|
62
|
+
- "This is the point"
|
|
63
|
+
- "This is the takeaway"
|
|
64
|
+
- "This is the crucial"
|
|
65
|
+
- "This is the critical"
|
|
66
|
+
- "This is the important"
|
|
67
|
+
|
|
68
|
+
# "This enables/ensures/allows" consequence statements
|
|
69
|
+
# Includes "This [noun] enables" and "This [noun] [noun] enables" variants
|
|
70
|
+
- "This enables [^.]+\\."
|
|
71
|
+
- "This \\w+ enables [^.]+\\."
|
|
72
|
+
- "This \\w+ \\w+ enables [^.]+\\."
|
|
73
|
+
- "This ensures [^.]+\\."
|
|
74
|
+
- "This \\w+ ensures [^.]+\\."
|
|
75
|
+
- "This allows [^.]+\\."
|
|
76
|
+
- "This \\w+ allows [^.]+\\."
|
|
77
|
+
- "This provides [^.]+\\."
|
|
78
|
+
- "This \\w+ provides [^.]+\\."
|
|
79
|
+
- "This gives you [^.]+\\."
|
|
80
|
+
- "This \\w+ gives you [^.]+\\."
|
|
81
|
+
- "This means [^.]+\\."
|
|
82
|
+
- "This \\w+ means [^.]+\\."
|
|
83
|
+
|
|
84
|
+
# "Understanding X enables/helps you" opener
|
|
85
|
+
- "Understanding [^.]+enables you to [^.]+\\."
|
|
86
|
+
- "Understanding [^.]+helps you [^.]+\\."
|
|
87
|
+
- "Understanding [^.]+allows you to [^.]+\\."
|
|
88
|
+
|
|
89
|
+
# "Real-world" filler
|
|
90
|
+
- "Real-world [a-z]+"
|
|
91
|
+
- "In the real world"
|
|
92
|
+
|
|
93
|
+
# "At its core/heart" framing
|
|
94
|
+
- "At its core"
|
|
95
|
+
- "At its heart"
|
|
96
|
+
- "At its most basic"
|
|
97
|
+
- "At its most basic level"
|
|
98
|
+
- "At its most fundamental"
|
|
99
|
+
- "At its most fundamental level"
|
|
100
|
+
- "At its simplest"
|
|
101
|
+
- "At their core"
|
|
102
|
+
- "At their heart"
|
|
103
|
+
|
|
104
|
+
# "Think of X as" explanatory framing
|
|
105
|
+
- "Think of it as"
|
|
106
|
+
- "Think of this as"
|
|
107
|
+
- "Think of [^.]+as [^.]+\\."
|
|
108
|
+
|
|
109
|
+
# "This is where" pivot phrases
|
|
110
|
+
- "This is where it gets interesting"
|
|
111
|
+
- "This is where things get interesting"
|
|
112
|
+
- "This is where [^.]+ comes in"
|
|
113
|
+
- "That'?s where [^.]+ comes in"
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
---
|
|
2
|
+
extends: existence
|
|
3
|
+
message: "AI mic-drop: '%s'. Integrate the point into the surrounding text or cut it."
|
|
4
|
+
level: error
|
|
5
|
+
nonword: true
|
|
6
|
+
tokens:
|
|
7
|
+
# ==========================================================================
|
|
8
|
+
# Staccato declarations: short punchy sentences AI drops in for dramatic
|
|
9
|
+
# effect. "All four are thin." "It matters." "And it shows."
|
|
10
|
+
#
|
|
11
|
+
# These read like someone slamming a gavel in what should be a calm
|
|
12
|
+
# technical discussion. Human technical writers state facts inline;
|
|
13
|
+
# AI punctuates with mic-drops.
|
|
14
|
+
# ==========================================================================
|
|
15
|
+
|
|
16
|
+
# ---- Pronoun + intransitive verb mic-drops ----
|
|
17
|
+
# "It matters." "This works." "That scales."
|
|
18
|
+
- "(?:It|This|That) matters\\."
|
|
19
|
+
- "(?:It|This|That) works\\."
|
|
20
|
+
- "(?:It|This|That) shows\\."
|
|
21
|
+
- "(?:It|This|That) helps\\."
|
|
22
|
+
- "(?:It|This|That) scales\\."
|
|
23
|
+
- "(?:It|This|That) compounds\\."
|
|
24
|
+
- "(?:It|This|That) counts\\."
|
|
25
|
+
- "(?:It|This|That) adds up\\."
|
|
26
|
+
- "(?:It|This|That) pays off\\."
|
|
27
|
+
- "(?:It|This|That) depends\\."
|
|
28
|
+
|
|
29
|
+
# ---- Explicit-NP subject + intransitive mic-drop verb ----
|
|
30
|
+
# Same family as the pronoun set above, but with definite or demonstrative
|
|
31
|
+
# noun-phrase subjects instead of bare pronouns. AI punctuates technical
|
|
32
|
+
# discussion with these terminal one-liners.
|
|
33
|
+
# "The unset-versus-bogus distinction matters." "The trust compounds."
|
|
34
|
+
# [\w-] catches hyphenated subjects ("load-bearing", "user-facing").
|
|
35
|
+
- "(?:The|This|That) [\\w-]+(?: [\\w-]+){0,2} (?:matters|compounds|pays off|adds up)\\."
|
|
36
|
+
|
|
37
|
+
# Plural form: "These details matter." "Those choices add up."
|
|
38
|
+
- "(?:These|Those) [\\w-]+(?: [\\w-]+){0,2} (?:matter|compound|pay off|add up)\\."
|
|
39
|
+
|
|
40
|
+
# ---- "This/That/It + copula + adjective" emphatic declarations ----
|
|
41
|
+
# "This is key." "That's intentional." "It was deliberate."
|
|
42
|
+
- "(?:It|This|That)(?:'s| is| was) (?:key|crucial|critical|intentional|deliberate|powerful|elegant|subtle|clean|simple|clear|important|significant|telling|striking|notable|profound|revealing|transformative|remarkable|essential|fundamental|beautiful|paramount|vital|obvious|neat|real|enough)\\."
|
|
43
|
+
- "(?:It|This|That)(?:'s| is| was) (?:by design|on purpose|no accident|no coincidence|worth it|worth noting|not optional)\\."
|
|
44
|
+
|
|
45
|
+
# ---- "They/These/Those + copula + adjective" ----
|
|
46
|
+
# "These are thin." "Those were deliberate."
|
|
47
|
+
- "(?:They|These|Those)(?:'re| are| were) (?:thin|key|crucial|critical|intentional|deliberate|powerful|elegant|subtle|clean|simple|clear|important|significant|telling|striking|notable|profound|essential|vital|obvious|neat|enough)\\."
|
|
48
|
+
|
|
49
|
+
# ---- "The [noun] is [adjective]." short dramatic assessments ----
|
|
50
|
+
# "The result is clean." "The difference is subtle."
|
|
51
|
+
- "The \\w+ (?:is|are|was|were) (?:thin|clean|simple|subtle|clear|key|crucial|critical|intentional|deliberate|powerful|elegant|important|significant|telling|striking|notable|straightforward|profound|revealing|transformative|remarkable|essential|fundamental|beautiful|obvious|neat|real|paramount|vital)\\."
|
|
52
|
+
- "The \\w+ \\w+ (?:is|are|was|were) (?:thin|clean|simple|subtle|clear|key|crucial|critical|intentional|deliberate|powerful|elegant|important|significant|telling|striking|notable|straightforward|profound|revealing|transformative|remarkable|essential|fundamental|beautiful|obvious|neat|real|paramount|vital)\\."
|
|
53
|
+
|
|
54
|
+
# ---- Quantifier/determiner + copula + adjective mic-drops ----
|
|
55
|
+
# Short declarations with a quantifier subject and a single-adjective verdict.
|
|
56
|
+
|
|
57
|
+
# "All [noun] are [adjective]." — "All four are thin." "All three are identical."
|
|
58
|
+
- "All \\w+ (?:are|were) (?:thin|clean|simple|subtle|clear|key|crucial|critical|intentional|deliberate|powerful|elegant|important|significant|telling|striking|notable|straightforward|profound|essential|obvious|neat|identical|interchangeable|equivalent)\\."
|
|
59
|
+
|
|
60
|
+
# "Both [are/noun are] [adjective]." — "Both are thin." "Both layers are thin."
|
|
61
|
+
- "Both (?:are|were) (?:thin|clean|simple|subtle|clear|key|crucial|critical|intentional|deliberate|powerful|elegant|important|significant|telling|notable|straightforward|essential|obvious|identical|interchangeable|equivalent)\\."
|
|
62
|
+
- "Both \\w+ (?:are|were) (?:thin|clean|simple|subtle|clear|key|crucial|critical|intentional|deliberate|powerful|elegant|important|significant|telling|notable|straightforward|essential|obvious|identical|interchangeable|equivalent)\\."
|
|
63
|
+
|
|
64
|
+
# "Each/Every [noun] is [adjective]." — "Each handler is clean." "Every choice is deliberate."
|
|
65
|
+
- "(?:Each|Every) \\w+ (?:is|was) (?:thin|clean|simple|subtle|clear|key|crucial|critical|intentional|deliberate|powerful|elegant|important|significant|telling|striking|notable|straightforward|profound|essential|obvious|neat|identical|independent|self-contained)\\."
|
|
66
|
+
# "Each is [adjective]." — standalone without noun
|
|
67
|
+
- "Each (?:(?:one )?(?:is|was)) (?:thin|clean|simple|subtle|clear|key|crucial|critical|intentional|deliberate|powerful|elegant|important|significant|telling|notable|straightforward|essential|obvious|identical|independent|self-contained)\\."
|
|
68
|
+
|
|
69
|
+
# "Everything/Nothing is [adjective]." — "Everything is intentional." "Nothing is accidental."
|
|
70
|
+
- "Everything (?:is|was) (?:intentional|deliberate|purposeful|connected|composable|explicit|visible|traceable|testable|optional)\\."
|
|
71
|
+
- "Nothing (?:is|was) (?:accidental|random|hidden|implicit|optional|wasted|redundant|superfluous|arbitrary|magical|surprising)\\."
|
|
72
|
+
|
|
73
|
+
# "None are [adjective]." — "None are optional." "None are accidental."
|
|
74
|
+
- "None (?:are|were|is|was) (?:optional|accidental|random|redundant|superfluous|arbitrary|wasted|surprising|hidden|magical)\\."
|
|
75
|
+
|
|
76
|
+
# ---- Antithetical balance: "X changes, Y stays the same." ----
|
|
77
|
+
# Two balanced clauses with change/permanence verb opposition, creating
|
|
78
|
+
# a pithy aphorism. AI reaches for this structure constantly.
|
|
79
|
+
# "The adapter changes, the service call stays the same."
|
|
80
|
+
# "Tools change, principles don't."
|
|
81
|
+
# "Frameworks come and go, fundamentals remain."
|
|
82
|
+
|
|
83
|
+
# Change-verb, then stay-verb (comma / semicolon / em-dash separated)
|
|
84
|
+
- "(?:changes?|evolves?|shifts?|varies|vary|comes? and go(?:es)?)[,;—] (?:the |a |an )?(?:\\w+ ){0,4}(?:stays? the same|remains?(?: the same)?|holds?|persists?|endures?|(?:doesn't|don't) change)\\."
|
|
85
|
+
|
|
86
|
+
# Stay-verb, then change-verb (reverse order)
|
|
87
|
+
- "(?:stays? the same|remains?(?: the same)?|holds?|persists?|endures?)[,;—] (?:the |a |an )?(?:\\w+ ){0,4}(?:changes?|evolves?|shifts?|varies|vary|comes? and go(?:es)?)\\."
|
|
88
|
+
|
|
89
|
+
# Period-separated: "Tools change. Principles don't."
|
|
90
|
+
- "(?:changes?|evolves?|shifts?|varies|vary)\\. [A-Z](?:\\w+ ){0,3}(?:stays? the same|remains?|holds?|persists?|endures?|(?:doesn't|don't) change)\\."
|
|
91
|
+
- "(?:stays? the same|remains?|holds?|persists?|endures?)\\. [A-Z](?:\\w+ ){0,3}(?:changes?|evolves?|shifts?|varies|vary)\\."
|
|
92
|
+
|
|
93
|
+
# ---- Verbless fragment mic-drops ----
|
|
94
|
+
# Short sentences with no main verb, used as paragraph closers.
|
|
95
|
+
# Distinct from the copula patterns above — these have no verb at all.
|
|
96
|
+
|
|
97
|
+
# Bare adjective list fragments: "Simple, predictable, testable."
|
|
98
|
+
- "(?:Pure|Clean|Simple|Clear|Fast|Small|Thin|Lean|Cheap|Safe|Flat|Sane|Strict|Minimal|Explicit|Composable|Predictable|Testable|Readable|Maintainable|Reproducible|Intentional|Deliberate|Declarative|Idiomatic|Immutable|Ergonomic|Deterministic|Straightforward|Opinionated), (?:\\w+, )*(?:and )?\\w+\\."
|
|
99
|
+
|
|
100
|
+
# Parallel noun-phrase fragment pairs: "Clean separation, clear ownership."
|
|
101
|
+
- "(?:Clean|Clear|Pure|Simple|Single|One|Zero|Full|Same|Thin|Flat|Strict|Minimal|Explicit|Complete|Total|Direct|Separate) \\w+, (?:clean|clear|pure|simple|single|one|zero|full|same|thin|flat|strict|minimal|explicit|complete|total|direct|separate|different|no|fewer?) \\w+\\."
|
|
102
|
+
|
|
103
|
+
# Comparative-adjective balanced fragments:
|
|
104
|
+
# "Stronger isolation, more lifecycle machinery."
|
|
105
|
+
# "Faster delivery, fewer surprises."
|
|
106
|
+
# Comparative adjective + 1-2 word noun, paired with another
|
|
107
|
+
# comparative + noun. The balanced tradeoff aphorism shape.
|
|
108
|
+
- "(?:Stronger|Weaker|Faster|Slower|Better|Worse|Cleaner|Simpler|Smaller|Larger|Bigger|Higher|Lower|Tighter|Looser|Smoother|Newer|Older|Richer|Leaner|Safer|Saner|More|Less|Fewer) [\\w-]+(?: [\\w-]+)?, (?:stronger|weaker|faster|slower|better|worse|cleaner|simpler|smaller|larger|bigger|higher|lower|tighter|looser|smoother|newer|older|richer|leaner|safer|saner|more|less|fewer) [\\w-]+(?: [\\w-]+)?\\."
|
|
109
|
+
|
|
110
|
+
# "Just/Pure/Clean + noun" standalone fragments: "Pure orchestration." "Just data."
|
|
111
|
+
- "(?:Just|Pure|Clean|Plain|Bare|Raw|Straight|Strict|Simple|Mere) \\w+\\."
|
|
112
|
+
|
|
113
|
+
# "Just X, nothing more/else" closers: "Just data, nothing more."
|
|
114
|
+
- "Just \\w+, nothing (?:more|else|fancy|special|clever)\\."
|
|
115
|
+
|
|
116
|
+
# Fragment + dramatic qualifier spliced with "and":
|
|
117
|
+
# "Pure orchestration, and the one package that imports from all layers."
|
|
118
|
+
- "(?:Pure|Clean|Just|Simple|Plain|Bare|Raw|Mere|Thin|Flat) \\w+, and [^.]+\\."
|
|
119
|
+
|
|
120
|
+
# Terse prepositional callback: "With PostgreSQL, one."
|
|
121
|
+
# A telegraphic fragment that only makes sense as a parallel to the
|
|
122
|
+
# preceding sentence. The single-word answer is the mic-drop.
|
|
123
|
+
- "With \\w+(?:[ -]\\w+)?, \\w+\\."
|
|
124
|
+
|
|
125
|
+
# ---- Dramatic codas: "And [short clause]." ----
|
|
126
|
+
# "And it shows." "And that's okay."
|
|
127
|
+
- "And it shows\\."
|
|
128
|
+
- "And it works\\."
|
|
129
|
+
- "And it matters\\."
|
|
130
|
+
- "And it helps\\."
|
|
131
|
+
- "And it scales\\."
|
|
132
|
+
- "And that'?s okay\\."
|
|
133
|
+
- "And that'?s fine\\."
|
|
134
|
+
- "And that'?s enough\\."
|
|
135
|
+
- "And that'?s it\\."
|
|
136
|
+
- "And that'?s the point\\."
|
|
137
|
+
|
|
138
|
+
# ---- "Full stop" / "Period" as emphasis ----
|
|
139
|
+
- "Full stop\\."
|
|
140
|
+
- "[Pp]eriod\\."
|
|
141
|
+
|
|
142
|
+
# ---- Contrastive fragment mic-drops ----
|
|
143
|
+
# "X, not Y." — contrastive fragment with no verb
|
|
144
|
+
# "Dense, not cramped." "Fast, not sloppy." "Opinionated, not rigid."
|
|
145
|
+
- "[A-Z][a-z]+, not [a-z]+\\."
|
|
146
|
+
- "[A-Z][a-z]+, never [a-z]+\\."
|
|
147
|
+
|
|
148
|
+
# Bare "Not X." / "No X." standalone fragment: "Not now."
|
|
149
|
+
# "No singleton." AI deploys these as one-word verdicts — a tiny
|
|
150
|
+
# period-bound answer that the surrounding prose pretends to be
|
|
151
|
+
# responding to. The broader regex catches both negation forms
|
|
152
|
+
# with any single-word tail. Some conversational fragments
|
|
153
|
+
# ("No idea.", "No way.", "Not bad.") fire too; acceptable for
|
|
154
|
+
# an error-level rule in technical-doc contexts.
|
|
155
|
+
- "Not? \\w+\\."
|
|
156
|
+
|
|
157
|
+
# Verb-led contrastive: the extended-sentence remediation cheat
|
|
158
|
+
# that appears after the bare-fragment form above gets flagged.
|
|
159
|
+
# "Isolation here stays logical, not physical."
|
|
160
|
+
# "The output reads clean, not cluttered."
|
|
161
|
+
# "Code becomes declarative, not imperative."
|
|
162
|
+
# Subject is 1-3 words; the linking-ish verb list mirrors the
|
|
163
|
+
# copula sense ("X stays/remains/becomes Y" = "X is Y").
|
|
164
|
+
- "[A-Z][a-z]+(?: \\w+){0,2} (?:stays?|remains?|becomes?|feels?|reads?|seems?|sounds?|looks?|appears?|grows?|ends? up|comes? across) [a-z-]+, not [a-z-]+\\."
|
|
165
|
+
- "[A-Z][a-z]+(?: \\w+){0,2} (?:stays?|remains?|becomes?|feels?|reads?|seems?|sounds?|looks?|appears?|grows?|ends? up|comes? across) [a-z-]+, never [a-z-]+\\."
|
|
166
|
+
|
|
167
|
+
# Verb-led contrastive with non-linking verbs + noun objects:
|
|
168
|
+
# "They share a contract, not code."
|
|
169
|
+
# "Custom signals belong in stderr text, not in the exit number."
|
|
170
|
+
# Different shape from the linking-verb family above — the object
|
|
171
|
+
# is a noun phrase rather than an adjective.
|
|
172
|
+
- "[A-Z][a-z]+(?: \\w+){0,2} (?:shares?|keeps?|holds?|lives?|belongs?|sits?|points?|goes|go|gives?|takes?) (?:(?:in|on|to|at|with|for) )?[\\w-]+(?: [\\w-]+){0,3}, not (?:(?:in|on|to|at|with|for) )?[\\w-]+(?: [\\w-]+){0,3}[.:]"
|
|
173
|
+
|
|
174
|
+
# "X over Y." — preference fragment
|
|
175
|
+
# "Clarity over cleverness." "Depth over breadth."
|
|
176
|
+
- "[A-Z][a-z]+ over [a-z]+\\."
|
|
177
|
+
|
|
178
|
+
# Comparative aphorism: "X verbs comparative-adjective than Y."
|
|
179
|
+
# "Disk costs less than lost context."
|
|
180
|
+
# "Tests run faster than docs."
|
|
181
|
+
# Concise, sentence-final, AI tutorial-blog tone.
|
|
182
|
+
- "[A-Z][a-z]+(?: \\w+){0,2} \\w+s (?:more|less|fewer|faster|slower|cheaper|cleaner|simpler|safer|tighter|better|worse|larger|smaller|bigger|higher|lower|longer|shorter) than [^.!?]+\\."
|
|
183
|
+
|
|
184
|
+
# "X, not Y, not Z." — extended contrastive
|
|
185
|
+
- "[A-Z][a-z]+, not [a-z]+, not [a-z]+\\."
|
|
186
|
+
|
|
187
|
+
# "X, then Y." — sequencing fragment
|
|
188
|
+
# "Scannable, then readable." "Simple, then fast."
|
|
189
|
+
- "[A-Z][a-z]+, then [a-z]+\\."
|
|
190
|
+
|
|
191
|
+
# "X first, Y second." — priority fragment
|
|
192
|
+
- "[A-Z][a-z]+ first, [a-z]+ second\\."
|
|
193
|
+
- "[A-Z][a-z]+ first, [a-z]+ never\\."
|
|
194
|
+
|
|
195
|
+
# "Verb in the noun." — imperative mic-drop
|
|
196
|
+
# "Invest in the system." "Trust the process." "Ship the thing."
|
|
197
|
+
- "(?:Invest|Trust|Embrace|Ship|Build|Start|Keep|Focus|Lean|Bet|Play|Own|Do) (?:in |on |into )?the [a-z]+\\."
|
|
198
|
+
|
|
199
|
+
# "[Noun] is a [noun]." — categorical declaration as closer
|
|
200
|
+
# "Density is a feature." "Complexity is a choice."
|
|
201
|
+
- "[A-Z][a-z]+ is an? [a-z]+\\."
|
|
202
|
+
|
|
203
|
+
# "the X, not the Y" — tagline gloss after a colon
|
|
204
|
+
# "Implicit positioning: the reference shelf, not the opinion column."
|
|
205
|
+
- ": the [^,]+, not the [^.]+"
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
extends: existence
|
|
3
|
+
message: "AI mic-drop: '%s'. Use a descriptive heading instead."
|
|
4
|
+
level: error
|
|
5
|
+
nonword: true
|
|
6
|
+
scope: heading
|
|
7
|
+
tokens:
|
|
8
|
+
# "X, not Y" / "X, never Y"
|
|
9
|
+
- "[A-Z][a-z]+, not [a-z]+"
|
|
10
|
+
- "[A-Z][a-z]+, never [a-z]+"
|
|
11
|
+
|
|
12
|
+
# "X, then Y"
|
|
13
|
+
- "[A-Z][a-z]+, then [a-z]+"
|
|
14
|
+
|
|
15
|
+
# "X over Y"
|
|
16
|
+
- "[A-Z][a-z]+ over [a-z]+"
|
|
17
|
+
|
|
18
|
+
# "X first, Y second"
|
|
19
|
+
- "[A-Z][a-z]+ first, [a-z]+ second"
|
|
20
|
+
- "[A-Z][a-z]+ first, [a-z]+ never"
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
extends: existence
|
|
3
|
+
message: "AI narrative pivot: '%s'. State your point directly."
|
|
4
|
+
level: error
|
|
5
|
+
ignorecase: true
|
|
6
|
+
tokens:
|
|
7
|
+
- something shifted
|
|
8
|
+
- something changed
|
|
9
|
+
- something clicked
|
|
10
|
+
- something snapped
|
|
11
|
+
- everything changed
|
|
12
|
+
- everything shifted
|
|
13
|
+
- everything clicked
|
|
14
|
+
- and then everything changed
|
|
15
|
+
- and then it clicked
|
|
16
|
+
- and then it hit me
|
|
17
|
+
- that changed everything
|
|
18
|
+
- that changes everything
|
|
19
|
+
- this changes everything
|
|
20
|
+
- this changed everything
|
|
21
|
+
- and that made all the difference
|
|
22
|
+
- and that makes all the difference
|
|
23
|
+
- but then something interesting happened
|
|
24
|
+
- but then something unexpected happened
|
|
25
|
+
- but then I realized
|
|
26
|
+
- and that's when it hit me
|
|
27
|
+
- and that's when I realized
|
|
28
|
+
- it was a turning point
|
|
29
|
+
- it was an inflection point
|
|
30
|
+
- it was a watershed moment
|
|
31
|
+
- it was a game-changer
|
|
32
|
+
- it was a wake-up call
|
|
33
|
+
- a light bulb went off
|
|
34
|
+
- a lightbulb went off
|
|
35
|
+
- the penny dropped
|
|
36
|
+
- it all came together
|
|
37
|
+
- it all made sense
|
|
38
|
+
- things started to click
|
|
39
|
+
- things fell into place
|
|
40
|
+
- changed the game
|
|
41
|
+
- changes the game
|
|
42
|
+
- changing the game
|
|
43
|
+
- change the game
|
|
44
|
+
- changed the game forever
|
|
45
|
+
- changes the game forever
|
|
46
|
+
- changed everything forever
|
|
47
|
+
- changed the landscape
|
|
48
|
+
- changes the landscape
|
|
49
|
+
- rewrote the rules
|
|
50
|
+
- rewrites the rules
|
|
51
|
+
- rewriting the rules
|
|
52
|
+
- rewrote the playbook
|
|
53
|
+
- rewrites the playbook
|
|
54
|
+
- rewriting the playbook
|
|
55
|
+
- flipped the script
|
|
56
|
+
- flips the script
|
|
57
|
+
- flipping the script
|
|
58
|
+
- moved the goalposts
|
|
59
|
+
- shifted the paradigm
|