slopless 0.2.5 → 0.2.6

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 (280) hide show
  1. package/README.md +18 -144
  2. package/dist/adapters/textlint/report.js +51 -0
  3. package/dist/adapters/textlint/report.js.map +1 -0
  4. package/dist/adapters/textlint/units.js +28 -0
  5. package/dist/adapters/textlint/units.js.map +1 -0
  6. package/dist/index.js +4 -0
  7. package/dist/index.js.map +1 -1
  8. package/dist/presets/everything.js +8 -1
  9. package/dist/presets/everything.js.map +1 -1
  10. package/dist/registries/academic-slop.js +5 -0
  11. package/dist/registries/academic-slop.js.map +1 -0
  12. package/dist/registries/metrics.js +6 -6
  13. package/dist/registries/metrics.js.map +1 -1
  14. package/dist/registries/narrative-slop.js +11 -0
  15. package/dist/registries/narrative-slop.js.map +1 -0
  16. package/dist/registries/orthography.js +6 -6
  17. package/dist/registries/orthography.js.map +1 -1
  18. package/dist/registries/phrases.js +13 -9
  19. package/dist/registries/phrases.js.map +1 -1
  20. package/dist/registries/semantic-thinness.js +1 -1
  21. package/dist/registries/semantic-thinness.js.map +1 -1
  22. package/dist/registries/syntactic-patterns/authority.js +1 -1
  23. package/dist/registries/syntactic-patterns/authority.js.map +1 -1
  24. package/dist/registries/syntactic-patterns/closers.js +4 -4
  25. package/dist/registries/syntactic-patterns/closers.js.map +1 -1
  26. package/dist/registries/syntactic-patterns/contrast.js +3 -3
  27. package/dist/registries/syntactic-patterns/contrast.js.map +1 -1
  28. package/dist/registries/syntactic-patterns/generalization.js +2 -2
  29. package/dist/registries/syntactic-patterns/generalization.js.map +1 -1
  30. package/dist/registries/syntactic-patterns/lead-ins.js +5 -5
  31. package/dist/registries/syntactic-patterns/lead-ins.js.map +1 -1
  32. package/dist/registries/syntactic-patterns/llm-artifacts.js +1 -1
  33. package/dist/registries/syntactic-patterns/llm-artifacts.js.map +1 -1
  34. package/dist/registries/syntactic-patterns/repetition.js +4 -4
  35. package/dist/registries/syntactic-patterns/repetition.js.map +1 -1
  36. package/dist/registries/term-policy.js +2 -2
  37. package/dist/registries/term-policy.js.map +1 -1
  38. package/dist/registries/words.js +4 -4
  39. package/dist/registries/words.js.map +1 -1
  40. package/dist/reporting/reports.js +92 -0
  41. package/dist/reporting/reports.js.map +1 -0
  42. package/dist/reporting/types.js +2 -0
  43. package/dist/reporting/types.js.map +1 -0
  44. package/dist/rules/academic-slop/data/tortured-phrases.json +8 -0
  45. package/dist/rules/academic-slop/tortured-phrases.js +27 -0
  46. package/dist/rules/academic-slop/tortured-phrases.js.map +1 -0
  47. package/dist/{families → rules}/metrics/avg-sentence-length.js +8 -4
  48. package/dist/rules/metrics/avg-sentence-length.js.map +1 -0
  49. package/dist/{families → rules}/metrics/coleman-liau.js +8 -4
  50. package/dist/rules/metrics/coleman-liau.js.map +1 -0
  51. package/dist/{families → rules}/metrics/flesch-kincaid.js +8 -4
  52. package/dist/rules/metrics/flesch-kincaid.js.map +1 -0
  53. package/dist/{families → rules}/metrics/gunning-fog.js +8 -4
  54. package/dist/rules/metrics/gunning-fog.js.map +1 -0
  55. package/dist/rules/metrics/paragraph-length.js +25 -0
  56. package/dist/rules/metrics/paragraph-length.js.map +1 -0
  57. package/dist/{families → rules}/metrics/word-repetition.js +8 -4
  58. package/dist/rules/metrics/word-repetition.js.map +1 -0
  59. package/dist/rules/narrative-slop/body-action-density.js +198 -0
  60. package/dist/rules/narrative-slop/body-action-density.js.map +1 -0
  61. package/dist/rules/narrative-slop/data/narrative-cliches.json +134 -0
  62. package/dist/rules/narrative-slop/flat-action-cadence.js +322 -0
  63. package/dist/rules/narrative-slop/flat-action-cadence.js.map +1 -0
  64. package/dist/rules/narrative-slop/narrative-cliches.js +46 -0
  65. package/dist/rules/narrative-slop/narrative-cliches.js.map +1 -0
  66. package/dist/rules/narrative-slop/perception-verb-density.js +84 -0
  67. package/dist/rules/narrative-slop/perception-verb-density.js.map +1 -0
  68. package/dist/{families → rules}/orthography/colon-dramatic.js +11 -7
  69. package/dist/rules/orthography/colon-dramatic.js.map +1 -0
  70. package/dist/{families → rules}/orthography/em-dashes.js +11 -7
  71. package/dist/rules/orthography/em-dashes.js.map +1 -0
  72. package/dist/{families → rules}/orthography/exclamation-density.js +11 -7
  73. package/dist/rules/orthography/exclamation-density.js.map +1 -0
  74. package/dist/{families → rules}/orthography/fake-timestamps.js +11 -7
  75. package/dist/rules/orthography/fake-timestamps.js.map +1 -0
  76. package/dist/{families → rules}/orthography/sentence-case.js +7 -2
  77. package/dist/rules/orthography/sentence-case.js.map +1 -0
  78. package/dist/{families → rules}/orthography/smart-quotes.js +11 -7
  79. package/dist/rules/orthography/smart-quotes.js.map +1 -0
  80. package/dist/rules/phrases/cliches.js +43 -0
  81. package/dist/rules/phrases/cliches.js.map +1 -0
  82. package/dist/rules/phrases/corporate-speak.js +32 -0
  83. package/dist/rules/phrases/corporate-speak.js.map +1 -0
  84. package/dist/rules/phrases/data/cliche-templates.json +20 -0
  85. package/dist/{families → rules}/phrases/data/cliches.json +73 -1
  86. package/dist/rules/phrases/data/corporate-abstraction-patterns.json +80 -0
  87. package/dist/{families → rules}/phrases/data/corporate-speak.json +0 -3
  88. package/dist/rules/phrases/data/llm-disclaimer-expansions.json +4 -0
  89. package/dist/{families → rules}/phrases/data/prohibited-phrases.json +0 -1
  90. package/dist/rules/phrases/data/redundancy-patterns.json +74 -0
  91. package/dist/rules/phrases/data/wordiness-patterns.json +53 -0
  92. package/dist/rules/phrases/humble-bragger.js +30 -0
  93. package/dist/rules/phrases/humble-bragger.js.map +1 -0
  94. package/dist/{families → rules}/phrases/jargon-faker.js +11 -7
  95. package/dist/rules/phrases/jargon-faker.js.map +1 -0
  96. package/dist/{families → rules}/phrases/llm-disclaimer.js +21 -8
  97. package/dist/rules/phrases/llm-disclaimer.js.map +1 -0
  98. package/dist/rules/phrases/prohibited-phrases.js +27 -0
  99. package/dist/rules/phrases/prohibited-phrases.js.map +1 -0
  100. package/dist/rules/phrases/redundancy.js +27 -0
  101. package/dist/rules/phrases/redundancy.js.map +1 -0
  102. package/dist/{families → rules}/phrases/skunked-terms.js +8 -4
  103. package/dist/rules/phrases/skunked-terms.js.map +1 -0
  104. package/dist/{families → rules}/phrases/uncomparables.js +8 -4
  105. package/dist/rules/phrases/uncomparables.js.map +1 -0
  106. package/dist/rules/phrases/wordiness.js +27 -0
  107. package/dist/rules/phrases/wordiness.js.map +1 -0
  108. package/dist/rules/semantic-thinness/patterns/abstract-personification-line.json +23 -0
  109. package/dist/rules/semantic-thinness/patterns/emotion-as-substance.json +95 -0
  110. package/dist/rules/semantic-thinness/patterns/fixed-metaphor-frame.json +32 -0
  111. package/dist/rules/semantic-thinness/patterns/sensory-instead-of-frame.json +40 -0
  112. package/dist/rules/semantic-thinness/patterns/summary-fog-transition.json +30 -0
  113. package/dist/{families → rules}/semantic-thinness/private/pattern-data-a.js +2 -0
  114. package/dist/rules/semantic-thinness/private/pattern-data-a.js.map +1 -0
  115. package/dist/rules/semantic-thinness/private/pattern-data-b.js.map +1 -0
  116. package/dist/rules/semantic-thinness/private/pattern-data-c.js +17 -0
  117. package/dist/rules/semantic-thinness/private/pattern-data-c.js.map +1 -0
  118. package/dist/rules/semantic-thinness/private/pattern-data-d.js.map +1 -0
  119. package/dist/rules/semantic-thinness/private/pattern-data.js.map +1 -0
  120. package/dist/rules/semantic-thinness/private/pattern-matcher.js.map +1 -0
  121. package/dist/{families → rules}/semantic-thinness/semantic-thinness.js +11 -7
  122. package/dist/rules/semantic-thinness/semantic-thinness.js.map +1 -0
  123. package/dist/{families → rules}/syntactic-patterns/authority/authority-padding.js +11 -7
  124. package/dist/rules/syntactic-patterns/authority/authority-padding.js.map +1 -0
  125. package/dist/{families → rules}/syntactic-patterns/closers/affirmation-closers.js +20 -13
  126. package/dist/rules/syntactic-patterns/closers/affirmation-closers.js.map +1 -0
  127. package/dist/{families → rules}/syntactic-patterns/closers/boilerplate-conclusion.js +11 -7
  128. package/dist/rules/syntactic-patterns/closers/boilerplate-conclusion.js.map +1 -0
  129. package/dist/{families → rules}/syntactic-patterns/closers/false-question.js +11 -7
  130. package/dist/rules/syntactic-patterns/closers/false-question.js.map +1 -0
  131. package/dist/{families → rules}/syntactic-patterns/closers/summative-closer.js +11 -7
  132. package/dist/rules/syntactic-patterns/closers/summative-closer.js.map +1 -0
  133. package/dist/{families → rules}/syntactic-patterns/contrast/blame-reframe.js +11 -7
  134. package/dist/rules/syntactic-patterns/contrast/blame-reframe.js.map +1 -0
  135. package/dist/{families → rules}/syntactic-patterns/contrast/contrastive-aphorism.js +10 -7
  136. package/dist/rules/syntactic-patterns/contrast/contrastive-aphorism.js.map +1 -0
  137. package/dist/rules/syntactic-patterns/contrast/negation-reframe.js +24 -0
  138. package/dist/rules/syntactic-patterns/contrast/negation-reframe.js.map +1 -0
  139. package/dist/{families → rules}/syntactic-patterns/contrast/private/negation-reframe-matcher.js +22 -5
  140. package/dist/rules/syntactic-patterns/contrast/private/negation-reframe-matcher.js.map +1 -0
  141. package/dist/{families → rules}/syntactic-patterns/contrast/private/negation-reframe-parts.js +55 -0
  142. package/dist/rules/syntactic-patterns/contrast/private/negation-reframe-parts.js.map +1 -0
  143. package/dist/rules/syntactic-patterns/contrast/private/negative-slop-frames.js +103 -0
  144. package/dist/rules/syntactic-patterns/contrast/private/negative-slop-frames.js.map +1 -0
  145. package/dist/{families → rules}/syntactic-patterns/generalization/softening-language.js +11 -7
  146. package/dist/rules/syntactic-patterns/generalization/softening-language.js.map +1 -0
  147. package/dist/{families → rules}/syntactic-patterns/generalization/universalizing-claims.js +11 -7
  148. package/dist/rules/syntactic-patterns/generalization/universalizing-claims.js.map +1 -0
  149. package/dist/{families → rules}/syntactic-patterns/lead-ins/boilerplate-framing.js +11 -7
  150. package/dist/rules/syntactic-patterns/lead-ins/boilerplate-framing.js.map +1 -0
  151. package/dist/{families → rules}/syntactic-patterns/lead-ins/generic-signposting.js +11 -7
  152. package/dist/rules/syntactic-patterns/lead-ins/generic-signposting.js.map +1 -0
  153. package/dist/{families → rules}/syntactic-patterns/lead-ins/lesson-framing.js +11 -7
  154. package/dist/rules/syntactic-patterns/lead-ins/lesson-framing.js.map +1 -0
  155. package/dist/rules/syntactic-patterns/lead-ins/llm-openers.js +28 -0
  156. package/dist/rules/syntactic-patterns/lead-ins/llm-openers.js.map +1 -0
  157. package/dist/{families → rules}/syntactic-patterns/lead-ins/observer-guidance.js +11 -7
  158. package/dist/rules/syntactic-patterns/lead-ins/observer-guidance.js.map +1 -0
  159. package/dist/rules/syntactic-patterns/llm-artifacts/data/response-wrapper-patterns.json +33 -0
  160. package/dist/{families → rules}/syntactic-patterns/llm-artifacts/response-wrapper.js +55 -10
  161. package/dist/rules/syntactic-patterns/llm-artifacts/response-wrapper.js.map +1 -0
  162. package/dist/{families → rules}/syntactic-patterns/repetition/demonstrative-emphasis.js +11 -7
  163. package/dist/rules/syntactic-patterns/repetition/demonstrative-emphasis.js.map +1 -0
  164. package/dist/{families → rules}/syntactic-patterns/repetition/empty-emphasis.js +11 -7
  165. package/dist/rules/syntactic-patterns/repetition/empty-emphasis.js.map +1 -0
  166. package/dist/{families → rules}/syntactic-patterns/repetition/fragment-stacking.js +11 -7
  167. package/dist/rules/syntactic-patterns/repetition/fragment-stacking.js.map +1 -0
  168. package/dist/{families → rules}/syntactic-patterns/repetition/triple-repeat.js +13 -9
  169. package/dist/rules/syntactic-patterns/repetition/triple-repeat.js.map +1 -0
  170. package/dist/{families → rules}/term-policy/recommended-terms.js +8 -4
  171. package/dist/rules/term-policy/recommended-terms.js.map +1 -0
  172. package/dist/{families → rules}/term-policy/required-terms.js +8 -4
  173. package/dist/rules/term-policy/required-terms.js.map +1 -0
  174. package/dist/rules/types.js +2 -0
  175. package/dist/rules/types.js.map +1 -0
  176. package/dist/{families → rules}/words/hedge-stacking.js +11 -7
  177. package/dist/rules/words/hedge-stacking.js.map +1 -0
  178. package/dist/{families → rules}/words/llm-vocabulary.js +8 -4
  179. package/dist/rules/words/llm-vocabulary.js.map +1 -0
  180. package/dist/rules/words/prohibited-words.js +21 -0
  181. package/dist/rules/words/prohibited-words.js.map +1 -0
  182. package/dist/{families → rules}/words/simplicity.js +11 -7
  183. package/dist/rules/words/simplicity.js.map +1 -0
  184. package/dist/shared/matchers/phrases.js +74 -0
  185. package/dist/shared/matchers/phrases.js.map +1 -1
  186. package/package.json +55 -48
  187. package/dist/families/metrics/avg-sentence-length.js.map +0 -1
  188. package/dist/families/metrics/coleman-liau.js.map +0 -1
  189. package/dist/families/metrics/flesch-kincaid.js.map +0 -1
  190. package/dist/families/metrics/gunning-fog.js.map +0 -1
  191. package/dist/families/metrics/paragraph-length.js +0 -21
  192. package/dist/families/metrics/paragraph-length.js.map +0 -1
  193. package/dist/families/metrics/word-repetition.js.map +0 -1
  194. package/dist/families/orthography/colon-dramatic.js.map +0 -1
  195. package/dist/families/orthography/em-dashes.js.map +0 -1
  196. package/dist/families/orthography/exclamation-density.js.map +0 -1
  197. package/dist/families/orthography/fake-timestamps.js.map +0 -1
  198. package/dist/families/orthography/sentence-case.js.map +0 -1
  199. package/dist/families/orthography/smart-quotes.js.map +0 -1
  200. package/dist/families/phrases/cliches.js +0 -17
  201. package/dist/families/phrases/cliches.js.map +0 -1
  202. package/dist/families/phrases/corporate-speak.js +0 -23
  203. package/dist/families/phrases/corporate-speak.js.map +0 -1
  204. package/dist/families/phrases/humble-bragger.js +0 -26
  205. package/dist/families/phrases/humble-bragger.js.map +0 -1
  206. package/dist/families/phrases/jargon-faker.js.map +0 -1
  207. package/dist/families/phrases/llm-disclaimer.js.map +0 -1
  208. package/dist/families/phrases/prohibited-phrases.js +0 -17
  209. package/dist/families/phrases/prohibited-phrases.js.map +0 -1
  210. package/dist/families/phrases/skunked-terms.js.map +0 -1
  211. package/dist/families/phrases/uncomparables.js.map +0 -1
  212. package/dist/families/semantic-thinness/private/pattern-data-a.js.map +0 -1
  213. package/dist/families/semantic-thinness/private/pattern-data-b.js.map +0 -1
  214. package/dist/families/semantic-thinness/private/pattern-data-c.js +0 -9
  215. package/dist/families/semantic-thinness/private/pattern-data-c.js.map +0 -1
  216. package/dist/families/semantic-thinness/private/pattern-data-d.js.map +0 -1
  217. package/dist/families/semantic-thinness/private/pattern-data.js.map +0 -1
  218. package/dist/families/semantic-thinness/private/pattern-matcher.js.map +0 -1
  219. package/dist/families/semantic-thinness/semantic-thinness.js.map +0 -1
  220. package/dist/families/syntactic-patterns/authority/authority-padding.js.map +0 -1
  221. package/dist/families/syntactic-patterns/closers/affirmation-closers.js.map +0 -1
  222. package/dist/families/syntactic-patterns/closers/boilerplate-conclusion.js.map +0 -1
  223. package/dist/families/syntactic-patterns/closers/false-question.js.map +0 -1
  224. package/dist/families/syntactic-patterns/closers/summative-closer.js.map +0 -1
  225. package/dist/families/syntactic-patterns/contrast/blame-reframe.js.map +0 -1
  226. package/dist/families/syntactic-patterns/contrast/contrastive-aphorism.js.map +0 -1
  227. package/dist/families/syntactic-patterns/contrast/negation-reframe.js +0 -20
  228. package/dist/families/syntactic-patterns/contrast/negation-reframe.js.map +0 -1
  229. package/dist/families/syntactic-patterns/contrast/private/negation-reframe-matcher.js.map +0 -1
  230. package/dist/families/syntactic-patterns/contrast/private/negation-reframe-parts.js.map +0 -1
  231. package/dist/families/syntactic-patterns/generalization/softening-language.js.map +0 -1
  232. package/dist/families/syntactic-patterns/generalization/universalizing-claims.js.map +0 -1
  233. package/dist/families/syntactic-patterns/lead-ins/boilerplate-framing.js.map +0 -1
  234. package/dist/families/syntactic-patterns/lead-ins/generic-signposting.js.map +0 -1
  235. package/dist/families/syntactic-patterns/lead-ins/lesson-framing.js.map +0 -1
  236. package/dist/families/syntactic-patterns/lead-ins/llm-openers.js +0 -24
  237. package/dist/families/syntactic-patterns/lead-ins/llm-openers.js.map +0 -1
  238. package/dist/families/syntactic-patterns/lead-ins/observer-guidance.js.map +0 -1
  239. package/dist/families/syntactic-patterns/llm-artifacts/response-wrapper.js.map +0 -1
  240. package/dist/families/syntactic-patterns/repetition/demonstrative-emphasis.js.map +0 -1
  241. package/dist/families/syntactic-patterns/repetition/empty-emphasis.js.map +0 -1
  242. package/dist/families/syntactic-patterns/repetition/fragment-stacking.js.map +0 -1
  243. package/dist/families/syntactic-patterns/repetition/triple-repeat.js.map +0 -1
  244. package/dist/families/term-policy/recommended-terms.js.map +0 -1
  245. package/dist/families/term-policy/required-terms.js.map +0 -1
  246. package/dist/families/words/hedge-stacking.js.map +0 -1
  247. package/dist/families/words/llm-vocabulary.js.map +0 -1
  248. package/dist/families/words/prohibited-words.js +0 -17
  249. package/dist/families/words/prohibited-words.js.map +0 -1
  250. package/dist/families/words/simplicity.js.map +0 -1
  251. /package/dist/{families → rules}/phrases/data/skunked-terms.json +0 -0
  252. /package/dist/{families → rules}/phrases/data/uncomparables.json +0 -0
  253. /package/dist/{families → rules}/semantic-thinness/patterns/abstract-contrast.json +0 -0
  254. /package/dist/{families → rules}/semantic-thinness/patterns/abstract-metaphor-claim.json +0 -0
  255. /package/dist/{families → rules}/semantic-thinness/patterns/body-emotion-shorthand.json +0 -0
  256. /package/dist/{families → rules}/semantic-thinness/patterns/body-knows.json +0 -0
  257. /package/dist/{families → rules}/semantic-thinness/patterns/deictic-summary.json +0 -0
  258. /package/dist/{families → rules}/semantic-thinness/patterns/empty-atmosphere-shift.json +0 -0
  259. /package/dist/{families → rules}/semantic-thinness/patterns/empty-emotional-weather.json +0 -0
  260. /package/dist/{families → rules}/semantic-thinness/patterns/empty-scene-state.json +0 -0
  261. /package/dist/{families → rules}/semantic-thinness/patterns/empty-scene-transition.json +0 -0
  262. /package/dist/{families → rules}/semantic-thinness/patterns/gaze-choreography.json +0 -0
  263. /package/dist/{families → rules}/semantic-thinness/patterns/generic-lesson-extraction.json +0 -0
  264. /package/dist/{families → rules}/semantic-thinness/patterns/generic-pressure-or-stakes.json +0 -0
  265. /package/dist/{families → rules}/semantic-thinness/patterns/generic-realization.json +0 -0
  266. /package/dist/{families → rules}/semantic-thinness/patterns/hollow-significance.json +0 -0
  267. /package/dist/{families → rules}/semantic-thinness/patterns/low-information-physical-blocking.json +0 -0
  268. /package/dist/{families → rules}/semantic-thinness/patterns/point-is-frame.json +0 -0
  269. /package/dist/{families → rules}/semantic-thinness/patterns/real-work-begins.json +0 -0
  270. /package/dist/{families → rules}/semantic-thinness/patterns/silence-as-actor.json +0 -0
  271. /package/dist/{families → rules}/semantic-thinness/patterns/something-shifted.json +0 -0
  272. /package/dist/{families → rules}/semantic-thinness/patterns/truth-answer-moves.json +0 -0
  273. /package/dist/{families → rules}/semantic-thinness/patterns/vague-connective-payoff.json +0 -0
  274. /package/dist/{families → rules}/semantic-thinness/patterns/vague-threshold-change.json +0 -0
  275. /package/dist/{families → rules}/semantic-thinness/private/pattern-data-b.js +0 -0
  276. /package/dist/{families → rules}/semantic-thinness/private/pattern-data-d.js +0 -0
  277. /package/dist/{families → rules}/semantic-thinness/private/pattern-data.js +0 -0
  278. /package/dist/{families → rules}/semantic-thinness/private/pattern-matcher.js +0 -0
  279. /package/dist/{families → rules}/words/data/prohibited-words.json +0 -0
  280. /package/dist/{families → rules}/words/data/simplicity-pairs.json +0 -0
@@ -3,6 +3,7 @@
3
3
  "a clean slate",
4
4
  "a dark and stormy night",
5
5
  "a far cry",
6
+ "a fate worse than death",
6
7
  "a fine kettle of fish",
7
8
  "a loose cannon",
8
9
  "a penny saved is a penny earned",
@@ -13,7 +14,9 @@
13
14
  "add insult to injury",
14
15
  "against all odds",
15
16
  "air your dirty laundry",
17
+ "alas and alack",
16
18
  "all fun and games",
19
+ "all hell broke loose",
17
20
  "all in a day's work",
18
21
  "all talk, no action",
19
22
  "all thumbs",
@@ -30,6 +33,7 @@
30
33
  "as the crow flies",
31
34
  "at loose ends",
32
35
  "at my wits end",
36
+ "at the end of the day",
33
37
  "avoid like the plague",
34
38
  "babe in the woods",
35
39
  "back against the wall",
@@ -39,6 +43,7 @@
39
43
  "bad to the bone",
40
44
  "badge of honor",
41
45
  "bald faced liar",
46
+ "bald-faced lie",
42
47
  "ballpark figure",
43
48
  "banging your head against a brick wall",
44
49
  "baptism by fire",
@@ -60,6 +65,9 @@
60
65
  "better mousetrap",
61
66
  "better safe than sorry",
62
67
  "between a rock and a hard place",
68
+ "between Scylla and Charybdis",
69
+ "between the devil and the deep blue see",
70
+ "betwixt and between",
63
71
  "beyond the pale",
64
72
  "bide your time",
65
73
  "big as life",
@@ -84,8 +92,10 @@
84
92
  "blind ambition",
85
93
  "blind as a bat",
86
94
  "blind leading the blind",
95
+ "blissful ignorance",
87
96
  "blood is thicker than water",
88
97
  "blood sweat and tears",
98
+ "blow a fuse",
89
99
  "blow off steam",
90
100
  "blow your own horn",
91
101
  "blushing bride",
@@ -101,6 +111,7 @@
101
111
  "broad across the beam",
102
112
  "broken record",
103
113
  "brought back to reality",
114
+ "bulk large",
104
115
  "bull by the horns",
105
116
  "bull in a china shop",
106
117
  "burn the midnight oil",
@@ -109,6 +120,7 @@
109
120
  "burst your bubble",
110
121
  "bury the hatchet",
111
122
  "busy as a bee",
123
+ "but that's another story",
112
124
  "by hook or by crook",
113
125
  "call a spade a spade",
114
126
  "called onto the carpet",
@@ -117,10 +129,12 @@
117
129
  "can't cut the mustard",
118
130
  "can't hold a candle to",
119
131
  "case of mistaken identity",
132
+ "cast aspersions",
120
133
  "cat got your tongue",
121
134
  "cat's meow",
122
135
  "caught in the crossfire",
123
136
  "caught red-handed",
137
+ "chase a red herring",
124
138
  "checkered past",
125
139
  "chomping at the bit",
126
140
  "cleanliness is next to godliness",
@@ -130,6 +144,9 @@
130
144
  "cock and bull story",
131
145
  "cold shoulder",
132
146
  "come hell or high water",
147
+ "comparing apples and oranges",
148
+ "compleat",
149
+ "conspicuous by its absence",
133
150
  "cool as a cucumber",
134
151
  "cool, calm, and collected",
135
152
  "cost a king's ransom",
@@ -151,9 +168,11 @@
151
168
  "cute as a button",
152
169
  "cute as a puppy",
153
170
  "cuts to the quick",
171
+ "cutting edge",
154
172
  "dark before the dawn",
155
173
  "day in, day out",
156
174
  "dead as a doornail",
175
+ "decision-making process",
157
176
  "devil is in the details",
158
177
  "dime a dozen",
159
178
  "divide and conquer",
@@ -176,7 +195,9 @@
176
195
  "dressed to kill",
177
196
  "dressed to the nines",
178
197
  "drives me up the wall",
198
+ "dubious distinction",
179
199
  "dull as dishwater",
200
+ "duly authorized",
180
201
  "dyed in the wool",
181
202
  "eagle eye",
182
203
  "ear to the ground",
@@ -191,18 +212,23 @@
191
212
  "every fiber of my being",
192
213
  "everything but the kitchen sink",
193
214
  "eye for an eye",
215
+ "eyes peeled",
194
216
  "face the music",
195
217
  "facts of life",
196
218
  "fair weather friend",
197
219
  "fall by the wayside",
198
220
  "fan the flames",
221
+ "far be it from me",
222
+ "fast and loose",
199
223
  "feast or famine",
200
224
  "feather your nest",
201
225
  "feathered friends",
202
226
  "few and far between",
203
227
  "fifteen minutes of fame",
228
+ "fills the bill",
204
229
  "filthy vermin",
205
230
  "fine kettle of fish",
231
+ "first and foremost",
206
232
  "fish out of water",
207
233
  "fishing for a compliment",
208
234
  "fit as a fiddle",
@@ -216,6 +242,7 @@
216
242
  "fly the coop",
217
243
  "follow your heart",
218
244
  "for all intents and purposes",
245
+ "for free",
219
246
  "for the birds",
220
247
  "for what it's worth",
221
248
  "force of nature",
@@ -234,6 +261,7 @@
234
261
  "get down and dirty",
235
262
  "get the lead out",
236
263
  "get to the bottom of",
264
+ "get with the program",
237
265
  "get your feet wet",
238
266
  "gets my goat",
239
267
  "gilding the lily",
@@ -262,9 +290,11 @@
262
290
  "happy as a lark",
263
291
  "hasn't a clue",
264
292
  "have a nice day",
293
+ "have a short fuse",
265
294
  "have high hopes",
266
295
  "have the last laugh",
267
296
  "haven't got a row to hoe",
297
+ "he's got his hands full",
268
298
  "head honcho",
269
299
  "head over heels",
270
300
  "hear a pin drop",
@@ -275,7 +305,11 @@
275
305
  "high and dry",
276
306
  "high and mighty",
277
307
  "high as a kite",
308
+ "his own worst enemy",
309
+ "his work cut out for him",
278
310
  "hit paydirt",
311
+ "hither and yon",
312
+ "Hobson's choice",
279
313
  "hold your head up high",
280
314
  "hold your horses",
281
315
  "hold your own",
@@ -289,6 +323,7 @@
289
323
  "icing on the cake",
290
324
  "if the shoe fits",
291
325
  "if the shoe were on the other foot",
326
+ "if you catch my drift",
292
327
  "in a jam",
293
328
  "in a jiffy",
294
329
  "in a nutshell",
@@ -296,15 +331,19 @@
296
331
  "in a pinch",
297
332
  "in a word",
298
333
  "in hot water",
334
+ "in the final analysis",
299
335
  "in the gutter",
336
+ "in the last analysis",
300
337
  "in the nick of time",
301
338
  "in the thick of it",
302
339
  "in your dreams",
340
+ "innocent bystander",
303
341
  "it ain't over till the fat lady sings",
304
342
  "it goes without saying",
305
343
  "it takes all kinds",
306
344
  "it takes one to know one",
307
345
  "it's a small world",
346
+ "it's not what you know, it's who you know",
308
347
  "it's only a matter of time",
309
348
  "ivory tower",
310
349
  "Jack of all trades",
@@ -390,12 +429,14 @@
390
429
  "low man on the totem pole",
391
430
  "luck of the draw",
392
431
  "luck of the Irish",
432
+ "make a mockery of",
393
433
  "make hay while the sun shines",
394
434
  "make money hand over fist",
395
435
  "make my day",
396
436
  "make the best of a bad situation",
397
437
  "make the best of it",
398
438
  "make your blood boil",
439
+ "male chauvinism",
399
440
  "man of few words",
400
441
  "man's best friend",
401
442
  "mark my words",
@@ -405,10 +446,13 @@
405
446
  "moment of glory",
406
447
  "moment of truth",
407
448
  "money to burn",
449
+ "more in sorrow than in anger",
408
450
  "more power to you",
451
+ "more sinned against than sinning",
409
452
  "more than one way to skin a cat",
410
453
  "movers and shakers",
411
454
  "moving experience",
455
+ "my better half",
412
456
  "naked as a jaybird",
413
457
  "naked truth",
414
458
  "neat as a pin",
@@ -418,6 +462,7 @@
418
462
  "never look back",
419
463
  "never say never",
420
464
  "nip and tuck",
465
+ "nip in the bud",
421
466
  "nip it in the bud",
422
467
  "no guts, no glory",
423
468
  "no love lost",
@@ -440,6 +485,7 @@
440
485
  "off the wagon",
441
486
  "off the wall",
442
487
  "old hat",
488
+ "olden days",
443
489
  "older and wiser",
444
490
  "older than dirt",
445
491
  "older than Methuselah",
@@ -450,6 +496,7 @@
450
496
  "on the money",
451
497
  "on the nose",
452
498
  "on the rocks",
499
+ "on the same page",
453
500
  "on the spot",
454
501
  "on the tip of my tongue",
455
502
  "on the wagon",
@@ -499,9 +546,11 @@
499
546
  "point with pride",
500
547
  "poor as a church mouse",
501
548
  "pot calling the kettle black",
549
+ "presidential timber",
502
550
  "pretty as a picture",
503
551
  "pull a fast one",
504
552
  "pull your punches",
553
+ "pulled no punches",
505
554
  "pulling your leg",
506
555
  "pure as the driven snow",
507
556
  "put it in a nutshell",
@@ -510,6 +559,8 @@
510
559
  "put the pedal to the metal",
511
560
  "put your best foot forward",
512
561
  "put your foot down",
562
+ "quantum jump",
563
+ "quantum leap",
513
564
  "quick as a bunny",
514
565
  "quick as a lick",
515
566
  "quick as a wink",
@@ -523,6 +574,8 @@
523
574
  "reap what you sow",
524
575
  "red as a beet",
525
576
  "red herring",
577
+ "redound to one's credit",
578
+ "redound to the benefit of",
526
579
  "reinvent the wheel",
527
580
  "rich and famous",
528
581
  "rings a bell",
@@ -540,6 +593,7 @@
540
593
  "salt of the earth",
541
594
  "scared stiff",
542
595
  "scared to death",
596
+ "sea change",
543
597
  "sealed with a kiss",
544
598
  "second to none",
545
599
  "see eye to eye",
@@ -549,6 +603,7 @@
549
603
  "set the world on fire",
550
604
  "set your teeth on edge",
551
605
  "sharp as a tack",
606
+ "shirked his duties",
552
607
  "shoot for the moon",
553
608
  "shoot the breeze",
554
609
  "shot in the dark",
@@ -558,6 +613,7 @@
558
613
  "signed, sealed, and delivered",
559
614
  "sink or swim",
560
615
  "six of one, half a dozen of another",
616
+ "six of one, half a dozen of the other",
561
617
  "skating on thin ice",
562
618
  "slept like a log",
563
619
  "slinging mud",
@@ -585,6 +641,7 @@
585
641
  "stop and smell the roses",
586
642
  "straight as an arrow",
587
643
  "straw that broke the camel's back",
644
+ "stretched to the breaking point",
588
645
  "strong as an ox",
589
646
  "stubborn as a mule",
590
647
  "stuff that dreams are made of",
@@ -598,23 +655,29 @@
598
655
  "take the plunge",
599
656
  "takes one to know one",
600
657
  "takes two to tango",
658
+ "than you can shake a stick at",
659
+ "the cream of the crop",
660
+ "the cream rises to the top",
601
661
  "the more the merrier",
602
662
  "the real deal",
603
663
  "the real McCoy",
604
664
  "the red carpet treatment",
605
665
  "the same old story",
666
+ "the straw that broke the camel's back",
606
667
  "there is no accounting for taste",
607
668
  "thick as a brick",
608
669
  "thick as thieves",
609
670
  "thin as a rail",
610
671
  "think outside of the box",
672
+ "thinking outside the box",
611
673
  "third time's the charm",
612
674
  "this day and age",
613
675
  "this hurts me worse than it hurts you",
614
- "this point in time",
676
+ "thought leaders?",
615
677
  "three sheets to the wind",
616
678
  "through thick and thin",
617
679
  "throw in the towel",
680
+ "throw the baby out with the bathwater",
618
681
  "tie one on",
619
682
  "tighter than a drum",
620
683
  "time and time again",
@@ -653,7 +716,9 @@
653
716
  "vain attempt",
654
717
  "vain effort",
655
718
  "vanquish the enemy",
719
+ "various and sundry",
656
720
  "vested interest",
721
+ "viable alternative",
657
722
  "waiting for the other shoe to drop",
658
723
  "wakeup call",
659
724
  "warm welcome",
@@ -661,6 +726,9 @@
661
726
  "watch your tongue",
662
727
  "watching the clock",
663
728
  "water under the bridge",
729
+ "wax eloquent",
730
+ "wax poetic",
731
+ "we've got a situation here",
664
732
  "weather the storm",
665
733
  "weed them out",
666
734
  "week of Sundays",
@@ -672,6 +740,8 @@
672
740
  "when push comes to shove",
673
741
  "when the cat's away",
674
742
  "when the going gets tough, the tough get going",
743
+ "whet the appetite",
744
+ "whet your appetite",
675
745
  "white as a sheet",
676
746
  "whole ball of wax",
677
747
  "whole hog",
@@ -681,11 +751,13 @@
681
751
  "wisdom of the ages",
682
752
  "wise as an owl",
683
753
  "wolf at the door",
754
+ "wool pulled over our eyes",
684
755
  "words fail me",
685
756
  "work like a dog",
686
757
  "world weary",
687
758
  "worst nightmare",
688
759
  "worth its weight in gold",
760
+ "writ large",
689
761
  "wrong side of the bed",
690
762
  "yanking your chain",
691
763
  "yappy as a dog",
@@ -0,0 +1,80 @@
1
+ [
2
+ {
3
+ "id": "importance-role",
4
+ "slots": {
5
+ "importanceAdjective": [
6
+ "crucial",
7
+ "pivotal",
8
+ "vital",
9
+ "critical",
10
+ "significant",
11
+ "key"
12
+ ]
13
+ },
14
+ "templates": [
15
+ "plays a {importanceAdjective} role",
16
+ "play a {importanceAdjective} role"
17
+ ]
18
+ },
19
+ {
20
+ "id": "valuable-insights",
21
+ "slots": {
22
+ "valueAdjective": ["valuable", "actionable", "meaningful", "important"]
23
+ },
24
+ "templates": [
25
+ "provides {valueAdjective} insights",
26
+ "provide {valueAdjective} insights",
27
+ "offers {valueAdjective} insights",
28
+ "offer {valueAdjective} insights"
29
+ ]
30
+ },
31
+ {
32
+ "id": "complexity-approach",
33
+ "slots": {
34
+ "complexityAdjective": [
35
+ "multifaceted",
36
+ "comprehensive",
37
+ "holistic",
38
+ "nuanced"
39
+ ]
40
+ },
41
+ "templates": [
42
+ "requires a {complexityAdjective} approach",
43
+ "require a {complexityAdjective} approach"
44
+ ]
45
+ },
46
+ {
47
+ "id": "culture-of-abstraction",
48
+ "slots": {
49
+ "positiveAbstractNoun": [
50
+ "continuous improvement",
51
+ "continuous learning",
52
+ "innovation",
53
+ "collaboration"
54
+ ]
55
+ },
56
+ "templates": [
57
+ "fosters a culture of {positiveAbstractNoun}",
58
+ "foster a culture of {positiveAbstractNoun}",
59
+ "fostering a culture of {positiveAbstractNoun}"
60
+ ]
61
+ },
62
+ {
63
+ "id": "importance-reminder",
64
+ "slots": {
65
+ "reminderAdjective": ["powerful", "important", "timely", "stark"]
66
+ },
67
+ "templates": [
68
+ "serves as a {reminderAdjective} reminder of the importance of",
69
+ "serve as a {reminderAdjective} reminder of the importance of"
70
+ ]
71
+ },
72
+ {
73
+ "id": "testament-power",
74
+ "slots": {},
75
+ "templates": [
76
+ "serves as a testament to the power of",
77
+ "serve as a testament to the power of"
78
+ ]
79
+ }
80
+ ]
@@ -1,8 +1,6 @@
1
1
  [
2
2
  "all hands on deck",
3
3
  "apples to apples",
4
- "at the end of the day",
5
- "back to the drawing board",
6
4
  "bang for your buck",
7
5
  "circle back around",
8
6
  "drill-down",
@@ -17,7 +15,6 @@
17
15
  "move the goal post",
18
16
  "no brainer",
19
17
  "on my plate",
20
- "par for the course",
21
18
  "ping me",
22
19
  "synergy",
23
20
  "take this offline",
@@ -0,0 +1,4 @@
1
+ {
2
+ "startsWith": ["my last knowledge update was", "my knowledge cutoff is"],
3
+ "contains": []
4
+ }
@@ -1,5 +1,4 @@
1
1
  [
2
- "at the end of the day",
3
2
  "in conclusion",
4
3
  "in today's fast-paced world",
5
4
  "it's important to note",
@@ -0,0 +1,74 @@
1
+ [
2
+ "basic fundamentals",
3
+ "actual fact",
4
+ "absolute necessity",
5
+ "true facts",
6
+ "future plans",
7
+ "free gift",
8
+ "serious crisis",
9
+ "complete stranger",
10
+ "close proximity",
11
+ "emergency situation",
12
+ "new innovation",
13
+ "software program",
14
+ "blend together",
15
+ "blends together",
16
+ "blended together",
17
+ "collaborate together",
18
+ "collaborates together",
19
+ "collaborated together",
20
+ "combine together",
21
+ "combines together",
22
+ "combined together",
23
+ "consolidate together",
24
+ "consolidates together",
25
+ "consolidated together",
26
+ "connect together",
27
+ "connects together",
28
+ "connected together",
29
+ "couple together",
30
+ "couples together",
31
+ "coupled together",
32
+ "merge together",
33
+ "merges together",
34
+ "merged together",
35
+ "meld together",
36
+ "melds together",
37
+ "melded together",
38
+ "mingle together",
39
+ "mingles together",
40
+ "mingled together",
41
+ "mix together",
42
+ "mixes together",
43
+ "mixed together",
44
+ "pool together",
45
+ "pools together",
46
+ "pooled together",
47
+ "gather together",
48
+ "gathers together",
49
+ "gathered together",
50
+ "repeat again",
51
+ "repeats again",
52
+ "repeated again",
53
+ "restate again",
54
+ "restates again",
55
+ "restated again",
56
+ "reiterate again",
57
+ "reiterates again",
58
+ "reiterated again",
59
+ "return back",
60
+ "returns back",
61
+ "returned back",
62
+ "refer back",
63
+ "refers back",
64
+ "referred back",
65
+ "revert back",
66
+ "reverts back",
67
+ "reverted back",
68
+ "surrounded on all sides",
69
+ "throughout the entire",
70
+ "the whole entire",
71
+ "interact with each other",
72
+ "visible to the eye",
73
+ "while at the same time"
74
+ ]
@@ -0,0 +1,53 @@
1
+ [
2
+ "because of the fact that",
3
+ "due to the fact that",
4
+ "owing to the fact that",
5
+ "in light of the fact that",
6
+ "in view of the fact that",
7
+ "by virtue of the fact that",
8
+ "based on the fact that",
9
+ "despite the fact that",
10
+ "in spite of the fact that",
11
+ "at this point in time",
12
+ "at the present time",
13
+ "at this moment in time",
14
+ "during the course of",
15
+ "during the period of",
16
+ "during the duration of",
17
+ "for the duration of",
18
+ "in order to",
19
+ "in an effort to",
20
+ "for the purpose of",
21
+ "as a means of",
22
+ "has the ability to",
23
+ "have the ability to",
24
+ "had the ability to",
25
+ "has the capacity to",
26
+ "have the capacity to",
27
+ "had the capacity to",
28
+ "has the opportunity to",
29
+ "have the opportunity to",
30
+ "had the opportunity to",
31
+ "conduct an assessment of",
32
+ "conduct an evaluation of",
33
+ "conduct an investigation of",
34
+ "conduct a review of",
35
+ "perform an assessment of",
36
+ "perform an evaluation of",
37
+ "perform an investigation of",
38
+ "perform a review of",
39
+ "carry out an assessment of",
40
+ "carry out an evaluation of",
41
+ "carry out an investigation of",
42
+ "carry out a review of",
43
+ "make reference to",
44
+ "makes reference to",
45
+ "made reference to",
46
+ "take into account",
47
+ "takes into account",
48
+ "took into account",
49
+ "taken into account",
50
+ "with the exception of",
51
+ "until such time as",
52
+ "the question as to whether"
53
+ ]
@@ -0,0 +1,30 @@
1
+ import { findPhraseMatches } from "../../shared/matchers/phrases.js";
2
+ import { allParagraphSentences } from "../../shared/text/sections.js";
3
+ import { emitTextlintFinding } from "../../adapters/textlint/report.js";
4
+ const HUMBLE_BRAGGER_PHRASES = [
5
+ "in my experience",
6
+ "as someone who has",
7
+ "having worked with"
8
+ ];
9
+ const rule = (context) => {
10
+ const { Syntax } = context;
11
+ return {
12
+ [Syntax.Document](node) {
13
+ for (const item of allParagraphSentences(node)) {
14
+ for (const match of findPhraseMatches(item.sentence.text, HUMBLE_BRAGGER_PHRASES)) {
15
+ emitTextlintFinding(context, {
16
+ node: item.paragraph,
17
+ ruleId: "phrases:humble-bragger",
18
+ message: `Humble-bragging phrase found: "${match.text}". Remove the credentialing lead-in.`,
19
+ range: {
20
+ start: item.source.originalStartFor(item.sentence.start + match.start),
21
+ end: item.source.originalEndFor(item.sentence.start + match.end)
22
+ }
23
+ });
24
+ }
25
+ }
26
+ }
27
+ };
28
+ };
29
+ export default rule;
30
+ //# sourceMappingURL=humble-bragger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"humble-bragger.js","sourceRoot":"","sources":["../../../src/rules/phrases/humble-bragger.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE,MAAM,sBAAsB,GAAG;IAC7B,kBAAkB;IAClB,oBAAoB;IACpB,oBAAoB;CACrB,CAAC;AAEF,MAAM,IAAI,GAAuB,CAAC,OAAO,EAAE,EAAE;IAC3C,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAE3B,OAAO;QACL,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAqB;YACrC,KAAK,MAAM,IAAI,IAAI,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/C,KAAK,MAAM,KAAK,IAAI,iBAAiB,CACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAClB,sBAAsB,CACvB,EAAE,CAAC;oBACF,mBAAmB,CAAC,OAAO,EAAE;wBAC3B,IAAI,EAAE,IAAI,CAAC,SAAS;wBACpB,MAAM,EAAE,wBAAwB;wBAChC,OAAO,EAAE,kCAAkC,KAAK,CAAC,IAAI,sCAAsC;wBAC3F,KAAK,EAAE;4BACL,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CACjC,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAClC;4BACD,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC;yBACjE;qBACF,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,IAAI,CAAC"}