simple_english 0.1.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.
@@ -0,0 +1,617 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <rules lang="en">
3
+ <category id="SIMPLE_ENGLISH" name="Simple English">
4
+
5
+ <rule id="SE_NO_CONTRACTIONS" name="No contractions">
6
+ <pattern>
7
+ <token regexp="yes">[a-z]+['’](s|t|re|ve|ll|d|m)</token>
8
+ </pattern>
9
+ <message>Write the words in full. No contractions.</message>
10
+ <example type="incorrect">You <marker>don't</marker> need this file.</example>
11
+ <example type="correct">You do not need this file.</example>
12
+ </rule>
13
+
14
+ <rule id="SE_NO_SEMICOLON" name="No semicolons">
15
+ <pattern><token>;</token></pattern>
16
+ <message>Write two sentences, or name the relation.</message>
17
+ <example type="incorrect">Start the tool<marker>;</marker> then read the log.</example>
18
+ <example type="correct">Start the tool. Then read the log.</example>
19
+ </rule>
20
+
21
+ <rule id="SE_NO_EMDASH" name="No em-dashes">
22
+ <pattern><token regexp="yes">—|--</token></pattern>
23
+ <message>Write two sentences, or use a comma.</message>
24
+ <example type="incorrect">The tool is fast<marker>—</marker>it also works.</example>
25
+ <example type="correct">The tool is fast. It also works.</example>
26
+ </rule>
27
+
28
+ <rule id="SE_MODAL_RESTRICTED" name="Only can, will, must">
29
+ <pattern><token regexp="yes">should|would|might|could</token></pattern>
30
+ <message>Use can, will, or must. State the requirement exactly.</message>
31
+ <example type="incorrect">You <marker>should</marker> restart the service.</example>
32
+ <example type="correct">You must restart the service.</example>
33
+ </rule>
34
+
35
+ <rule id="SE_ACTIVE_VOICE" name="Active voice">
36
+ <pattern>
37
+ <token regexp="yes">am|is|are|was|were|be|been|being</token>
38
+ <token min="0" max="1" regexp="yes">not|never</token>
39
+ <token postag="VBN"/>
40
+ <token min="0" max="6"><exception>by</exception></token>
41
+ <token>by</token>
42
+ </pattern>
43
+ <message>Use the active voice. Say who does the action.</message>
44
+ <example type="incorrect">The log <marker>was written by</marker> the worker.</example>
45
+ <example type="correct">The worker wrote the log.</example>
46
+ </rule>
47
+
48
+ <rule id="SE_PRESENT_PERFECT" name="Simple tenses only">
49
+ <pattern>
50
+ <token regexp="yes">have|has|had</token>
51
+ <token postag="VBN"/>
52
+ </pattern>
53
+ <message>Use the simple past. Say when it happened.</message>
54
+ <example type="incorrect">The job <marker>has completed</marker>.</example>
55
+ <example type="correct">The job completed.</example>
56
+ </rule>
57
+
58
+ <rule id="SE_ING_AFTER_COMMA" name="No -ing after a comma">
59
+ <pattern><token>,</token><token postag="VBG"/></pattern>
60
+ <message>Start a new sentence instead of the -ing phrase.</message>
61
+ <example type="incorrect">The tool runs<marker>, making</marker> it easy.</example>
62
+ <example type="correct">The tool runs. It is easy.</example>
63
+ </rule>
64
+
65
+ <rule id="SE_KEEP_THAT" name="make sure that">
66
+ <pattern>
67
+ <token regexp="yes">make|makes|made</token>
68
+ <token regexp="yes">sure|certain</token>
69
+ <token negate="yes">that</token>
70
+ </pattern>
71
+ <message>Write "make sure that".</message>
72
+ <example type="incorrect">Make <marker>sure the file</marker> exists.</example>
73
+ <example type="correct">Make sure that the file exists.</example>
74
+ </rule>
75
+
76
+ <rule id="SE_CONDITION_FIRST" name="Condition before command">
77
+ <pattern>
78
+ <token postag="VB"/>
79
+ <token min="0" max="8"><exception>if</exception></token>
80
+ <token>if</token>
81
+ </pattern>
82
+ <message>Put the condition first: "If the build fails, read the log."</message>
83
+ <example type="incorrect"><marker>Read the log if</marker> the build fails.</example>
84
+ <example type="correct">If the build fails, read the log.</example>
85
+ </rule>
86
+
87
+ <rule id="SE_SLOP_LEVERAGE" name="use, not leverage">
88
+ <pattern>
89
+ <token regexp="yes" inflected="yes">leverage|utilize</token>
90
+ </pattern>
91
+ <message>Write <suggestion>use</suggestion>.</message>
92
+ <example type="incorrect"><marker>Utilize</marker> the registry file.</example>
93
+ <example type="correct">Use the registry file.</example>
94
+ </rule>
95
+
96
+ <rule id="SE_SLOP_IN_ORDER_TO" name="to, not in order to">
97
+ <pattern>
98
+ <token>in</token><token>order</token><token>to</token>
99
+ </pattern>
100
+ <message>Write <suggestion>to</suggestion>.</message>
101
+ <example type="incorrect">Run the tool <marker>in order to</marker> build the file.</example>
102
+ <example type="correct">Run the tool to build the file.</example>
103
+ </rule>
104
+
105
+ <rule id="SE_SLOP_PRIOR_TO" name="before, not prior to">
106
+ <pattern>
107
+ <token>prior</token><token>to</token>
108
+ </pattern>
109
+ <message>Write <suggestion>before</suggestion>.</message>
110
+ <example type="incorrect">Read the file <marker>prior to</marker> the upgrade.</example>
111
+ <example type="correct">Read the file before the upgrade.</example>
112
+ </rule>
113
+
114
+ <rule id="SE_SLOP_ENSURE" name="make sure that, not ensure">
115
+ <pattern>
116
+ <token regexp="yes" inflected="yes">ensure</token>
117
+ </pattern>
118
+ <message>Write <suggestion>make sure that</suggestion>.</message>
119
+ <example type="incorrect"><marker>Ensure</marker> the file exists.</example>
120
+ <example type="correct">Make sure that the file exists.</example>
121
+ </rule>
122
+
123
+ <rule id="SE_SLOP_FUNCTIONALITY" name="function, not functionality">
124
+ <pattern>
125
+ <token inflected="yes">functionality</token>
126
+ </pattern>
127
+ <message>Write <suggestion>function</suggestion> or <suggestion>feature</suggestion>.</message>
128
+ <example type="incorrect">Add the <marker>functionality</marker> first.</example>
129
+ <example type="correct">Add the function first.</example>
130
+ </rule>
131
+
132
+ <rule id="SE_SLOP_ENABLES_YOU" name="you can, not enables you to">
133
+ <pattern>
134
+ <token regexp="yes" inflected="yes">enable|allow</token>
135
+ <token regexp="yes">you</token>
136
+ <token>to</token>
137
+ </pattern>
138
+ <message>Write <suggestion>you can</suggestion>.</message>
139
+ <example type="incorrect">The tool <marker>enables you to</marker> build the file.</example>
140
+ <example type="correct">You can build the file with the tool.</example>
141
+ </rule>
142
+
143
+ <rule id="SE_SLOP_FACILITATE" name="help, not facilitate">
144
+ <pattern>
145
+ <token regexp="yes" inflected="yes">facilitate</token>
146
+ </pattern>
147
+ <message>Write <suggestion>help</suggestion> or <suggestion>make possible</suggestion>.</message>
148
+ <example type="incorrect">The tool <marker>facilitates</marker> the build.</example>
149
+ <example type="correct">The tool helps the build.</example>
150
+ </rule>
151
+
152
+ <rule id="SE_SLOP_DELVE" name="read, not delve into">
153
+ <pattern>
154
+ <token regexp="yes" inflected="yes">delve|dive</token>
155
+ <token>into</token>
156
+ </pattern>
157
+ <message>Write <suggestion>read</suggestion> or <suggestion>examine</suggestion>.</message>
158
+ <example type="incorrect"><marker>Delve into</marker> the config file.</example>
159
+ <example type="correct">Read the config file.</example>
160
+ </rule>
161
+
162
+ <rule id="SE_SLOP_WHEN_IT_COMES" name="for, not when it comes to">
163
+ <pattern>
164
+ <token>when</token><token>it</token><token>comes</token><token>to</token>
165
+ </pattern>
166
+ <message>Write <suggestion>for</suggestion>.</message>
167
+ <example type="incorrect"><marker>When it comes to</marker> builds, use the tool.</example>
168
+ <example type="correct">For builds, use the tool.</example>
169
+ </rule>
170
+
171
+ <rule id="SE_SLOP_IN_THE_EVENT" name="if, not in the event that">
172
+ <pattern>
173
+ <token>in</token><token>the</token><token>event</token><token>that</token>
174
+ </pattern>
175
+ <message>Write <suggestion>if</suggestion>.</message>
176
+ <example type="incorrect"><marker>In the event that</marker> the build fails, read the log.</example>
177
+ <example type="correct">If the build fails, read the log.</example>
178
+ </rule>
179
+
180
+ <rule id="SE_SLOP_DUE_TO_FACT" name="because, not due to the fact that">
181
+ <pattern>
182
+ <token>due</token><token>to</token><token>the</token><token>fact</token><token>that</token>
183
+ </pattern>
184
+ <message>Write <suggestion>because</suggestion>.</message>
185
+ <example type="incorrect"><marker>Due to the fact that</marker> the port is closed, the tool fails.</example>
186
+ <example type="correct">Because the port is not open, the tool fails.</example>
187
+ </rule>
188
+
189
+ <rule id="SE_SLOP_AND_OR" name="no and/or">
190
+ <pattern>
191
+ <token>and</token><token>/</token><token>or</token>
192
+ </pattern>
193
+ <message>Pick one. Or write "X, or Y, or both".</message>
194
+ <example type="incorrect">Set the flag <marker>and/or</marker> the port.</example>
195
+ <example type="correct">Set the flag, or the port, or both.</example>
196
+ </rule>
197
+
198
+ <rulegroup id="SE_SLOP_LATIN" name="no Latin abbreviations">
199
+ <rule name="e.g.">
200
+ <pattern>
201
+ <token>e</token><token>.</token><token>g</token>
202
+ </pattern>
203
+ <message>Write "for example", or name the items.</message>
204
+ <example type="incorrect">Set the flag<marker>, e.g.</marker> the port.</example>
205
+ <example type="correct">Set the flag, for example the port.</example>
206
+ </rule>
207
+ <rule name="i.e.">
208
+ <pattern>
209
+ <token>i</token><token>.</token><token>e</token>
210
+ </pattern>
211
+ <message>Write "that is", or name the items.</message>
212
+ <example type="incorrect">Set the flag<marker>, i.e.</marker> the port.</example>
213
+ <example type="correct">Set the flag, that is the port.</example>
214
+ </rule>
215
+ <rule name="etc.">
216
+ <pattern>
217
+ <token>etc</token>
218
+ </pattern>
219
+ <message>Name the items.</message>
220
+ <example type="incorrect">Set the flag<marker>, etc</marker>.</example>
221
+ <example type="correct">Set the flag or the port.</example>
222
+ </rule>
223
+ </rulegroup>
224
+
225
+ <rule id="SE_SLOP_OUT_OF_BOX" name="by default, not out of the box">
226
+ <pattern>
227
+ <token>out</token><token>of</token><token>the</token><token>box</token>
228
+ </pattern>
229
+ <message>Write <suggestion>by default</suggestion>.</message>
230
+ <example type="incorrect">The tool works <marker>out of the box</marker>.</example>
231
+ <example type="correct">The tool works by default.</example>
232
+ </rule>
233
+
234
+ <rule id="SE_SLOP_UNDER_HOOD" name="internally, not under the hood">
235
+ <pattern>
236
+ <token>under</token><token>the</token><token>hood</token>
237
+ </pattern>
238
+ <message>Write <suggestion>internally</suggestion>.</message>
239
+ <example type="incorrect"><marker>Under the hood</marker>, the tool builds a file.</example>
240
+ <example type="correct">Internally, the tool builds a file.</example>
241
+ </rule>
242
+
243
+ <rule id="SE_SLOP_STREAMLINE" name="make simpler, not streamline">
244
+ <pattern>
245
+ <token regexp="yes" inflected="yes">streamline</token>
246
+ </pattern>
247
+ <message>Write <suggestion>make simpler</suggestion> or <suggestion>make faster</suggestion>.</message>
248
+ <example type="incorrect">The tool <marker>streamlines</marker> the build.</example>
249
+ <example type="correct">The tool makes the build simpler.</example>
250
+ </rule>
251
+
252
+ <rule id="SE_SLOP_PLETHORA" name="many, not plethora">
253
+ <pattern>
254
+ <token regexp="yes" inflected="yes">plethora|myriad</token>
255
+ </pattern>
256
+ <message>Write <suggestion>many</suggestion>.</message>
257
+ <example type="incorrect">The file has a <marker>plethora</marker> of rows.</example>
258
+ <example type="correct">The file has many rows.</example>
259
+ </rule>
260
+
261
+ <rule id="SE_SLOP_ADDRESSES" name="corrects, not addresses the issue">
262
+ <pattern>
263
+ <token regexp="yes" inflected="yes">address|tackle</token>
264
+ <token>the</token><token>issue</token>
265
+ </pattern>
266
+ <message>Write <suggestion>corrects the fault</suggestion> or <suggestion>removes the error</suggestion>.</message>
267
+ <example type="incorrect">The tool <marker>addresses the issue</marker>.</example>
268
+ <example type="correct">The tool corrects the fault.</example>
269
+ </rule>
270
+
271
+ <rule id="SE_SLOP_PIVOTAL" name="important, not pivotal">
272
+ <pattern>
273
+ <token regexp="yes">pivotal|crucial|crucially|paramount</token>
274
+ </pattern>
275
+ <message>Write <suggestion>important</suggestion>.</message>
276
+ <example type="incorrect">The flag is <marker>crucial</marker>.</example>
277
+ <example type="correct">The flag is important.</example>
278
+ </rule>
279
+
280
+ <rule id="SE_SLOP_TAPESTRY" name="no tapestry, testament, synergy">
281
+ <pattern>
282
+ <token regexp="yes" inflected="yes">tapestry|testament|synergy</token>
283
+ </pattern>
284
+ <message>Delete it. State the fact.</message>
285
+ <example type="incorrect">The design is a <marker>testament</marker> to the team.</example>
286
+ <example type="correct">The design shows the work of the team.</example>
287
+ </rule>
288
+
289
+ <rule id="SE_SLOP_INTERPLAY" name="interaction, not interplay">
290
+ <pattern>
291
+ <token inflected="yes">interplay</token>
292
+ </pattern>
293
+ <message>Write <suggestion>interaction</suggestion>, or delete it.</message>
294
+ <example type="incorrect">The <marker>interplay</marker> of the two tools is complex.</example>
295
+ <example type="correct">The interaction of the two tools is complex.</example>
296
+ </rule>
297
+
298
+ <rule id="SE_SLOP_INTRICATE" name="complex, not intricate">
299
+ <pattern>
300
+ <token regexp="yes" inflected="yes">intricate</token>
301
+ </pattern>
302
+ <message>Write <suggestion>complex</suggestion>.</message>
303
+ <example type="incorrect">The config is <marker>intricate</marker>.</example>
304
+ <example type="correct">The config is complex.</example>
305
+ </rule>
306
+
307
+ <rule id="SE_SLOP_VIBRANT" name="delete vibrant, nuanced, multifaceted">
308
+ <pattern>
309
+ <token regexp="yes">vibrant|nuanced|multifaceted</token>
310
+ </pattern>
311
+ <message>Delete it, or name the parts.</message>
312
+ <example type="incorrect">The tool is <marker>nuanced</marker>.</example>
313
+ <example type="correct">The tool reads three file types.</example>
314
+ </rule>
315
+
316
+ <rule id="SE_SLOP_REALM" name="area, not realm or landscape">
317
+ <pattern>
318
+ <token regexp="yes">realm</token>
319
+ </pattern>
320
+ <message>Write <suggestion>area</suggestion>.</message>
321
+ <example type="incorrect">In the <marker>realm</marker> of builds, use the tool.</example>
322
+ <example type="correct">In the area of builds, use the tool.</example>
323
+ </rule>
324
+
325
+ <rule id="SE_SLOP_GROUNDBREAKING" name="new, not groundbreaking">
326
+ <pattern>
327
+ <token regexp="yes">groundbreaking|cutting-edge|state-of-the-art|state of the art|innovative|unprecedented</token>
328
+ </pattern>
329
+ <message>Write <suggestion>new</suggestion>, or delete it.</message>
330
+ <example type="incorrect">The tool is <marker>groundbreaking</marker>.</example>
331
+ <example type="correct">The tool is new.</example>
332
+ </rule>
333
+
334
+ <rule id="SE_SLOP_TRANSFORMATIVE" name="say what changes, not transformative">
335
+ <pattern>
336
+ <token regexp="yes">transformative|game-changer|game changer</token>
337
+ </pattern>
338
+ <message>Delete it. Say what changes.</message>
339
+ <example type="incorrect">The tool is <marker>transformative</marker>.</example>
340
+ <example type="correct">The tool cuts the build time in half.</example>
341
+ </rule>
342
+
343
+ <rule id="SE_SLOP_REVOLUTIONIZE" name="change, not revolutionize">
344
+ <pattern>
345
+ <token regexp="yes" inflected="yes">revolutionize</token>
346
+ </pattern>
347
+ <message>Write <suggestion>change</suggestion>.</message>
348
+ <example type="incorrect">The tool <marker>revolutionizes</marker> the build.</example>
349
+ <example type="correct">The tool changes the build.</example>
350
+ </rule>
351
+
352
+ <rule id="SE_SLOP_SHOWCASE" name="show, not showcase">
353
+ <pattern>
354
+ <token regexp="yes" inflected="yes">showcase|underscore|emphasize</token>
355
+ </pattern>
356
+ <message>Write <suggestion>show</suggestion>.</message>
357
+ <example type="incorrect">The log <marker>showcases</marker> the error.</example>
358
+ <example type="correct">The log shows the error.</example>
359
+ </rule>
360
+
361
+ <rule id="SE_SLOP_FOSTER" name="help, not foster">
362
+ <pattern>
363
+ <token regexp="yes" inflected="yes">foster|empower|bolster</token>
364
+ </pattern>
365
+ <message>Write <suggestion>help</suggestion>, <suggestion>support</suggestion>, or <suggestion>let</suggestion>.</message>
366
+ <example type="incorrect">The tool <marker>fosters</marker> growth.</example>
367
+ <example type="correct">The tool supports growth.</example>
368
+ </rule>
369
+
370
+ <rule id="SE_SLOP_HARNESS" name="use, not harness">
371
+ <pattern>
372
+ <token regexp="yes" inflected="yes">harness</token>
373
+ </pattern>
374
+ <message>Write <suggestion>use</suggestion>.</message>
375
+ <example type="incorrect"><marker>Harness</marker> the API.</example>
376
+ <example type="correct">Use the API.</example>
377
+ </rule>
378
+
379
+ <rule id="SE_SLOP_ENHANCE" name="improve, not enhance">
380
+ <pattern>
381
+ <token regexp="yes" inflected="yes">enhance</token>
382
+ </pattern>
383
+ <message>Write <suggestion>improve</suggestion>.</message>
384
+ <example type="incorrect">The tool <marker>enhances</marker> the build.</example>
385
+ <example type="correct">The tool improves the build.</example>
386
+ </rule>
387
+
388
+ <rule id="SE_SLOP_ELEVATE" name="increase, not elevate">
389
+ <pattern>
390
+ <token regexp="yes" inflected="yes">elevate</token>
391
+ </pattern>
392
+ <message>Write <suggestion>increase</suggestion>.</message>
393
+ <example type="incorrect">The tool <marker>elevates</marker> the speed.</example>
394
+ <example type="correct">The tool increases the speed.</example>
395
+ </rule>
396
+
397
+ <rule id="SE_SLOP_FURTHERMORE" name="also, not furthermore">
398
+ <pattern>
399
+ <token regexp="yes">furthermore|moreover</token>
400
+ </pattern>
401
+ <message>Write <suggestion>also</suggestion>.</message>
402
+ <example type="incorrect"><marker>Furthermore</marker>, the tool reads the log.</example>
403
+ <example type="correct">The tool also reads the log.</example>
404
+ </rule>
405
+
406
+ <rule id="SE_SLOP_EMBARK" name="start, not embark">
407
+ <pattern>
408
+ <token regexp="yes" inflected="yes">embark|endeavor</token>
409
+ </pattern>
410
+ <message>Write <suggestion>start</suggestion> or <suggestion>try</suggestion>.</message>
411
+ <example type="incorrect"><marker>Embark</marker> on the build.</example>
412
+ <example type="correct">Start the build.</example>
413
+ </rule>
414
+
415
+ <rule id="SE_SLOP_METICULOUS" name="careful, not meticulous">
416
+ <pattern>
417
+ <token regexp="yes">meticulous|meticulously</token>
418
+ </pattern>
419
+ <message>Write <suggestion>careful</suggestion> or <suggestion>carefully</suggestion>.</message>
420
+ <example type="incorrect">The tool checks the file <marker>meticulously</marker>.</example>
421
+ <example type="correct">The tool checks the file carefully.</example>
422
+ </rule>
423
+
424
+ <rule id="SE_SLOP_HOLISTIC" name="full, not holistic">
425
+ <pattern>
426
+ <token inflected="yes">holistic</token>
427
+ </pattern>
428
+ <message>Write <suggestion>full</suggestion>.</message>
429
+ <example type="incorrect">The tool gives a <marker>holistic</marker> view.</example>
430
+ <example type="correct">The tool gives a full view.</example>
431
+ </rule>
432
+
433
+ <rule id="SE_SLOP_PARADIGM" name="model, not paradigm">
434
+ <pattern>
435
+ <token regexp="yes" inflected="yes">paradigm</token>
436
+ </pattern>
437
+ <message>Write <suggestion>model</suggestion>.</message>
438
+ <example type="incorrect">The tool changes the <marker>paradigm</marker>.</example>
439
+ <example type="correct">The tool changes the model.</example>
440
+ </rule>
441
+
442
+ <rule id="SE_SLOP_BOASTS" name="has, not boasts">
443
+ <pattern>
444
+ <token regexp="yes" inflected="yes">boast</token>
445
+ </pattern>
446
+ <message>Write <suggestion>has</suggestion>.</message>
447
+ <example type="incorrect">The tool <marker>boasts</marker> a log.</example>
448
+ <example type="correct">The tool has a log.</example>
449
+ </rule>
450
+
451
+ <rule id="SE_SLOP_NOTWITHSTANDING" name="but, not that being said">
452
+ <pattern>
453
+ <token>that</token><token>being</token><token>said</token>
454
+ </pattern>
455
+ <message>Write <suggestion>but</suggestion>.</message>
456
+ <example type="incorrect">The tool works. <marker>That being said</marker>, it is slow.</example>
457
+ <example type="correct">The tool works, but it is slow.</example>
458
+ </rule>
459
+
460
+ <rule id="SE_SLOP_NOTWITHSTANDING2" name="but, not notwithstanding">
461
+ <pattern>
462
+ <token>notwithstanding</token>
463
+ </pattern>
464
+ <message>Write <suggestion>but</suggestion>.</message>
465
+ <example type="incorrect"><marker>Notwithstanding</marker> the log, the tool fails.</example>
466
+ <example type="correct">The log exists, but the tool fails.</example>
467
+ </rule>
468
+
469
+ <rule id="SE_SLOP_DELETE_ADVERBS" name="delete empty adverbs">
470
+ <pattern>
471
+ <token regexp="yes">simply|seamlessly|effortlessly|easily</token>
472
+ </pattern>
473
+ <message>Delete it. It carries no fact.</message>
474
+ <example type="incorrect">The tool works <marker>seamlessly</marker>.</example>
475
+ <example type="correct">The tool works.</example>
476
+ </rule>
477
+
478
+ <rule id="SE_SLOP_JUST" name="delete just">
479
+ <pattern>
480
+ <token>just</token>
481
+ </pattern>
482
+ <message>Delete it. It carries no fact.</message>
483
+ <example type="incorrect">The tool <marker>just</marker> works.</example>
484
+ <example type="correct">The tool works.</example>
485
+ </rule>
486
+
487
+ <rule id="SE_SLOP_DELETE_ADJ" name="delete empty adjectives">
488
+ <pattern>
489
+ <token regexp="yes">robust|powerful|comprehensive|performant|seamless|blazingly</token>
490
+ </pattern>
491
+ <message>Delete it, or give the measurable property.</message>
492
+ <example type="incorrect">The tool is <marker>robust</marker>.</example>
493
+ <example type="correct">The tool retries three times, then stops.</example>
494
+ </rule>
495
+
496
+ <rule id="SE_SLOP_WORTH_NOTING" name="delete it is worth noting">
497
+ <pattern>
498
+ <token>it</token><token>is</token><token>worth</token><token>noting</token><token>that</token>
499
+ </pattern>
500
+ <message>Delete it. State the fact.</message>
501
+ <example type="incorrect"><marker>It is worth noting that</marker> the tool is slow.</example>
502
+ <example type="correct">The tool is slow.</example>
503
+ </rule>
504
+
505
+ <rule id="SE_SLOP_IMPORTANT_TO" name="delete it is important to">
506
+ <pattern>
507
+ <token>it</token><token>is</token><token>important</token><token>to</token>
508
+ </pattern>
509
+ <message>Delete it. State the fact.</message>
510
+ <example type="incorrect"><marker>It is important to</marker> read the log.</example>
511
+ <example type="correct">Read the log.</example>
512
+ </rule>
513
+
514
+ <rule id="SE_SLOP_DESIGNED_TO" name="delete is designed to">
515
+ <pattern>
516
+ <token regexp="yes">is|was</token>
517
+ <token regexp="yes" inflected="yes">design</token>
518
+ <token>to</token>
519
+ </pattern>
520
+ <message>Say what the tool does.</message>
521
+ <example type="incorrect">The tool <marker>is designed to</marker> read logs.</example>
522
+ <example type="correct">The tool reads logs.</example>
523
+ </rule>
524
+
525
+ <rule id="SE_SLOP_AIMS_TO" name="delete aims to">
526
+ <pattern>
527
+ <token regexp="yes" inflected="yes">aim</token>
528
+ <token>to</token>
529
+ </pattern>
530
+ <message>Say what the tool does.</message>
531
+ <example type="incorrect">The tool <marker>aims to</marker> read logs.</example>
532
+ <example type="correct">The tool reads logs.</example>
533
+ </rule>
534
+
535
+ <rule id="SE_SLOP_AS_NEEDED" name="state the condition, not as needed">
536
+ <pattern>
537
+ <token>as</token><token regexp="yes">needed|necessary</token>
538
+ </pattern>
539
+ <message>State the condition.</message>
540
+ <example type="incorrect">Restart the tool <marker>as needed</marker>.</example>
541
+ <example type="correct">Restart the tool every day.</example>
542
+ </rule>
543
+
544
+ <rule id="SE_SLOP_GRACEFULLY" name="say what it does, not gracefully handles">
545
+ <pattern>
546
+ <token regexp="yes">gracefully</token>
547
+ </pattern>
548
+ <message>Say what the tool does: "retries three times, then stops".</message>
549
+ <example type="incorrect">The tool <marker>gracefully</marker> handles the error.</example>
550
+ <example type="correct">The tool retries three times, then stops.</example>
551
+ </rule>
552
+
553
+ <rule id="SE_SLOP_IN_CONCLUSION" name="delete in conclusion">
554
+ <pattern>
555
+ <token>in</token><token>conclusion</token>
556
+ </pattern>
557
+ <message>Delete it. State the fact.</message>
558
+ <example type="incorrect"><marker>In conclusion</marker>, the tool works.</example>
559
+ <example type="correct">The tool works.</example>
560
+ </rule>
561
+
562
+ <rule id="SE_SLOP_IN_SUMMARY" name="delete in summary">
563
+ <pattern>
564
+ <token>in</token><token>summary</token>
565
+ </pattern>
566
+ <message>Delete it. State the fact.</message>
567
+ <example type="incorrect"><marker>In summary</marker>, the tool works.</example>
568
+ <example type="correct">The tool works.</example>
569
+ </rule>
570
+
571
+ <rule id="SE_SLOP_AT_END_OF_DAY" name="delete at the end of the day">
572
+ <pattern>
573
+ <token>at</token><token>the</token><token>end</token><token>of</token><token>the</token><token>day</token>
574
+ </pattern>
575
+ <message>Delete it. State the fact.</message>
576
+ <example type="incorrect"><marker>At the end of the day</marker>, the tool works.</example>
577
+ <example type="correct">The tool works.</example>
578
+ </rule>
579
+
580
+ <rule id="SE_SLOP_NESTLED" name="give the location, not nestled">
581
+ <pattern>
582
+ <token regexp="yes" inflected="yes">nestle</token>
583
+ </pattern>
584
+ <message>Give the location.</message>
585
+ <example type="incorrect">The file is <marker>nestled</marker> in the folder.</example>
586
+ <example type="correct">The file sits in the folder.</example>
587
+ </rule>
588
+
589
+ <rule id="SE_SLOP_BUSTLING" name="busy, not bustling">
590
+ <pattern>
591
+ <token regexp="yes" inflected="yes">bustle</token>
592
+ </pattern>
593
+ <message>Write <suggestion>busy</suggestion>.</message>
594
+ <example type="incorrect">The <marker>bustling</marker> market has many files.</example>
595
+ <example type="correct">The busy market has many files.</example>
596
+ </rule>
597
+
598
+ <rule id="SE_SLOP_HOPE_HELPS" name="delete I hope this helps">
599
+ <pattern>
600
+ <token>I</token><token>hope</token><token>this</token><token>helps</token>
601
+ </pattern>
602
+ <message>Delete it.</message>
603
+ <example type="incorrect"><marker>I hope this helps</marker>. Read the log.</example>
604
+ <example type="correct">Read the log.</example>
605
+ </rule>
606
+
607
+ <rule id="SE_SLOP_DIVE_IN" name="delete let's dive in">
608
+ <pattern>
609
+ <token>let</token><token regexp="yes">'s|’s</token><token>dive</token><token>in</token>
610
+ </pattern>
611
+ <message>Delete it.</message>
612
+ <example type="incorrect"><marker>let's dive in</marker>. Read the log.</example>
613
+ <example type="correct">Read the log.</example>
614
+ </rule>
615
+
616
+ </category>
617
+ </rules>