chaffjs 0.16.0 โ†’ 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (939) hide show
  1. package/dist/announced-count.d.ts +26 -0
  2. package/dist/announced-count.d.ts.map +1 -0
  3. package/dist/announced-count.js +104 -0
  4. package/dist/announced-count.js.map +1 -0
  5. package/dist/bare-url.d.ts +14 -0
  6. package/dist/bare-url.d.ts.map +1 -0
  7. package/dist/bare-url.js +28 -0
  8. package/dist/bare-url.js.map +1 -0
  9. package/dist/baseline.d.ts +5 -0
  10. package/dist/baseline.d.ts.map +1 -1
  11. package/dist/baseline.js +16 -1
  12. package/dist/baseline.js.map +1 -1
  13. package/dist/body-section.d.ts +7 -0
  14. package/dist/body-section.d.ts.map +1 -0
  15. package/dist/body-section.js +6 -0
  16. package/dist/body-section.js.map +1 -0
  17. package/dist/calendar-number.d.ts +9 -2
  18. package/dist/calendar-number.d.ts.map +1 -1
  19. package/dist/calendar-number.js +18 -4
  20. package/dist/calendar-number.js.map +1 -1
  21. package/dist/cli-args.d.ts +4 -0
  22. package/dist/cli-args.d.ts.map +1 -1
  23. package/dist/cli-args.js +5 -0
  24. package/dist/cli-args.js.map +1 -1
  25. package/dist/cli-text.d.ts.map +1 -1
  26. package/dist/cli-text.js +8 -4
  27. package/dist/cli-text.js.map +1 -1
  28. package/dist/cli.js +33 -30
  29. package/dist/cli.js.map +1 -1
  30. package/dist/closing-numbers.d.ts +20 -0
  31. package/dist/closing-numbers.d.ts.map +1 -0
  32. package/dist/closing-numbers.js +56 -0
  33. package/dist/closing-numbers.js.map +1 -0
  34. package/dist/commands/compare.d.ts +8 -0
  35. package/dist/commands/compare.d.ts.map +1 -0
  36. package/dist/commands/compare.js +72 -0
  37. package/dist/commands/compare.js.map +1 -0
  38. package/dist/commands/eval.d.ts.map +1 -1
  39. package/dist/commands/eval.js +17 -9
  40. package/dist/commands/eval.js.map +1 -1
  41. package/dist/commands/feedback.d.ts +5 -2
  42. package/dist/commands/feedback.d.ts.map +1 -1
  43. package/dist/commands/feedback.js +11 -5
  44. package/dist/commands/feedback.js.map +1 -1
  45. package/dist/commands/test.d.ts.map +1 -1
  46. package/dist/commands/test.js +13 -13
  47. package/dist/commands/test.js.map +1 -1
  48. package/dist/commands/tree.d.ts +13 -0
  49. package/dist/commands/tree.d.ts.map +1 -1
  50. package/dist/commands/tree.js +35 -5
  51. package/dist/commands/tree.js.map +1 -1
  52. package/dist/compare/atom.d.ts +31 -0
  53. package/dist/compare/atom.d.ts.map +1 -0
  54. package/dist/compare/atom.js +4 -0
  55. package/dist/compare/atom.js.map +1 -0
  56. package/dist/compare/clock-time.d.ts +8 -0
  57. package/dist/compare/clock-time.d.ts.map +1 -0
  58. package/dist/compare/clock-time.js +65 -0
  59. package/dist/compare/clock-time.js.map +1 -0
  60. package/dist/compare/extract.d.ts +15 -0
  61. package/dist/compare/extract.d.ts.map +1 -0
  62. package/dist/compare/extract.js +58 -0
  63. package/dist/compare/extract.js.map +1 -0
  64. package/dist/compare/fact-text.d.ts +23 -0
  65. package/dist/compare/fact-text.d.ts.map +1 -0
  66. package/dist/compare/fact-text.js +47 -0
  67. package/dist/compare/fact-text.js.map +1 -0
  68. package/dist/compare/markup-atoms.d.ts +11 -0
  69. package/dist/compare/markup-atoms.d.ts.map +1 -0
  70. package/dist/compare/markup-atoms.js +23 -0
  71. package/dist/compare/markup-atoms.js.map +1 -0
  72. package/dist/compare/match.d.ts +19 -0
  73. package/dist/compare/match.d.ts.map +1 -0
  74. package/dist/compare/match.js +84 -0
  75. package/dist/compare/match.js.map +1 -0
  76. package/dist/compare/outcome.d.ts +33 -0
  77. package/dist/compare/outcome.d.ts.map +1 -0
  78. package/dist/compare/outcome.js +40 -0
  79. package/dist/compare/outcome.js.map +1 -0
  80. package/dist/compare/proper-nouns.d.ts +19 -0
  81. package/dist/compare/proper-nouns.d.ts.map +1 -0
  82. package/dist/compare/proper-nouns.js +44 -0
  83. package/dist/compare/proper-nouns.js.map +1 -0
  84. package/dist/compare/render.d.ts +9 -0
  85. package/dist/compare/render.d.ts.map +1 -0
  86. package/dist/compare/render.js +64 -0
  87. package/dist/compare/render.js.map +1 -0
  88. package/dist/compare/spans.d.ts +9 -0
  89. package/dist/compare/spans.d.ts.map +1 -0
  90. package/dist/compare/spans.js +11 -0
  91. package/dist/compare/spans.js.map +1 -0
  92. package/dist/compare/text-atoms.d.ts +24 -0
  93. package/dist/compare/text-atoms.d.ts.map +1 -0
  94. package/dist/compare/text-atoms.js +67 -0
  95. package/dist/compare/text-atoms.js.map +1 -0
  96. package/dist/compare/text.d.ts +24 -0
  97. package/dist/compare/text.d.ts.map +1 -0
  98. package/dist/compare/text.js +90 -0
  99. package/dist/compare/text.js.map +1 -0
  100. package/dist/compare/tree-atoms.d.ts +20 -0
  101. package/dist/compare/tree-atoms.d.ts.map +1 -0
  102. package/dist/compare/tree-atoms.js +58 -0
  103. package/dist/compare/tree-atoms.js.map +1 -0
  104. package/dist/compare/written-names.d.ts +8 -0
  105. package/dist/compare/written-names.d.ts.map +1 -0
  106. package/dist/compare/written-names.js +24 -0
  107. package/dist/compare/written-names.js.map +1 -0
  108. package/dist/config/load.d.ts +15 -0
  109. package/dist/config/load.d.ts.map +1 -1
  110. package/dist/config/load.js +5 -0
  111. package/dist/config/load.js.map +1 -1
  112. package/dist/config/option-problems.d.ts +16 -0
  113. package/dist/config/option-problems.d.ts.map +1 -0
  114. package/dist/config/option-problems.js +58 -0
  115. package/dist/config/option-problems.js.map +1 -0
  116. package/dist/config/read.d.ts +4 -0
  117. package/dist/config/read.d.ts.map +1 -0
  118. package/dist/config/read.js +8 -0
  119. package/dist/config/read.js.map +1 -0
  120. package/dist/config/rule-problems.d.ts +2 -4
  121. package/dist/config/rule-problems.d.ts.map +1 -1
  122. package/dist/config/rule-problems.js +7 -1
  123. package/dist/config/rule-problems.js.map +1 -1
  124. package/dist/config/style.d.ts +16 -0
  125. package/dist/config/style.d.ts.map +1 -0
  126. package/dist/config/style.js +36 -0
  127. package/dist/config/style.js.map +1 -0
  128. package/dist/config/warnings.d.ts +6 -0
  129. package/dist/config/warnings.d.ts.map +1 -0
  130. package/dist/config/warnings.js +10 -0
  131. package/dist/config/warnings.js.map +1 -0
  132. package/dist/config/write.d.ts.map +1 -1
  133. package/dist/config/write.js +17 -4
  134. package/dist/config/write.js.map +1 -1
  135. package/dist/custom/bounded-match.d.ts +15 -0
  136. package/dist/custom/bounded-match.d.ts.map +1 -0
  137. package/dist/custom/bounded-match.js +43 -0
  138. package/dist/custom/bounded-match.js.map +1 -0
  139. package/dist/custom/load.d.ts +8 -0
  140. package/dist/custom/load.d.ts.map +1 -0
  141. package/dist/custom/load.js +11 -0
  142. package/dist/custom/load.js.map +1 -0
  143. package/dist/custom/parse.d.ts +70 -0
  144. package/dist/custom/parse.d.ts.map +1 -0
  145. package/dist/custom/parse.js +215 -0
  146. package/dist/custom/parse.js.map +1 -0
  147. package/dist/custom/problems.d.ts +5 -0
  148. package/dist/custom/problems.d.ts.map +1 -0
  149. package/dist/custom/problems.js +78 -0
  150. package/dist/custom/problems.js.map +1 -0
  151. package/dist/custom/regex-safety.d.ts +11 -0
  152. package/dist/custom/regex-safety.d.ts.map +1 -0
  153. package/dist/custom/regex-safety.js +110 -0
  154. package/dist/custom/regex-safety.js.map +1 -0
  155. package/dist/custom/token-pattern.d.ts +8 -0
  156. package/dist/custom/token-pattern.d.ts.map +1 -0
  157. package/dist/custom/token-pattern.js +75 -0
  158. package/dist/custom/token-pattern.js.map +1 -0
  159. package/dist/detect.d.ts.map +1 -1
  160. package/dist/detect.js +24 -2
  161. package/dist/detect.js.map +1 -1
  162. package/dist/detectors/acronym-context.d.ts +4 -0
  163. package/dist/detectors/acronym-context.d.ts.map +1 -1
  164. package/dist/detectors/acronym-context.js +25 -4
  165. package/dist/detectors/acronym-context.js.map +1 -1
  166. package/dist/detectors/acronym-expansion.d.ts +2 -0
  167. package/dist/detectors/acronym-expansion.d.ts.map +1 -1
  168. package/dist/detectors/acronym-expansion.js +104 -1
  169. package/dist/detectors/acronym-expansion.js.map +1 -1
  170. package/dist/detectors/agreement-slip.d.ts +32 -0
  171. package/dist/detectors/agreement-slip.d.ts.map +1 -0
  172. package/dist/detectors/agreement-slip.js +137 -0
  173. package/dist/detectors/agreement-slip.js.map +1 -0
  174. package/dist/detectors/ai-phrasing.d.ts +20 -0
  175. package/dist/detectors/ai-phrasing.d.ts.map +1 -0
  176. package/dist/detectors/ai-phrasing.js +112 -0
  177. package/dist/detectors/ai-phrasing.js.map +1 -0
  178. package/dist/detectors/announced-count.d.ts +4 -0
  179. package/dist/detectors/announced-count.d.ts.map +1 -0
  180. package/dist/detectors/announced-count.js +20 -0
  181. package/dist/detectors/announced-count.js.map +1 -0
  182. package/dist/detectors/broken-link.d.ts +17 -0
  183. package/dist/detectors/broken-link.d.ts.map +1 -0
  184. package/dist/detectors/broken-link.js +66 -0
  185. package/dist/detectors/broken-link.js.map +1 -0
  186. package/dist/detectors/cited-name.d.ts.map +1 -1
  187. package/dist/detectors/cited-name.js +4 -4
  188. package/dist/detectors/cited-name.js.map +1 -1
  189. package/dist/detectors/cited-title.d.ts +11 -0
  190. package/dist/detectors/cited-title.d.ts.map +1 -0
  191. package/dist/detectors/cited-title.js +75 -0
  192. package/dist/detectors/cited-title.js.map +1 -0
  193. package/dist/detectors/concrete-evidence.d.ts +1 -1
  194. package/dist/detectors/concrete-evidence.d.ts.map +1 -1
  195. package/dist/detectors/concrete-evidence.js +2 -1
  196. package/dist/detectors/concrete-evidence.js.map +1 -1
  197. package/dist/detectors/content-morphemes.d.ts +4 -0
  198. package/dist/detectors/content-morphemes.d.ts.map +1 -0
  199. package/dist/detectors/content-morphemes.js +12 -0
  200. package/dist/detectors/content-morphemes.js.map +1 -0
  201. package/dist/detectors/contrast-frame.d.ts +17 -0
  202. package/dist/detectors/contrast-frame.d.ts.map +1 -0
  203. package/dist/detectors/contrast-frame.js +32 -0
  204. package/dist/detectors/contrast-frame.js.map +1 -0
  205. package/dist/detectors/custom.d.ts +8 -0
  206. package/dist/detectors/custom.d.ts.map +1 -0
  207. package/dist/detectors/custom.js +71 -0
  208. package/dist/detectors/custom.js.map +1 -0
  209. package/dist/detectors/dangling-figure.d.ts +4 -0
  210. package/dist/detectors/dangling-figure.d.ts.map +1 -0
  211. package/dist/detectors/dangling-figure.js +18 -0
  212. package/dist/detectors/dangling-figure.js.map +1 -0
  213. package/dist/detectors/doubled-punctuation.d.ts +9 -0
  214. package/dist/detectors/doubled-punctuation.d.ts.map +1 -0
  215. package/dist/detectors/doubled-punctuation.js +33 -0
  216. package/dist/detectors/doubled-punctuation.js.map +1 -0
  217. package/dist/detectors/doubled-word.d.ts +5 -0
  218. package/dist/detectors/doubled-word.d.ts.map +1 -1
  219. package/dist/detectors/doubled-word.js +24 -11
  220. package/dist/detectors/doubled-word.js.map +1 -1
  221. package/dist/detectors/en-shape.d.ts +0 -1
  222. package/dist/detectors/en-shape.d.ts.map +1 -1
  223. package/dist/detectors/en-shape.js +0 -235
  224. package/dist/detectors/en-shape.js.map +1 -1
  225. package/dist/detectors/enumerated-runs.d.ts +1 -1
  226. package/dist/detectors/enumerated-runs.d.ts.map +1 -1
  227. package/dist/detectors/enumerated-runs.js +15 -4
  228. package/dist/detectors/enumerated-runs.js.map +1 -1
  229. package/dist/detectors/gram-furniture.d.ts +6 -0
  230. package/dist/detectors/gram-furniture.d.ts.map +1 -0
  231. package/dist/detectors/gram-furniture.js +21 -0
  232. package/dist/detectors/gram-furniture.js.map +1 -0
  233. package/dist/detectors/gram-place.d.ts +2 -0
  234. package/dist/detectors/gram-place.d.ts.map +1 -1
  235. package/dist/detectors/gram-place.js +9 -7
  236. package/dist/detectors/gram-place.js.map +1 -1
  237. package/dist/detectors/gram-windows.d.ts +9 -0
  238. package/dist/detectors/gram-windows.d.ts.map +1 -0
  239. package/dist/detectors/gram-windows.js +27 -0
  240. package/dist/detectors/gram-windows.js.map +1 -0
  241. package/dist/detectors/heading-case.d.ts +2 -0
  242. package/dist/detectors/heading-case.d.ts.map +1 -1
  243. package/dist/detectors/heading-case.js +29 -2
  244. package/dist/detectors/heading-case.js.map +1 -1
  245. package/dist/detectors/heading-code-words.d.ts +6 -0
  246. package/dist/detectors/heading-code-words.d.ts.map +1 -0
  247. package/dist/detectors/heading-code-words.js +29 -0
  248. package/dist/detectors/heading-code-words.js.map +1 -0
  249. package/dist/detectors/heading-echo.d.ts.map +1 -1
  250. package/dist/detectors/heading-echo.js +17 -20
  251. package/dist/detectors/heading-echo.js.map +1 -1
  252. package/dist/detectors/heading-level-skip.d.ts +12 -0
  253. package/dist/detectors/heading-level-skip.d.ts.map +1 -0
  254. package/dist/detectors/heading-level-skip.js +11 -0
  255. package/dist/detectors/heading-level-skip.js.map +1 -0
  256. package/dist/detectors/heading-overlap.d.ts +13 -0
  257. package/dist/detectors/heading-overlap.d.ts.map +1 -0
  258. package/dist/detectors/heading-overlap.js +52 -0
  259. package/dist/detectors/heading-overlap.js.map +1 -0
  260. package/dist/detectors/image-alt-text.d.ts +3 -0
  261. package/dist/detectors/image-alt-text.d.ts.map +1 -0
  262. package/dist/detectors/image-alt-text.js +9 -0
  263. package/dist/detectors/image-alt-text.js.map +1 -0
  264. package/dist/detectors/index.d.ts.map +1 -1
  265. package/dist/detectors/index.js +40 -2
  266. package/dist/detectors/index.js.map +1 -1
  267. package/dist/detectors/kutoten-consistency.d.ts +24 -0
  268. package/dist/detectors/kutoten-consistency.d.ts.map +1 -0
  269. package/dist/detectors/kutoten-consistency.js +77 -0
  270. package/dist/detectors/kutoten-consistency.js.map +1 -0
  271. package/dist/detectors/lead-in.d.ts +1 -0
  272. package/dist/detectors/lead-in.d.ts.map +1 -1
  273. package/dist/detectors/lead-in.js +2 -1
  274. package/dist/detectors/lead-in.js.map +1 -1
  275. package/dist/detectors/letter-joined-name.d.ts +13 -0
  276. package/dist/detectors/letter-joined-name.d.ts.map +1 -0
  277. package/dist/detectors/letter-joined-name.js +11 -0
  278. package/dist/detectors/letter-joined-name.js.map +1 -0
  279. package/dist/detectors/lexicon-match.d.ts +4 -0
  280. package/dist/detectors/lexicon-match.d.ts.map +1 -1
  281. package/dist/detectors/lexicon-match.js +7 -2
  282. package/dist/detectors/lexicon-match.js.map +1 -1
  283. package/dist/detectors/lexicon.d.ts.map +1 -1
  284. package/dist/detectors/lexicon.js +5 -2
  285. package/dist/detectors/lexicon.js.map +1 -1
  286. package/dist/detectors/list-item.d.ts +45 -0
  287. package/dist/detectors/list-item.d.ts.map +1 -0
  288. package/dist/detectors/list-item.js +88 -0
  289. package/dist/detectors/list-item.js.map +1 -0
  290. package/dist/detectors/list-items.d.ts +31 -0
  291. package/dist/detectors/list-items.d.ts.map +1 -0
  292. package/dist/detectors/list-items.js +113 -0
  293. package/dist/detectors/list-items.js.map +1 -0
  294. package/dist/detectors/list-lead-in.d.ts +7 -0
  295. package/dist/detectors/list-lead-in.d.ts.map +1 -0
  296. package/dist/detectors/list-lead-in.js +28 -0
  297. package/dist/detectors/list-lead-in.js.map +1 -0
  298. package/dist/detectors/list-sentence.d.ts +65 -0
  299. package/dist/detectors/list-sentence.d.ts.map +1 -0
  300. package/dist/detectors/list-sentence.js +105 -0
  301. package/dist/detectors/list-sentence.js.map +1 -0
  302. package/dist/detectors/list-view.d.ts +34 -0
  303. package/dist/detectors/list-view.d.ts.map +1 -0
  304. package/dist/detectors/list-view.js +137 -0
  305. package/dist/detectors/list-view.js.map +1 -0
  306. package/dist/detectors/long-vowel.d.ts +7 -0
  307. package/dist/detectors/long-vowel.d.ts.map +1 -0
  308. package/dist/detectors/long-vowel.js +57 -0
  309. package/dist/detectors/long-vowel.js.map +1 -0
  310. package/dist/detectors/markup-finding.d.ts +6 -0
  311. package/dist/detectors/markup-finding.d.ts.map +1 -0
  312. package/dist/detectors/markup-finding.js +19 -0
  313. package/dist/detectors/markup-finding.js.map +1 -0
  314. package/dist/detectors/name-numeral.d.ts +1 -1
  315. package/dist/detectors/name-numeral.d.ts.map +1 -1
  316. package/dist/detectors/name-numeral.js +2 -7
  317. package/dist/detectors/name-numeral.js.map +1 -1
  318. package/dist/detectors/orthography.d.ts.map +1 -1
  319. package/dist/detectors/orthography.js +16 -12
  320. package/dist/detectors/orthography.js.map +1 -1
  321. package/dist/detectors/oxford-comma.d.ts +9 -0
  322. package/dist/detectors/oxford-comma.d.ts.map +1 -0
  323. package/dist/detectors/oxford-comma.js +246 -0
  324. package/dist/detectors/oxford-comma.js.map +1 -0
  325. package/dist/detectors/place-run.d.ts.map +1 -1
  326. package/dist/detectors/place-run.js +10 -6
  327. package/dist/detectors/place-run.js.map +1 -1
  328. package/dist/detectors/placeholder-text.d.ts +9 -0
  329. package/dist/detectors/placeholder-text.d.ts.map +1 -0
  330. package/dist/detectors/placeholder-text.js +18 -0
  331. package/dist/detectors/placeholder-text.js.map +1 -0
  332. package/dist/detectors/quote-around.d.ts +3 -0
  333. package/dist/detectors/quote-around.d.ts.map +1 -0
  334. package/dist/detectors/quote-around.js +8 -0
  335. package/dist/detectors/quote-around.js.map +1 -0
  336. package/dist/detectors/register.d.ts +11 -3
  337. package/dist/detectors/register.d.ts.map +1 -1
  338. package/dist/detectors/register.js +28 -9
  339. package/dist/detectors/register.js.map +1 -1
  340. package/dist/detectors/roman-numeral.d.ts +2 -0
  341. package/dist/detectors/roman-numeral.d.ts.map +1 -1
  342. package/dist/detectors/roman-numeral.js +2 -0
  343. package/dist/detectors/roman-numeral.js.map +1 -1
  344. package/dist/detectors/sentence-ending.d.ts +17 -1
  345. package/dist/detectors/sentence-ending.d.ts.map +1 -1
  346. package/dist/detectors/sentence-ending.js +13 -7
  347. package/dist/detectors/sentence-ending.js.map +1 -1
  348. package/dist/detectors/sentence-length.d.ts.map +1 -1
  349. package/dist/detectors/sentence-length.js +13 -4
  350. package/dist/detectors/sentence-length.js.map +1 -1
  351. package/dist/detectors/signals.d.ts +8 -0
  352. package/dist/detectors/signals.d.ts.map +1 -1
  353. package/dist/detectors/signals.js +94 -54
  354. package/dist/detectors/signals.js.map +1 -1
  355. package/dist/detectors/stacked-hedge.d.ts +0 -7
  356. package/dist/detectors/stacked-hedge.d.ts.map +1 -1
  357. package/dist/detectors/stacked-hedge.js +6 -3
  358. package/dist/detectors/stacked-hedge.js.map +1 -1
  359. package/dist/detectors/stray-space.d.ts +7 -0
  360. package/dist/detectors/stray-space.d.ts.map +1 -0
  361. package/dist/detectors/stray-space.js +34 -0
  362. package/dist/detectors/stray-space.js.map +1 -0
  363. package/dist/detectors/structure-tree.d.ts +6 -0
  364. package/dist/detectors/structure-tree.d.ts.map +1 -1
  365. package/dist/detectors/structure-tree.js +37 -1
  366. package/dist/detectors/structure-tree.js.map +1 -1
  367. package/dist/detectors/structure.d.ts +4 -4
  368. package/dist/detectors/structure.d.ts.map +1 -1
  369. package/dist/detectors/structure.js +7 -6
  370. package/dist/detectors/structure.js.map +1 -1
  371. package/dist/detectors/superlative-name.d.ts.map +1 -1
  372. package/dist/detectors/superlative-name.js +8 -5
  373. package/dist/detectors/superlative-name.js.map +1 -1
  374. package/dist/detectors/superlative-scope.d.ts.map +1 -1
  375. package/dist/detectors/superlative-scope.js +9 -4
  376. package/dist/detectors/superlative-scope.js.map +1 -1
  377. package/dist/detectors/token-column.d.ts +46 -0
  378. package/dist/detectors/token-column.d.ts.map +1 -0
  379. package/dist/detectors/token-column.js +95 -0
  380. package/dist/detectors/token-column.js.map +1 -0
  381. package/dist/detectors/unbalanced-bracket.d.ts +22 -0
  382. package/dist/detectors/unbalanced-bracket.d.ts.map +1 -0
  383. package/dist/detectors/unbalanced-bracket.js +119 -0
  384. package/dist/detectors/unbalanced-bracket.js.map +1 -0
  385. package/dist/detectors/url-run-on.d.ts +9 -0
  386. package/dist/detectors/url-run-on.d.ts.map +1 -0
  387. package/dist/detectors/url-run-on.js +19 -0
  388. package/dist/detectors/url-run-on.js.map +1 -0
  389. package/dist/document-sections.d.ts +13 -0
  390. package/dist/document-sections.d.ts.map +1 -0
  391. package/dist/document-sections.js +32 -0
  392. package/dist/document-sections.js.map +1 -0
  393. package/dist/document.d.ts +11 -4
  394. package/dist/document.d.ts.map +1 -1
  395. package/dist/document.js +99 -95
  396. package/dist/document.js.map +1 -1
  397. package/dist/email-parts.d.ts +28 -0
  398. package/dist/email-parts.d.ts.map +1 -0
  399. package/dist/email-parts.js +230 -0
  400. package/dist/email-parts.js.map +1 -0
  401. package/dist/eval.d.ts +2 -1
  402. package/dist/eval.d.ts.map +1 -1
  403. package/dist/eval.js +16 -4
  404. package/dist/eval.js.map +1 -1
  405. package/dist/figure-references.d.ts +30 -0
  406. package/dist/figure-references.d.ts.map +1 -0
  407. package/dist/figure-references.js +76 -0
  408. package/dist/figure-references.js.map +1 -0
  409. package/dist/files.d.ts +2 -0
  410. package/dist/files.d.ts.map +1 -1
  411. package/dist/files.js +4 -0
  412. package/dist/files.js.map +1 -1
  413. package/dist/genre-parse.d.ts +5 -1
  414. package/dist/genre-parse.d.ts.map +1 -1
  415. package/dist/genre-parse.js +16 -3
  416. package/dist/genre-parse.js.map +1 -1
  417. package/dist/genre-suggest.d.ts.map +1 -1
  418. package/dist/genre-suggest.js +15 -1
  419. package/dist/genre-suggest.js.map +1 -1
  420. package/dist/heading-label.d.ts +22 -0
  421. package/dist/heading-label.d.ts.map +1 -0
  422. package/dist/heading-label.js +50 -0
  423. package/dist/heading-label.js.map +1 -0
  424. package/dist/in-page-nav.d.ts +4 -1
  425. package/dist/in-page-nav.d.ts.map +1 -1
  426. package/dist/in-page-nav.js +53 -18
  427. package/dist/in-page-nav.js.map +1 -1
  428. package/dist/joined-view.d.ts.map +1 -1
  429. package/dist/joined-view.js +1 -0
  430. package/dist/joined-view.js.map +1 -1
  431. package/dist/levels.d.ts +5 -1
  432. package/dist/levels.d.ts.map +1 -1
  433. package/dist/levels.js +9 -0
  434. package/dist/levels.js.map +1 -1
  435. package/dist/line-paragraphs.d.ts +8 -0
  436. package/dist/line-paragraphs.d.ts.map +1 -1
  437. package/dist/line-paragraphs.js +36 -11
  438. package/dist/line-paragraphs.js.map +1 -1
  439. package/dist/long-vowel.d.ts +35 -0
  440. package/dist/long-vowel.d.ts.map +1 -0
  441. package/dist/long-vowel.js +71 -0
  442. package/dist/long-vowel.js.map +1 -0
  443. package/dist/markdown-node.d.ts +19 -0
  444. package/dist/markdown-node.d.ts.map +1 -0
  445. package/dist/markdown-node.js +6 -0
  446. package/dist/markdown-node.js.map +1 -0
  447. package/dist/markdown-read.d.ts +17 -0
  448. package/dist/markdown-read.d.ts.map +1 -0
  449. package/dist/markdown-read.js +37 -0
  450. package/dist/markdown-read.js.map +1 -0
  451. package/dist/markup.d.ts +22 -0
  452. package/dist/markup.d.ts.map +1 -0
  453. package/dist/markup.js +180 -0
  454. package/dist/markup.js.map +1 -0
  455. package/dist/mask.d.ts.map +1 -1
  456. package/dist/mask.js +10 -16
  457. package/dist/mask.js.map +1 -1
  458. package/dist/number-name.d.ts +21 -5
  459. package/dist/number-name.d.ts.map +1 -1
  460. package/dist/number-name.js +120 -18
  461. package/dist/number-name.js.map +1 -1
  462. package/dist/opening-line.d.ts +3 -0
  463. package/dist/opening-line.d.ts.map +1 -0
  464. package/dist/opening-line.js +14 -0
  465. package/dist/opening-line.js.map +1 -0
  466. package/dist/orthography.d.ts +7 -1
  467. package/dist/orthography.d.ts.map +1 -1
  468. package/dist/orthography.js +16 -5
  469. package/dist/orthography.js.map +1 -1
  470. package/dist/page-furniture.d.ts +5 -2
  471. package/dist/page-furniture.d.ts.map +1 -1
  472. package/dist/page-furniture.js +8 -2
  473. package/dist/page-furniture.js.map +1 -1
  474. package/dist/paragraph-length.d.ts +7 -0
  475. package/dist/paragraph-length.d.ts.map +1 -0
  476. package/dist/paragraph-length.js +10 -0
  477. package/dist/paragraph-length.js.map +1 -0
  478. package/dist/plain-source.d.ts +1 -0
  479. package/dist/plain-source.d.ts.map +1 -1
  480. package/dist/plain-source.js +2 -1
  481. package/dist/plain-source.js.map +1 -1
  482. package/dist/plugin.d.ts +121 -0
  483. package/dist/plugin.d.ts.map +1 -1
  484. package/dist/profile/for-file.d.ts.map +1 -1
  485. package/dist/profile/for-file.js +3 -1
  486. package/dist/profile/for-file.js.map +1 -1
  487. package/dist/quoted-span.d.ts +0 -2
  488. package/dist/quoted-span.d.ts.map +1 -1
  489. package/dist/quoted-span.js +9 -4
  490. package/dist/quoted-span.js.map +1 -1
  491. package/dist/reasons.d.ts +3 -0
  492. package/dist/reasons.d.ts.map +1 -1
  493. package/dist/reasons.js +6 -0
  494. package/dist/reasons.js.map +1 -1
  495. package/dist/reference-lists.d.ts +3 -0
  496. package/dist/reference-lists.d.ts.map +1 -0
  497. package/dist/reference-lists.js +75 -0
  498. package/dist/reference-lists.js.map +1 -0
  499. package/dist/render/explain.d.ts +7 -1
  500. package/dist/render/explain.d.ts.map +1 -1
  501. package/dist/render/explain.js +36 -12
  502. package/dist/render/explain.js.map +1 -1
  503. package/dist/render/friendly.d.ts.map +1 -1
  504. package/dist/render/friendly.js +19 -9
  505. package/dist/render/friendly.js.map +1 -1
  506. package/dist/render/options.d.ts +7 -0
  507. package/dist/render/options.d.ts.map +1 -0
  508. package/dist/render/options.js +50 -0
  509. package/dist/render/options.js.map +1 -0
  510. package/dist/render/rules-json.d.ts +4 -1
  511. package/dist/render/rules-json.d.ts.map +1 -1
  512. package/dist/render/rules-json.js +102 -12
  513. package/dist/render/rules-json.js.map +1 -1
  514. package/dist/render/rules-table.d.ts +4 -0
  515. package/dist/render/rules-table.d.ts.map +1 -0
  516. package/dist/render/rules-table.js +70 -0
  517. package/dist/render/rules-table.js.map +1 -0
  518. package/dist/render/sarif.js +4 -4
  519. package/dist/render/sarif.js.map +1 -1
  520. package/dist/render/semantic.js +3 -3
  521. package/dist/render/semantic.js.map +1 -1
  522. package/dist/render/severity-name.d.ts +6 -0
  523. package/dist/render/severity-name.d.ts.map +1 -0
  524. package/dist/render/severity-name.js +7 -0
  525. package/dist/render/severity-name.js.map +1 -0
  526. package/dist/render/text.d.ts +7 -2
  527. package/dist/render/text.d.ts.map +1 -1
  528. package/dist/render/text.js +15 -4
  529. package/dist/render/text.js.map +1 -1
  530. package/dist/resolve-genre.d.ts +1 -1
  531. package/dist/resolve-genre.d.ts.map +1 -1
  532. package/dist/resolve-genre.js +4 -1
  533. package/dist/resolve-genre.js.map +1 -1
  534. package/dist/rule-genres.d.ts +24 -0
  535. package/dist/rule-genres.d.ts.map +1 -0
  536. package/dist/rule-genres.js +11 -0
  537. package/dist/rule-genres.js.map +1 -0
  538. package/dist/rule-guide.d.ts +54 -0
  539. package/dist/rule-guide.d.ts.map +1 -0
  540. package/dist/rule-guide.js +81 -0
  541. package/dist/rule-guide.js.map +1 -0
  542. package/dist/rule-load.d.ts.map +1 -1
  543. package/dist/rule-load.js +94 -32
  544. package/dist/rule-load.js.map +1 -1
  545. package/dist/rule-options.d.ts +50 -0
  546. package/dist/rule-options.d.ts.map +1 -0
  547. package/dist/rule-options.js +106 -0
  548. package/dist/rule-options.js.map +1 -0
  549. package/dist/run-semantic.d.ts +3 -1
  550. package/dist/run-semantic.d.ts.map +1 -1
  551. package/dist/run-semantic.js +8 -3
  552. package/dist/run-semantic.js.map +1 -1
  553. package/dist/run.d.ts +15 -0
  554. package/dist/run.d.ts.map +1 -1
  555. package/dist/run.js +57 -10
  556. package/dist/run.js.map +1 -1
  557. package/dist/semantic.d.ts +1 -1
  558. package/dist/semantic.d.ts.map +1 -1
  559. package/dist/semantic.js +10 -3
  560. package/dist/semantic.js.map +1 -1
  561. package/dist/sentence-shape.d.ts.map +1 -1
  562. package/dist/sentence-shape.js +4 -4
  563. package/dist/sentence-shape.js.map +1 -1
  564. package/dist/setting-problems.d.ts +2 -1
  565. package/dist/setting-problems.d.ts.map +1 -1
  566. package/dist/setting-problems.js +6 -1
  567. package/dist/setting-problems.js.map +1 -1
  568. package/dist/span-cut.d.ts +6 -0
  569. package/dist/span-cut.d.ts.map +1 -0
  570. package/dist/span-cut.js +22 -0
  571. package/dist/span-cut.js.map +1 -0
  572. package/dist/span-merge.d.ts +4 -0
  573. package/dist/span-merge.d.ts.map +1 -0
  574. package/dist/span-merge.js +12 -0
  575. package/dist/span-merge.js.map +1 -0
  576. package/dist/speaker-labels.d.ts +4 -0
  577. package/dist/speaker-labels.d.ts.map +1 -0
  578. package/dist/speaker-labels.js +106 -0
  579. package/dist/speaker-labels.js.map +1 -0
  580. package/dist/stray-space.d.ts +17 -0
  581. package/dist/stray-space.d.ts.map +1 -0
  582. package/dist/stray-space.js +66 -0
  583. package/dist/stray-space.js.map +1 -0
  584. package/dist/structure/aside-depth.d.ts +21 -0
  585. package/dist/structure/aside-depth.d.ts.map +1 -0
  586. package/dist/structure/aside-depth.js +65 -0
  587. package/dist/structure/aside-depth.js.map +1 -0
  588. package/dist/structure/build.d.ts +5 -1
  589. package/dist/structure/build.d.ts.map +1 -1
  590. package/dist/structure/build.js +29 -17
  591. package/dist/structure/build.js.map +1 -1
  592. package/dist/structure/closed-pairs.d.ts +8 -0
  593. package/dist/structure/closed-pairs.d.ts.map +1 -0
  594. package/dist/structure/closed-pairs.js +22 -0
  595. package/dist/structure/closed-pairs.js.map +1 -0
  596. package/dist/structure/date-range.d.ts +21 -0
  597. package/dist/structure/date-range.d.ts.map +1 -0
  598. package/dist/structure/date-range.js +45 -0
  599. package/dist/structure/date-range.js.map +1 -0
  600. package/dist/structure/known-mentions.d.ts +18 -0
  601. package/dist/structure/known-mentions.d.ts.map +1 -0
  602. package/dist/structure/known-mentions.js +78 -0
  603. package/dist/structure/known-mentions.js.map +1 -0
  604. package/dist/structure/numbering.d.ts +1 -0
  605. package/dist/structure/numbering.d.ts.map +1 -1
  606. package/dist/structure/numbering.js +11 -6
  607. package/dist/structure/numbering.js.map +1 -1
  608. package/dist/structure/of.d.ts +3 -1
  609. package/dist/structure/of.d.ts.map +1 -1
  610. package/dist/structure/of.js +5 -1
  611. package/dist/structure/of.js.map +1 -1
  612. package/dist/structure/percent-sum.d.ts +16 -0
  613. package/dist/structure/percent-sum.d.ts.map +1 -0
  614. package/dist/structure/percent-sum.js +104 -0
  615. package/dist/structure/percent-sum.js.map +1 -0
  616. package/dist/structure/quoted-number.d.ts +8 -0
  617. package/dist/structure/quoted-number.d.ts.map +1 -0
  618. package/dist/structure/quoted-number.js +34 -0
  619. package/dist/structure/quoted-number.js.map +1 -0
  620. package/dist/structure/relative-find.d.ts.map +1 -1
  621. package/dist/structure/relative-find.js +34 -46
  622. package/dist/structure/relative-find.js.map +1 -1
  623. package/dist/structure/relative-resolve.d.ts.map +1 -1
  624. package/dist/structure/relative-resolve.js +94 -42
  625. package/dist/structure/relative-resolve.js.map +1 -1
  626. package/dist/structure/runs.d.ts +2 -0
  627. package/dist/structure/runs.d.ts.map +1 -1
  628. package/dist/structure/runs.js +2 -2
  629. package/dist/structure/runs.js.map +1 -1
  630. package/dist/structure/sexp.d.ts +1 -1
  631. package/dist/structure/sexp.d.ts.map +1 -1
  632. package/dist/structure/sexp.js +18 -6
  633. package/dist/structure/sexp.js.map +1 -1
  634. package/dist/structure/total.d.ts +3 -0
  635. package/dist/structure/total.d.ts.map +1 -1
  636. package/dist/structure/total.js +2 -2
  637. package/dist/structure/total.js.map +1 -1
  638. package/dist/structure/universal.d.ts +14 -2
  639. package/dist/structure/universal.d.ts.map +1 -1
  640. package/dist/structure/universal.js +17 -2
  641. package/dist/structure/universal.js.map +1 -1
  642. package/dist/structure/wrapped-tail.d.ts +14 -7
  643. package/dist/structure/wrapped-tail.d.ts.map +1 -1
  644. package/dist/structure/wrapped-tail.js +33 -8
  645. package/dist/structure/wrapped-tail.js.map +1 -1
  646. package/dist/style-load.d.ts +4 -0
  647. package/dist/style-load.d.ts.map +1 -0
  648. package/dist/style-load.js +28 -0
  649. package/dist/style-load.js.map +1 -0
  650. package/dist/style-parse.d.ts +19 -0
  651. package/dist/style-parse.d.ts.map +1 -0
  652. package/dist/style-parse.js +60 -0
  653. package/dist/style-parse.js.map +1 -0
  654. package/dist/subheading-line.d.ts +6 -0
  655. package/dist/subheading-line.d.ts.map +1 -0
  656. package/dist/subheading-line.js +57 -0
  657. package/dist/subheading-line.js.map +1 -0
  658. package/dist/team-names.d.ts.map +1 -1
  659. package/dist/team-names.js +11 -14
  660. package/dist/team-names.js.map +1 -1
  661. package/dist/template-syntax.d.ts +17 -0
  662. package/dist/template-syntax.d.ts.map +1 -0
  663. package/dist/template-syntax.js +140 -0
  664. package/dist/template-syntax.js.map +1 -0
  665. package/dist/text-above.d.ts +19 -0
  666. package/dist/text-above.d.ts.map +1 -0
  667. package/dist/text-above.js +43 -0
  668. package/dist/text-above.js.map +1 -0
  669. package/dist/text-figures.d.ts +10 -0
  670. package/dist/text-figures.d.ts.map +1 -0
  671. package/dist/text-figures.js +131 -0
  672. package/dist/text-figures.js.map +1 -0
  673. package/dist/trailing-aside.d.ts +2 -0
  674. package/dist/trailing-aside.d.ts.map +1 -0
  675. package/dist/trailing-aside.js +53 -0
  676. package/dist/trailing-aside.js.map +1 -0
  677. package/dist/tree-walk.d.ts +18 -0
  678. package/dist/tree-walk.d.ts.map +1 -0
  679. package/dist/tree-walk.js +45 -0
  680. package/dist/tree-walk.js.map +1 -0
  681. package/genres.yaml +60 -2
  682. package/package.json +5 -3
  683. package/reference-headings.yaml +17 -0
  684. package/rules/adverb-overuse.yaml +19 -0
  685. package/rules/agentless-passive.yaml +19 -0
  686. package/rules/agreement-slip.yaml +49 -0
  687. package/rules/ai-generated-composite.yaml +102 -0
  688. package/rules/ai-tell.yaml +23 -0
  689. package/rules/announced-count-mismatch.yaml +57 -0
  690. package/rules/announcing-opener.yaml +51 -0
  691. package/rules/assistant-residue.yaml +52 -0
  692. package/rules/bold-density.yaml +31 -0
  693. package/rules/broken-link.yaml +65 -0
  694. package/rules/closing-cliche.yaml +33 -0
  695. package/rules/colon-lead-in.yaml +59 -0
  696. package/rules/concrete-evidence-density.yaml +41 -0
  697. package/rules/contraction-consistency.yaml +18 -0
  698. package/rules/contrast-framing.yaml +57 -0
  699. package/rules/cushion-phrase-density.yaml +25 -0
  700. package/rules/dangling-figure-reference.yaml +61 -0
  701. package/rules/dangling-reference.yaml +53 -1
  702. package/rules/date-order.yaml +33 -1
  703. package/rules/date-range-reversed.yaml +46 -0
  704. package/rules/date-weekday-mismatch.yaml +17 -1
  705. package/rules/double-keigo.yaml +16 -0
  706. package/rules/doubled-punctuation.yaml +45 -0
  707. package/rules/doubled-word.yaml +17 -1
  708. package/rules/duplicate-definition.yaml +59 -1
  709. package/rules/emoji-density.yaml +25 -0
  710. package/rules/empty-conclusion.yaml +29 -0
  711. package/rules/empty-intensifier.yaml +19 -0
  712. package/rules/excessive-hedging.yaml +19 -0
  713. package/rules/expletive-construction.yaml +19 -0
  714. package/rules/heading-echo.yaml +32 -0
  715. package/rules/heading-level-skip.yaml +78 -0
  716. package/rules/hiragana-fukushi.yaml +16 -0
  717. package/rules/image-alt-text.yaml +54 -0
  718. package/rules/internal-jargon.yaml +21 -0
  719. package/rules/katakana-long-vowel.yaml +98 -0
  720. package/rules/kutoten-consistency.yaml +53 -0
  721. package/rules/latin-spacing.yaml +23 -4
  722. package/rules/max-kanji-continuous.yaml +16 -0
  723. package/rules/max-paragraph-length.yaml +42 -2
  724. package/rules/max-sentence-length.yaml +36 -0
  725. package/rules/ngram-repetition.yaml +29 -2
  726. package/rules/no-doubled-joshi.yaml +16 -0
  727. package/rules/no-em-dash.yaml +25 -0
  728. package/rules/no-mixed-desumasu.yaml +27 -2
  729. package/rules/no-nakaguro-parallel.yaml +20 -0
  730. package/rules/numbering-gap.yaml +53 -1
  731. package/rules/oxford-comma-consistency.yaml +19 -1
  732. package/rules/padded-intro.yaml +19 -0
  733. package/rules/paragraph-length-variance.yaml +49 -0
  734. package/rules/percent-sum-mismatch.yaml +58 -0
  735. package/rules/preamble-length.yaml +56 -0
  736. package/rules/preferred-term.yaml +27 -0
  737. package/rules/proper-noun-density.yaml +26 -0
  738. package/rules/repeated-conjunction.yaml +47 -0
  739. package/rules/repeated-sentence-head.yaml +23 -0
  740. package/rules/required-sections.yaml +49 -0
  741. package/rules/risk-disclosure.yaml +22 -0
  742. package/rules/rule-of-three.yaml +97 -0
  743. package/rules/sasete-itadaku.yaml +18 -0
  744. package/rules/section-length-uniformity.yaml +89 -0
  745. package/rules/sentence-initial-conjunction-run.yaml +18 -0
  746. package/rules/sentence-rhythm.yaml +25 -0
  747. package/rules/stock-transition.yaml +55 -0
  748. package/rules/stray-space.yaml +56 -0
  749. package/rules/taigen-dome-in-prose.yaml +19 -0
  750. package/rules/title-case-consistency.yaml +42 -0
  751. package/rules/total-mismatch.yaml +37 -1
  752. package/rules/unbalanced-bracket.yaml +56 -0
  753. package/rules/undefined-acronym.yaml +23 -0
  754. package/rules/unfilled-placeholder.yaml +50 -0
  755. package/rules/unqualified-superlative.yaml +19 -0
  756. package/rules/unsourced-number.yaml +16 -0
  757. package/rules/url-run-on.yaml +45 -0
  758. package/skills/chaff/SKILL.md +70 -0
  759. package/src/announced-count.ts +148 -0
  760. package/src/bare-url.ts +35 -0
  761. package/src/baseline.ts +17 -1
  762. package/src/body-section.ts +7 -0
  763. package/src/calendar-number.ts +33 -10
  764. package/src/cli-args.ts +6 -0
  765. package/src/cli-text.ts +8 -4
  766. package/src/cli.ts +37 -37
  767. package/src/closing-numbers.ts +72 -0
  768. package/src/commands/compare.ts +80 -0
  769. package/src/commands/eval.ts +19 -8
  770. package/src/commands/feedback.ts +12 -6
  771. package/src/commands/test.ts +20 -17
  772. package/src/commands/tree.ts +41 -5
  773. package/src/compare/atom.ts +33 -0
  774. package/src/compare/clock-time.ts +86 -0
  775. package/src/compare/extract.ts +78 -0
  776. package/src/compare/fact-text.ts +68 -0
  777. package/src/compare/markup-atoms.ts +29 -0
  778. package/src/compare/match.ts +105 -0
  779. package/src/compare/outcome.ts +70 -0
  780. package/src/compare/proper-nouns.ts +65 -0
  781. package/src/compare/render.ts +102 -0
  782. package/src/compare/spans.ts +17 -0
  783. package/src/compare/text-atoms.ts +95 -0
  784. package/src/compare/text.ts +120 -0
  785. package/src/compare/tree-atoms.ts +80 -0
  786. package/src/compare/written-names.ts +26 -0
  787. package/src/config/load.ts +21 -0
  788. package/src/config/option-problems.ts +70 -0
  789. package/src/config/read.ts +8 -0
  790. package/src/config/rule-problems.ts +12 -2
  791. package/src/config/style.ts +42 -0
  792. package/src/config/warnings.ts +13 -0
  793. package/src/config/write.ts +18 -4
  794. package/src/custom/bounded-match.ts +58 -0
  795. package/src/custom/load.ts +15 -0
  796. package/src/custom/parse.ts +274 -0
  797. package/src/custom/problems.ts +89 -0
  798. package/src/custom/regex-safety.ts +118 -0
  799. package/src/custom/token-pattern.ts +84 -0
  800. package/src/detect.ts +28 -2
  801. package/src/detectors/acronym-context.ts +32 -4
  802. package/src/detectors/acronym-expansion.ts +132 -1
  803. package/src/detectors/agreement-slip.ts +191 -0
  804. package/src/detectors/ai-phrasing.ts +137 -0
  805. package/src/detectors/announced-count.ts +25 -0
  806. package/src/detectors/broken-link.ts +90 -0
  807. package/src/detectors/cited-name.ts +6 -5
  808. package/src/detectors/cited-title.ts +96 -0
  809. package/src/detectors/concrete-evidence.ts +3 -2
  810. package/src/detectors/content-morphemes.ts +19 -0
  811. package/src/detectors/contrast-frame.ts +54 -0
  812. package/src/detectors/custom.ts +89 -0
  813. package/src/detectors/dangling-figure.ts +22 -0
  814. package/src/detectors/doubled-punctuation.ts +49 -0
  815. package/src/detectors/doubled-word.ts +19 -4
  816. package/src/detectors/en-shape.ts +0 -269
  817. package/src/detectors/enumerated-runs.ts +13 -4
  818. package/src/detectors/gram-furniture.ts +30 -0
  819. package/src/detectors/gram-place.ts +9 -5
  820. package/src/detectors/gram-windows.ts +31 -0
  821. package/src/detectors/heading-case.ts +30 -2
  822. package/src/detectors/heading-code-words.ts +35 -0
  823. package/src/detectors/heading-echo.ts +18 -22
  824. package/src/detectors/heading-level-skip.ts +19 -0
  825. package/src/detectors/heading-overlap.ts +65 -0
  826. package/src/detectors/image-alt-text.ts +11 -0
  827. package/src/detectors/index.ts +49 -2
  828. package/src/detectors/kutoten-consistency.ts +96 -0
  829. package/src/detectors/lead-in.ts +3 -1
  830. package/src/detectors/letter-joined-name.ts +15 -0
  831. package/src/detectors/lexicon-match.ts +9 -2
  832. package/src/detectors/lexicon.ts +6 -2
  833. package/src/detectors/list-item.ts +122 -0
  834. package/src/detectors/list-items.ts +163 -0
  835. package/src/detectors/list-lead-in.ts +33 -0
  836. package/src/detectors/list-sentence.ts +157 -0
  837. package/src/detectors/list-view.ts +157 -0
  838. package/src/detectors/long-vowel.ts +66 -0
  839. package/src/detectors/markup-finding.ts +24 -0
  840. package/src/detectors/name-numeral.ts +4 -2
  841. package/src/detectors/orthography.ts +24 -18
  842. package/src/detectors/oxford-comma.ts +297 -0
  843. package/src/detectors/place-run.ts +7 -4
  844. package/src/detectors/placeholder-text.ts +27 -0
  845. package/src/detectors/quote-around.ts +9 -0
  846. package/src/detectors/register.ts +37 -10
  847. package/src/detectors/roman-numeral.ts +3 -0
  848. package/src/detectors/sentence-ending.ts +14 -7
  849. package/src/detectors/sentence-length.ts +16 -5
  850. package/src/detectors/signals.ts +110 -53
  851. package/src/detectors/stacked-hedge.ts +6 -3
  852. package/src/detectors/stray-space.ts +40 -0
  853. package/src/detectors/structure-tree.ts +45 -1
  854. package/src/detectors/structure.ts +13 -6
  855. package/src/detectors/superlative-name.ts +7 -4
  856. package/src/detectors/superlative-scope.ts +8 -3
  857. package/src/detectors/token-column.ts +149 -0
  858. package/src/detectors/unbalanced-bracket.ts +153 -0
  859. package/src/detectors/url-run-on.ts +27 -0
  860. package/src/document-sections.ts +46 -0
  861. package/src/document.ts +116 -127
  862. package/src/email-parts.ts +269 -0
  863. package/src/eval.ts +14 -4
  864. package/src/figure-references.ts +112 -0
  865. package/src/files.ts +5 -0
  866. package/src/genre-parse.ts +30 -5
  867. package/src/genre-suggest.ts +15 -2
  868. package/src/heading-label.ts +55 -0
  869. package/src/in-page-nav.ts +48 -19
  870. package/src/joined-view.ts +1 -0
  871. package/src/levels.ts +14 -1
  872. package/src/line-paragraphs.ts +56 -10
  873. package/src/long-vowel.ts +99 -0
  874. package/src/markdown-node.ts +19 -0
  875. package/src/markdown-read.ts +44 -0
  876. package/src/markup.ts +210 -0
  877. package/src/mask.ts +10 -19
  878. package/src/number-name.ts +152 -25
  879. package/src/opening-line.ts +17 -0
  880. package/src/orthography.ts +20 -5
  881. package/src/page-furniture.ts +11 -2
  882. package/src/paragraph-length.ts +9 -0
  883. package/src/plain-source.ts +2 -1
  884. package/src/plugin.ts +107 -1
  885. package/src/profile/for-file.ts +3 -1
  886. package/src/quoted-span.ts +10 -4
  887. package/src/reasons.ts +9 -0
  888. package/src/reference-lists.ts +91 -0
  889. package/src/render/explain.ts +47 -13
  890. package/src/render/friendly.ts +20 -9
  891. package/src/render/options.ts +58 -0
  892. package/src/render/rules-json.ts +130 -14
  893. package/src/render/rules-table.ts +91 -0
  894. package/src/render/sarif.ts +4 -4
  895. package/src/render/semantic.ts +3 -3
  896. package/src/render/severity-name.ts +10 -0
  897. package/src/render/text.ts +21 -7
  898. package/src/resolve-genre.ts +4 -1
  899. package/src/rule-genres.ts +25 -0
  900. package/src/rule-guide.ts +135 -0
  901. package/src/rule-load.ts +98 -33
  902. package/src/rule-options.ts +131 -0
  903. package/src/run-semantic.ts +28 -20
  904. package/src/run.ts +78 -11
  905. package/src/semantic.ts +11 -3
  906. package/src/sentence-shape.ts +4 -5
  907. package/src/setting-problems.ts +7 -1
  908. package/src/span-cut.ts +28 -0
  909. package/src/span-merge.ts +13 -0
  910. package/src/speaker-labels.ts +129 -0
  911. package/src/stray-space.ts +81 -0
  912. package/src/structure/aside-depth.ts +67 -0
  913. package/src/structure/build.ts +38 -19
  914. package/src/structure/closed-pairs.ts +20 -0
  915. package/src/structure/date-range.ts +69 -0
  916. package/src/structure/known-mentions.ts +96 -0
  917. package/src/structure/numbering.ts +9 -5
  918. package/src/structure/of.ts +11 -3
  919. package/src/structure/percent-sum.ts +135 -0
  920. package/src/structure/quoted-number.ts +36 -0
  921. package/src/structure/relative-find.ts +34 -47
  922. package/src/structure/relative-resolve.ts +104 -42
  923. package/src/structure/runs.ts +2 -2
  924. package/src/structure/sexp.ts +17 -5
  925. package/src/structure/total.ts +2 -2
  926. package/src/structure/universal.ts +24 -4
  927. package/src/structure/wrapped-tail.ts +38 -13
  928. package/src/style-load.ts +28 -0
  929. package/src/style-parse.ts +77 -0
  930. package/src/subheading-line.ts +68 -0
  931. package/src/team-names.ts +13 -13
  932. package/src/template-syntax.ts +164 -0
  933. package/src/text-above.ts +49 -0
  934. package/src/text-figures.ts +147 -0
  935. package/src/trailing-aside.ts +50 -0
  936. package/src/tree-walk.ts +48 -0
  937. package/styles/bunkacho.yaml +25 -0
  938. package/styles/ieice.yaml +29 -0
  939. package/styles/jis-z8301-2011.yaml +25 -0
@@ -0,0 +1,65 @@
1
+ id: broken-link
2
+ layer: L1
3
+ status: experimental
4
+ how_to_find: broken-link
5
+ requires: [markdown]
6
+ severity: warning
7
+
8
+ name:
9
+ ja: ่กŒใๅ…ˆใฎ็„กใ„ใƒชใƒณใ‚ฏ
10
+ en: Link that goes nowhere
11
+
12
+ why:
13
+ ja: ๆŠผใ—ใฆใ‚‚ไฝ•ใ‚‚่ตทใใชใ„ใƒชใƒณใ‚ฏใฏใ€่ชญใฟๆ‰‹ใซใ€Œใ‚ใ‚‹ใฏใšใฎๆƒ…ๅ ฑใŒ็„กใ„ใ€ใจๆ€ใ‚ใ›ใพใ™ใ€‚ไธ‰ใคใ‚’่ฆ‹ใพใ™ใ€‚่กŒใๅ…ˆใŒ็ฉบใฎใƒชใƒณใ‚ฏ๏ผˆ[่ณ‡ๆ–™]()๏ผ‰ใ€ๅŒใ˜ใƒšใƒผใ‚ธใฎ่ฆ‹ๅ‡บใ—ใ‚’ๆŒ‡ใ™ใฎใซใใฎ่ฆ‹ๅ‡บใ—ใŒ็„กใ„ใƒชใƒณใ‚ฏ๏ผˆ[ๆ‰‹้ †](#ๆ‰‹้ †) ใงใ€Œๆ‰‹้ †ใ€ใฎ่ฆ‹ๅ‡บใ—ใ‚’ๆถˆใ—ใŸใƒปๆ›ธใๆ›ใˆใŸ๏ผ‰ใ€ๅ‚็…งใฎๅฝขใงๆ›ธใ„ใŸใฎใซๅฎš็พฉใŒ็„กใ„ใ‚‚ใฎ๏ผˆ[่ณ‡ๆ–™][1] ใงใ€Œ[1]:ใ€ใฎ่กŒใŒ็„กใ„ใ€‚ใใฎใพใพๅญ—ใง่กจ็คบใ•ใ‚Œใพใ™๏ผ‰ใ€‚่ฆ‹ๅ‡บใ—ใ‹ใ‚‰ๅๅ‰ใ‚’ไฝœใ‚‹ๆฑบใพใ‚Šใฏ่กจ็คบใ™ใ‚‹ใ‚‚ใฎใ”ใจใซ้•ใ†ใฎใงใ€ๅญ—ใจๆ•ฐๅญ—ใ ใ‘ใ‚’ๆฏ”ในใ€ๅคงๆ–‡ๅญ—ๅฐๆ–‡ๅญ—ใƒป็ฉบ็™ฝใƒป่จ˜ๅทใฎ้•ใ„ใฏๅ•ใ„ใพใ›ใ‚“ใ€‚[1][2] ใฎใ‚ˆใ†ใซๆ•ฐใ ใ‘ใฎๆ‹ฌๅผงใฏๆ–‡็Œฎใฎ็•ชๅทใจใ—ใฆๆ•ฐใˆใพใ›ใ‚“๏ผˆmarkdownlint ใฎ MD042ใƒปMD051ใƒปMD052๏ผ‰ใ€‚
14
+ en: A link that does nothing when clicked tells the reader something is missing. Three kinds are checked. A link with an empty destination ("[report]()"); a link to a heading on the same page that the page does not have ("[Setup](#setup)" after the heading was renamed or removed); and a reference-style link whose label is never defined ("[report][1]" with no "[1]:" line), which is shown as plain brackets. Renderers build heading anchors differently, so only letters and digits are compared; case, spaces and punctuation do not matter. Brackets holding only numbers ("[1][2]") are citation numbers and are not counted (markdownlint's MD042, MD051 and MD052).
15
+
16
+ message:
17
+ ja: ใƒชใƒณใ‚ฏใ€Œ{link}ใ€ใฎ่กŒใๅ…ˆใŒใ‚ใ‚Šใพใ›ใ‚“
18
+ en: 'The link "{link}" goes nowhere'
19
+
20
+ messages:
21
+ empty:
22
+ ja: ใƒชใƒณใ‚ฏใ€Œ{link}ใ€ใฎ่กŒใๅ…ˆใŒ็ฉบใงใ™
23
+ en: 'The link "{link}" has an empty destination'
24
+ anchor:
25
+ ja: ใƒชใƒณใ‚ฏใ€Œ{link}ใ€ใŒๆŒ‡ใ™ใ€Œ{target}ใ€ใฎ่ฆ‹ๅ‡บใ—ใŒใ“ใฎๆ–‡ๆ›ธใซใ‚ใ‚Šใพใ›ใ‚“
26
+ en: 'The link "{link}" points to "{target}", which is not a heading on this page'
27
+ reference:
28
+ ja: ใ€Œ{link}ใ€ใฏๅ‚็…งใฎๅฝขใงใ™ใŒใ€ๅๅ‰ใฎๅฎš็พฉใŒใ‚ใ‚Šใพใ›ใ‚“๏ผˆๅญ—ใฎใพใพ่กจ็คบใ•ใ‚Œใพใ™๏ผ‰
29
+ en: '"{link}" is a reference-style link with no definition (it shows as plain text)'
30
+
31
+ how_to_fix:
32
+ ja: "่กŒใๅ…ˆใ‚’ๆ›ธใ„ใฆใใ ใ•ใ„ใ€‚่ฆ‹ๅ‡บใ—ใ‚’ๆŒ‡ใ™ใชใ‚‰ใ€ไปŠใฎ่ฆ‹ๅ‡บใ—ใฎ่จ€่‘‰ใซๅˆใ‚ใ›ใฆใใ ใ•ใ„ใ€‚ๅ‚็…งใฎๅฝขใชใ‚‰ใ€ๆ–‡ๆ›ธใฎใฉใ“ใ‹ใซใ€Œ[ๅๅ‰]: URLใ€ใฎ่กŒใ‚’่ถณใ—ใฆใใ ใ•ใ„ใ€‚"
33
+ en: 'Fill in the destination. For a heading, match the heading as it is now written. For a reference-style link, add a "[label]: URL" line somewhere in the document.'
34
+
35
+ levels: { strict: error, normal: warning, relaxed: info }
36
+
37
+ use_for: [business, technical, blog, legal, docs, academic, literature, speech]
38
+
39
+ group: structure
40
+ summary:
41
+ ja: ่กŒใๅ…ˆใŒ็ฉบใฎใƒชใƒณใ‚ฏใ€ๆ–‡ๆ›ธใซ็„กใ„่ฆ‹ๅ‡บใ—ใ‚’ๆŒ‡ใ™ใƒชใƒณใ‚ฏใ€ๅฎš็พฉใฎ็„กใ„ๅ‚็…งใฎๅฝขใฎใƒชใƒณใ‚ฏ
42
+ en: A link with no destination, a link to a heading the page does not have, or a reference-style link with no definition
43
+ example:
44
+ ja:
45
+ before: |
46
+ ## ๆบ–ๅ‚™
47
+
48
+ ้“ๅ…ทใ‚’ใใ‚ใˆใพใ™ใ€‚่ฉณใ—ใใฏ[ๆ‰‹้ †](#ๆ‰‹้ †)ใ‚’่ฆ‹ใฆใใ ใ•ใ„ใ€‚
49
+ after: |
50
+ ## ๆบ–ๅ‚™
51
+
52
+ ้“ๅ…ทใ‚’ใใ‚ใˆใพใ™ใ€‚่ฉณใ—ใใฏ[ๆบ–ๅ‚™](#ๆบ–ๅ‚™)ใ‚’่ฆ‹ใฆใใ ใ•ใ„ใ€‚
53
+ en:
54
+ before: |
55
+ ## Setup
56
+
57
+ Gather the tools. See [Install](#install) for more.
58
+ after: |
59
+ ## Setup
60
+
61
+ Gather the tools. See [Setup](#setup) for more.
62
+
63
+ not_flagged:
64
+ ja: ่ฆ‹ๅ‡บใ—ใฎๅๅ‰ใฏๅญ—ใจๆ•ฐๅญ—ใ ใ‘ใงๆฏ”ในใ€ๅคงๆ–‡ๅญ—ๅฐๆ–‡ๅญ—ใ‚„่จ˜ๅทใฎ้•ใ„ใฏๅ•ใ„ใพใ›ใ‚“ใ€‚ใ€Œ[1][2]ใ€ใฎใ‚ˆใ†ใชๆ–‡็Œฎใฎ็•ชๅทใ€ใ€ŒA[i][j]ใ€ใฎใ‚ˆใ†ใชๆทปๅญ—ใ€ไฝฟใ‚ใ‚Œใฆใ„ใชใ„ๅฎš็พฉใ‚‚ๆŒ‡ใ—ใพใ›ใ‚“ใ€‚
65
+ en: Heading anchors are compared on letters and digits only, ignoring case and punctuation. Citation numbers ("[1][2]"), subscripts ("A[i][j]") and definitions no link uses are not reported.
@@ -29,3 +29,36 @@ levels:
29
29
  relaxed: 2
30
30
 
31
31
  use_for: [blog, legal, docs, academic, literature, speech]
32
+
33
+ group: wording
34
+ summary:
35
+ ja: ใ€Œใ„ใ‹ใŒใงใ—ใŸใ‹ใ€ใ€Œๅ‚่€ƒใซใชใ‚Œใฐๅนธใ„ใงใ™ใ€ใฎใ‚ˆใ†ใซใ€ไฝ•ใ‚‚ๆฎ‹ใ•ใชใ„ๆฑบใพใ‚Šๆ–‡ๅฅใฎ็ตใณ
36
+ en: A stock closing such as "Hope this helps" that leaves the reader nothing
37
+ example:
38
+ ja:
39
+ config: { genre: blog/tech }
40
+ before: |
41
+ ## ใพใจใ‚
42
+
43
+ ่จญๅฎšใ‚’ไธ€่กŒๅค‰ใˆใ‚‹ใ ใ‘ใงใ€ใƒ“ใƒซใƒ‰ใŒไบŒๅ€้€Ÿใใชใ‚Šใพใ—ใŸใ€‚ใ„ใ‹ใŒใงใ—ใŸใ‹ใ€‚
44
+ after: |
45
+ ## ใพใจใ‚
46
+
47
+ ่จญๅฎšใ‚’ไธ€่กŒๅค‰ใˆใ‚‹ใ ใ‘ใงใ€ใƒ“ใƒซใƒ‰ใŒไบŒๅ€้€Ÿใใชใ‚Šใพใ—ใŸใ€‚ๆฌกใฏใ€ใƒ†ใ‚นใƒˆใฎไธฆๅˆ—ๅŒ–ใ‚’่ฉฆใ—ใพใ™ใ€‚
48
+ en:
49
+ config: { genre: blog/tech }
50
+ before: |
51
+ ## Summary
52
+
53
+ Changing one line of the settings made the build twice as fast. Hope this helps!
54
+ after: |
55
+ ## Summary
56
+
57
+ Changing one line of the settings made the build twice as fast. Next, we will try running the tests in parallel.
58
+
59
+ not_flagged:
60
+ ja: ๆœ€ๅพŒใฎ็ฏ€ใ ใ‘ใ‚’่ฆ‹ใพใ™ใ€‚ๆœฌๆ–‡ใฎ้€”ไธญใฎใ€Œใพใจใ‚ใ‚‹ใจใ€ใฏๆ™ฎ้€šใฎใคใชใŽใชใฎใงๆŒ‡ใ—ใพใ›ใ‚“ใ€‚
61
+ en: Only the last section is checked; "to sum up" in the middle of the text is an ordinary link and is not reported.
62
+ level_meaning:
63
+ ja: ๅฝ“ใฆใฏใพใ‚‹็ตใณใŒ {limit} ็ฎ‡ๆ‰€ใ‚ใ‚ŒใฐๆŒ‡ๆ‘˜
64
+ en: reported once there are {limit}
@@ -0,0 +1,59 @@
1
+ id: colon-lead-in
2
+ layer: L1
3
+ status: experimental
4
+ how_to_find: colon-lead-in
5
+ # English human writing hands off to a list after a colon as a matter of course: two in a short self-written English
6
+ # document already passed any limit that the generated-style samples reached. Japanese only until a limit separates them.
7
+ languages: [ja]
8
+ severity: info
9
+
10
+ name:
11
+ ja: ใ‚ณใƒญใƒณใง็ฎ‡ๆกๆ›ธใใธๆธกใ™ๆ–‡ใŒๅคšใ„
12
+ en: Too many colon lead-ins to lists
13
+
14
+ why:
15
+ ja: ใ€Œไปฅไธ‹ใฎ้€šใ‚Šใงใ™๏ผšใ€ใ€Œใƒใ‚คใƒณใƒˆใฏๆฌกใฎ 3 ใค๏ผšใ€ใฎใ‚ˆใ†ใซใ€ใ‚ณใƒญใƒณใง็ต‚ใ‚ใ‚‹ๆ–‡ใ‹ใ‚‰็ฎ‡ๆกๆ›ธใใธๆธกใ™ๅฝขใงใ™ใ€‚1 ใคใชใ‚‰ๆกˆๅ†…ใงใ™ใŒใ€็ฏ€ใ”ใจใซ็ถšใใจใ€่ชฌๆ˜ŽใŒ็ฎ‡ๆกๆ›ธใใฎๅ‰็ฝฎใใ ใ‘ใซใชใ‚Šใ€้ …็›ฎใฉใ†ใ—ใฎ็น‹ใŒใ‚ŠใŒๆ›ธใ‹ใ‚Œใพใ›ใ‚“ใ€‚็”Ÿๆˆๆ–‡ใซใ‚ˆใ่ฆ‹ใ‚‰ใ‚Œใ‚‹ๅฝขใงใ™ใ€‚
16
+ en: 'A sentence ending in a colon that hands the reader to a list ("Here''s what you need to know:"). Once, it guides; section after section, the prose shrinks to list captions and the links between the items go unwritten. A shape common in generated text.'
17
+
18
+ message:
19
+ ja: ใ‚ณใƒญใƒณใง็ฎ‡ๆกๆ›ธใใธๆธกใ™ๆ–‡ใŒ 1000 ๅญ—ใ‚ใŸใ‚Š {density} ๅ€‹ใ‚ใ‚Šใพใ™๏ผˆ{limit} ๅ€‹ใพใง๏ผ‰
20
+ en: "{density} colon lead-ins to lists per 1000 characters (limit {limit})"
21
+
22
+ how_to_fix:
23
+ ja: ็ฎ‡ๆกๆ›ธใใฎไธ€้ƒจใ‚’ๆ–‡ใซๆˆปใ—ใ€้ …็›ฎใฉใ†ใ—ใŒใฉใ†็น‹ใŒใ‚‹ใฎใ‹ใ‚’ๆ›ธใ„ใฆใใ ใ•ใ„ใ€‚ๆ‰‹้ †ใ‚„้ƒจๅ“ใฎไธ€่ฆงใฎใ‚ˆใ†ใซใ€ๆœฌๅฝ“ใซไธฆในใ‚‹ใ‚‚ใฎใฏใใฎใพใพใงใ‹ใพใ„ใพใ›ใ‚“ใ€‚
24
+ en: Turn some of the lists back into sentences and say how the items connect. Real lists (steps, parts) can stay.
25
+
26
+ # 1000 ๅญ—ใ‚ใŸใ‚Šใฎๆ•ฐใ€‚2 ใคใ‚ˆใ‚Šๅฐ‘ใชใ‘ใ‚Œใฐ่จ€ใ‚ใชใ„๏ผˆai-phrasing.ts ใฎ PILE๏ผ‰ใ€‚
27
+ levels: { strict: 1, normal: 2, relaxed: 4 }
28
+
29
+ use_for: [blog, business, legal, docs, academic, literature, speech]
30
+
31
+ group: ai-tells
32
+ summary:
33
+ ja: ใ€Œไปฅไธ‹ใฎ้€šใ‚Šใงใ™๏ผšใ€ใฎใ‚ˆใ†ใซใ€ใ‚ณใƒญใƒณใง็ต‚ใ‚ใ‚‹ๆ–‡ใ‹ใ‚‰็ฎ‡ๆกๆ›ธใใธๆธกใ™ๅฝขใŒ็ถšใใ€่ชฌๆ˜ŽใŒ็ฎ‡ๆกๆ›ธใใฎๅ‰็ฝฎใใ ใ‘ใซใชใฃใฆใ„ใ‚‹ๆ‰€
34
+ en: 'Sentences ending in a colon that hand off to a list ("Here''s what you need to know:"), section after section'
35
+ example:
36
+ ja:
37
+ pad: true
38
+ before: |
39
+ ๆบ–ๅ‚™ใฏไปฅไธ‹ใฎ้€šใ‚Šใงใ™๏ผš
40
+
41
+ - ้ต
42
+ - ๅœฐๅ›ณ
43
+
44
+ ๅฝ“ๆ—ฅใฎๆตใ‚Œใฏๆฌกใฎ้€šใ‚Šใงใ™๏ผš
45
+
46
+ - ้›†ๅˆ
47
+ - ๅ‡บ็™บ
48
+ after: |
49
+ ้ตใจๅœฐๅ›ณใ‚’็”จๆ„ใ—ใฆใใ ใ•ใ„ใ€‚ๅฝ“ๆ—ฅใฏ้ง…ใซ้›†ๅˆใ—ใฆใ‹ใ‚‰ๅ‡บ็™บใ—ใพใ™ใ€‚
50
+
51
+ - ้ต
52
+ - ๅœฐๅ›ณ
53
+
54
+ not_flagged:
55
+ ja: 1 ใคใ ใ‘ใฎใ‚ณใƒญใƒณใฎๅ‰็ฝฎใใจใ€ใ‚ณใƒญใƒณใง็ต‚ใ‚ใ‚‰ใชใ„ๅ‰็ฝฎใ๏ผˆใ€ŒๆฌกใฎใจใŠใ‚Šใจใ™ใ‚‹ใ€‚ใ€๏ผ‰ใฏๆ•ฐใˆใพใ›ใ‚“ใ€‚่ชฌๆ˜Žๆ›ธใƒปๆณ•ๅ‹™ใƒปๆŠ€่ก“ๆ–‡ๆ›ธใฎใ‚ธใƒฃใƒณใƒซใงใฏ่ฆ‹ใพใ›ใ‚“ใ€‚็Ÿญใ„ๆ–‡ๆ›ธใฏๆธฌใ‚Šใพใ›ใ‚“ใ€‚่‹ฑ่ชžใฎๆ–‡ๆ›ธใฏใ€ไบบใ‚‚ใ‚ˆใใ“ใฎๅฝขใงๆ›ธใใฎใง่ฆ‹ใพใ›ใ‚“ใ€‚
56
+ en: A single colon lead-in, and a lead-in that does not end in a colon, are not counted. Documentation, legal and technical genres do not run this rule. Short documents are not measured. Japanese documents only.
57
+ level_meaning:
58
+ ja: 1000 ๅญ—ใ‚ใŸใ‚Š {limit} ๅ€‹ใพใง
59
+ en: up to {limit} per 1000 characters
@@ -25,3 +25,44 @@ how_to_fix:
25
25
  levels: { strict: 1, normal: 3, relaxed: 6 }
26
26
 
27
27
  use_for: [blog, business, legal, docs, academic, literature, speech]
28
+
29
+ group: structure
30
+ summary:
31
+ ja: ๆ•ฐๅญ—ใ‚‚ใ‚ณใƒผใƒ‰ใ‚‚ใƒชใƒณใ‚ฏใ‚‚็„กใใ€่ชญใฟๆ‰‹ใŒๆŒใกๅธฐใ‚Œใ‚‹ใ‚‚ใฎใฎ็„กใ„็ฏ€
32
+ en: A section with no number, no code and no link, so the reader has nothing to take away
33
+ example:
34
+ ja:
35
+ config: { rules: { concrete-evidence-density: strict } }
36
+ before: |
37
+ # ๆ”นๅ–„ใฎๅ ฑๅ‘Š
38
+
39
+ ## ๆˆๆžœ
40
+
41
+ ๅ•ใ„ๅˆใ‚ใ›ๅฏพๅฟœใŒๅคงใใ่‰ฏใใชใ‚Šใพใ—ใŸใ€‚ใŠๅฎขๆง˜ใ‹ใ‚‰ใฎ่ฉ•ๅˆคใ‚‚ไธŠใ€…ใงใ™ใ€‚ๆ‹…ๅฝ“่€…ใฎ่ฒ ๆ‹…ใ‚‚่ปฝใใชใ‚Šใพใ—ใŸใ€‚
42
+ after: |
43
+ # ๆ”นๅ–„ใฎๅ ฑๅ‘Š
44
+
45
+ ## ๆˆๆžœ
46
+
47
+ ๅ•ใ„ๅˆใ‚ใ›ใธใฎๅ›ž็ญ”ใŒใ€ๅนณๅ‡ 3 ๆ—ฅใ‹ใ‚‰ 1 ๆ—ฅใซใชใ‚Šใพใ—ใŸใ€‚ใŠๅฎขๆง˜ใ‚ขใƒณใ‚ฑใƒผใƒˆใฎๆบ€่ถณๅบฆใฏ 72% ใ‹ใ‚‰ 85% ใซไธŠใŒใ‚Šใพใ—ใŸใ€‚ๆ‹…ๅฝ“่€…ใฎๆฎ‹ๆฅญใฏๆœˆ 10 ๆ™‚้–“ๆธ›ใ‚Šใพใ—ใŸใ€‚
48
+ en:
49
+ config: { rules: { concrete-evidence-density: strict } }
50
+ before: |
51
+ # Improvement report
52
+
53
+ ## Results
54
+
55
+ Our help desk got much better. Customers are pleased with it. The team feels less pressure too.
56
+ after: |
57
+ # Improvement report
58
+
59
+ ## Results
60
+
61
+ Replies to help desk tickets now take 1 day on average, down from 3. Customer satisfaction rose from 72% to 85%. Overtime fell by 10 hours a month.
62
+
63
+ not_flagged:
64
+ ja: 3 ๆ–‡ใ‚ˆใ‚Š็Ÿญใ„็ฏ€ใ€็ดขๅผ•ใฎใ‚ˆใ†ใซ้ …็›ฎใ‚’ไธฆในใŸ็ฏ€ใฏ่ฆ‹ใพใ›ใ‚“ใ€‚
65
+ en: Sections shorter than three sentences, and index-like sections of entries, are not checked.
66
+ level_meaning:
67
+ ja: ๅ…ทไฝ“็‰ฉใฎใชใ„็ฏ€ใŒ {limit} ๅ€‹ใ‚ใ‚ŒใฐๆŒ‡ๆ‘˜
68
+ en: reported once {limit} sections have nothing concrete
@@ -26,3 +26,21 @@ how_to_fix:
26
26
  levels: { strict: 4, normal: 2, relaxed: 1 }
27
27
 
28
28
  use_for: [blog, business, technical, legal, docs, academic, literature, speech]
29
+
30
+ group: consistency
31
+ summary:
32
+ ja: ่‹ฑ่ชžใงใ€ใ€Œdon'tใ€ใจใ€Œdo notใ€ใฎใ‚ˆใ†ใซ็Ÿญ็ธฎๅฝขใ‚’ไฝฟใ†ๆ›ธใๆ–นใจไฝฟใ‚ใชใ„ๆ›ธใๆ–นใŒๆททใ–ใฃใฆใ„ใ‚‹ๆ‰€
33
+ en: Contractions ("don't") and full forms ("do not") mixed in one document
34
+ example:
35
+ en:
36
+ before: |
37
+ We don't store your password. We can't read your messages. We won't share your data. We do not sell your address.
38
+ after: |
39
+ We don't store your password. We can't read your messages. We won't share your data. We don't sell your address.
40
+
41
+ not_flagged:
42
+ ja: ็Ÿญ็ธฎๅฝขใ‚’ไฝฟใ†ใ‹ใฉใ†ใ‹ใฏๆฑบใ‚ใพใ›ใ‚“ใ€‚ๆ–‡ๆ›ธใฎไธญใงๅฐ‘ใชใ„ใปใ†ใ ใ‘ใ‚’ๆŒ‡ใ—ใพใ™ใ€‚
43
+ en: Whether to use contractions is not decided; only the minority form in the document is pointed at.
44
+ level_meaning:
45
+ ja: ๅฐ‘ใชใ„ใปใ†ใฎๆ›ธใๆ–นใŒ {limit} ็ฎ‡ๆ‰€ไปฅไธ‹ใฎใจใๆŒ‡ๆ‘˜
46
+ en: reported when the minority form appears {limit} times or fewer
@@ -0,0 +1,57 @@
1
+ id: contrast-framing
2
+ layer: L2
3
+ status: experimental
4
+ how_to_find: contrast-framing
5
+ word_list: contrast-frame
6
+ # ๆ‰“ใกๆถˆใ—๏ผˆit's not๏ผ‰ใจใ€ใใ‚Œใ‚’่ฟ”ใ™่ชž๏ผˆit'sใ€but๏ผ‰ใ€‚ๅพŒใ‚ใซ่ฟ”ใ—ใŒๆฅใŸใจใใ ใ‘ๅฏพๆฏ”ใฎๆž ใซใชใ‚‹ใ€‚
7
+ extra_word_lists: [contrast-lead, contrast-turn]
8
+ uses: [pos]
9
+ severity: info
10
+
11
+ name:
12
+ ja: ๅฏพๆฏ”ใฎๆž ใŒๅคšใ„
13
+ en: Too many contrast frames
14
+
15
+ why:
16
+ ja: ใ€Œๅ˜ใชใ‚‹ X ใงใฏใชใ Yใ€ใ€ŒX ใ ใ‘ใงใชใ Y ใ‚‚ใ€ใฏใ€1 ใคใชใ‚‰่ซ–็‚นใ‚’ๆ•ด็†ใ—ใพใ™ใ€‚้‡ใชใ‚‹ใจใ€่ชฐใ‚‚่จ€ใฃใฆใ„ใชใ„ X ใ‚’ๆ‰“ใกๆถˆใ—็ถšใ‘ใ‚‹ๆ–‡็ซ ใซใชใ‚Šใพใ™ใ€‚็”Ÿๆˆๆ–‡ใซใ‚ˆใ่ฆ‹ใ‚‰ใ‚Œใ‚‹็™–ใจใ—ใฆ็Ÿฅใ‚‰ใ‚Œใฆใ„ใพใ™ใ€‚
17
+ en: '"It''s not X, it''s Y" and "not just X, but Y" sort out a point when used once. Piled up, the text keeps knocking down an X nobody said, a habit well known in generated text.'
18
+
19
+ message:
20
+ ja: ใ€Œ{matched}ใ€ใชใฉใ€ๅฏพๆฏ”ใฎๆž ใŒ 1000 ๅญ—ใ‚ใŸใ‚Š {density} ๅ€‹ใ‚ใ‚Šใพใ™๏ผˆ{limit} ๅ€‹ใพใง๏ผ‰
21
+ en: '"{matched}" and other contrast frames: {density} per 1000 words (limit {limit})'
22
+
23
+ how_to_fix:
24
+ ja: ๆ‰“ใกๆถˆใ—ใŸๅด๏ผˆX๏ผ‰ใ‚’ๆถˆใ—ใฆใ€่จ€ใ„ใŸใ„ใ“ใจ๏ผˆY๏ผ‰ใ ใ‘ใ‚’ๆ›ธใ„ใฆใใ ใ•ใ„ใ€‚
25
+ en: Drop the X you knocked down and say Y directly.
26
+
27
+ # 1000 ่ชž๏ผˆๆ—ฅๆœฌ่ชžใฏ 1000 ๅญ—๏ผ‰ใ‚ใŸใ‚Šใฎๆ•ฐใ€‚
28
+ levels:
29
+ ja: { strict: 1, normal: 1.5, relaxed: 3 }
30
+ en: { strict: 2, normal: 3, relaxed: 6 }
31
+
32
+ use_for: [blog, business, legal, docs, academic, literature, speech]
33
+
34
+ group: ai-tells
35
+ summary:
36
+ ja: ใ€Œๅ˜ใชใ‚‹ X ใงใฏใชใ Yใ€ใ€ŒX ใ ใ‘ใงใชใ Y ใ‚‚ใ€ใฎใ‚ˆใ†ใชๅฏพๆฏ”ใฎๆž ใŒ้‡ใชใ‚Šใ€่ชฐใ‚‚่จ€ใฃใฆใ„ใชใ„ X ใ‚’ๆ‰“ใกๆถˆใ—็ถšใ‘ใฆใ„ใ‚‹ๆ‰€
37
+ en: 'Contrast frames piling up ("It''s not X, it''s Y", "not just X, but Y"), knocking down an X nobody said'
38
+ example:
39
+ ja:
40
+ pad: true
41
+ before: |
42
+ ใ“ใฎไป•็ต„ใฟใฏๅ˜ใชใ‚‹้“ๅ…ทใงใฏใชใใ€ใƒใƒผใƒ ใฎๆ–‡ๅŒ–ใงใ™ใ€‚้€Ÿใ•ใ ใ‘ใงใชใใ€ๅฎ‰ๅฟƒใ‚‚ๅฑŠใ‘ใพใ™ใ€‚
43
+ after: |
44
+ ใ“ใฎไป•็ต„ใฟใงใ€่ฆ‹็ฉใ‚‚ใ‚ŠใฎไฝœๆˆใŒไธ€ไปถใ‚ใŸใ‚Šๅๅˆ†็Ÿญใใชใ‚Šใพใ—ใŸใ€‚
45
+ en:
46
+ pad: true
47
+ before: |
48
+ This tool is not just software, but a culture. It's not a feature. It's a promise.
49
+ after: |
50
+ This tool cut the time to draft a quote by ten minutes.
51
+
52
+ not_flagged:
53
+ ja: ไธ€ใคใ ใ‘ใฎๅฏพๆฏ”ใ€ๆ‰“ใกๆถˆใ—ใ‚’่ฟ”ใ—ใฆใ„ใชใ„ใ€Œๅ˜ใชใ‚‹ใ€๏ผˆใ€Œๅ˜ใชใ‚‹่จญๅฎšใƒŸใ‚นใงใ™ใ€๏ผ‰ใ€ใ€ŒA ใงใฏใชใ B ใงใ™ใ€ใ ใ‘ใฎๆ–‡ใ€็ถšใ‘ใฆไธฆในใŸๆ‰“ใกๆถˆใ—๏ผˆใ€Œใพใ ใงใ™ใ€‚ใพใ ่ฉฆใ—ใฆใ„ใพใ›ใ‚“ใ€‚ใ€๏ผ‰ใฏๆŒ‡ใ—ใพใ›ใ‚“ใ€‚็Ÿญใ„ๆ–‡ๆ›ธใฏๆธฌใ‚Šใพใ›ใ‚“ใ€‚
54
+ en: A single contrast, a denial nobody answers, and two denials in a row ("It's not ready. It's not tested.") are not reported. Short documents are not measured.
55
+ level_meaning:
56
+ ja: 1000 ๅญ—ใ‚ใŸใ‚Š {limit} ๅ€‹ใพใง
57
+ en: up to {limit} per 1000 words
@@ -25,3 +25,28 @@ how_to_fix:
25
25
  levels: { strict: 2, normal: 5, relaxed: 10 }
26
26
 
27
27
  use_for: [business, legal, docs, academic, literature, speech]
28
+
29
+ group: wording
30
+ summary:
31
+ ja: ใ€Œๆใ‚Œๅ…ฅใ‚Šใพใ™ใŒใ€ใ€ŒๅฟตใฎใŸใ‚ใ€ใฎใ‚ˆใ†ใชใ‚ฏใƒƒใ‚ทใƒงใƒณ่จ€่‘‰ใŒๅคšใใ€็”จไปถใŒๅŸ‹ใ‚‚ใ‚Œใฆใ„ใ‚‹ๆ‰€
32
+ en: So many softeners ("sorry to bother", "just wanted to") that the request gets lost
33
+ example:
34
+ ja:
35
+ pad: true
36
+ before: |
37
+ ใŠๅฟ™ใ—ใ„ใจใ“ใ‚ๆใ‚Œๅ…ฅใ‚Šใพใ™ใŒใ€ๅฟตใฎใŸใ‚ใ”็ขบ่ชใ‚’ใŠ้ก˜ใ„ใ—ใพใ™ใ€‚ๅทฎใ—ๆ”ฏใˆใชใ‘ใ‚Œใฐใ€ๅ–ใ‚Šๆ€ฅใŽใ”่ฟ”ไฟกใใ ใ•ใ„ใ€‚
38
+ after: |
39
+ ใŠๅฟ™ใ—ใ„ใจใ“ใ‚ๆใ‚Œๅ…ฅใ‚Šใพใ™ใŒใ€้‡‘ๆ›œใพใงใซ่ฆ‹็ฉใ‚‚ใ‚Šใฎ้‡‘้กใ‚’ใ”็ขบ่ชใใ ใ•ใ„ใ€‚
40
+ en:
41
+ pad: true
42
+ before: |
43
+ Sorry to bother you, but I just wanted to check the quote. If you don't mind, reply when you get a chance.
44
+ after: |
45
+ Could you check the quote by Friday? The total on page two changed.
46
+
47
+ not_flagged:
48
+ ja: ใ‚ฏใƒƒใ‚ทใƒงใƒณ่จ€่‘‰ใŒไธ€ใคใ ใ‘ใชใ‚‰็คผๅ„€ใชใฎใงๆŒ‡ใ—ใพใ›ใ‚“ใ€‚็Ÿญใ„ๆ–‡ๆ›ธใฏๆธฌใ‚Šใพใ›ใ‚“ใ€‚
49
+ en: One softener is courtesy and is not reported. Short documents are not measured.
50
+ level_meaning:
51
+ ja: 1000 ๅญ—ใ‚ใŸใ‚Š {limit} ๅ€‹ใพใง
52
+ en: up to {limit} per 1000 words
@@ -0,0 +1,61 @@
1
+ id: dangling-figure-reference
2
+ layer: L3
3
+ status: experimental
4
+ how_to_find: dangling-figure
5
+ severity: warning
6
+
7
+ name:
8
+ ja: ๅ›ณใ‚„่กจใฎๅ‚็…งๅ…ˆใŒ็„กใ„
9
+ en: Reference to a missing figure or table
10
+
11
+ why:
12
+ ja: ๆœฌๆ–‡ใŒใ€Œๅ›ณ3ใ‚’ๅ‚็…งใ€ใจๆ›ธใ„ใฆใ„ใ‚‹ใฎใซใ€ๅ›ณ3ใŒใฉใ“ใซใ‚‚็„กใ„ใจใ€่ชญใฟๆ‰‹ใฏๆŽขใ—ๅ›žใฃใŸใ†ใˆใงใ€ๅ›ณใŒๆŠœใ‘ใŸใฎใ‹็•ชๅทใŒใšใ‚ŒใŸใฎใ‹ใ‚’็ขบใ‹ใ‚ใ‚‹ใ“ใจใซใชใ‚Šใพใ™ใ€‚ๅ›ณใ‚„่กจใ‚’ๆถˆใ—ใŸใ‚Šๅ…ฅใ‚Œๆ›ฟใˆใŸใ‚Šใ—ใŸใ‚ใจใซใ€ๆœฌๆ–‡ใฎ็•ชๅทใ‚’็›ดใ—ๅฟ˜ใ‚Œใ‚‹ใจ่ตทใใพใ™ใ€‚่กŒใฎ้ ญใซๆ›ธใ„ใŸ็•ชๅท๏ผˆใ€Œๅ›ณ1ใ€€ๅฃฒไธŠใฎๆŽจ็งปใ€ใฎใ‚ˆใ†ใชใ‚ญใƒฃใƒ—ใ‚ทใƒงใƒณใ‚„ใ€ใ€Œ## ไป˜้ŒฒAใ€ใฎใ‚ˆใ†ใช่ฆ‹ๅ‡บใ—๏ผ‰ใ‚’ๅ›ณใฎ็ฝฎใๅ ดๆ‰€ใจใ—ใ€ๆœฌๆ–‡ใฎ็•ชๅทใŒใใฎไธญใซ็„กใ‘ใ‚ŒใฐๆŒ‡ใ—ใพใ™ใ€‚ๅ›ณใƒป่กจใƒปไป˜้Œฒใฎ็จฎ้กžใ”ใจใซใ€่กŒใฎ้ ญใซไธ€ใคใ‚‚ๆ›ธใ„ใฆใ„ใชใ„ๆ–‡ๆ›ธใฏ่ฆ‹ใพใ›ใ‚“๏ผˆๅ›ณใ‚’ๅˆฅใฎ็ด™ใซไป˜ใ‘ใฆใ„ใ‚‹ใ‹ใ‚‚ใ—ใ‚Œใชใ„ใŸใ‚๏ผ‰ใ€‚
13
+ en: 'When the text says "see Figure 3" and there is no Figure 3, the reader searches for it and then has to work out whether the figure was dropped or the numbers shifted. It happens when a figure or a table is removed or reordered and the text is not updated. A number written at the start of a line (a caption such as "Figure 1: Sales by month", or a heading such as "## Appendix A") is where that figure is, and a number in the text that is none of them is pointed out. A kind (figures, tables, appendices) that the document never labels at the start of a line is not checked, because its figures may be in another file.'
14
+
15
+ message:
16
+ ja: ใ€Œ{label}ใ€ใ‚’ๆŒ‡ใ—ใฆใ„ใพใ™ใŒใ€ใ“ใฎๆ–‡ๆ›ธใซ{label}ใŒใ‚ใ‚Šใพใ›ใ‚“
17
+ en: "{label} is referred to, but the document has no {label}"
18
+
19
+ how_to_fix:
20
+ ja: ็•ชๅทใŒใšใ‚Œใฆใ„ใชใ„ใ‹็ขบใ‹ใ‚ใฆใ€ๆœฌๆ–‡ใฎ็•ชๅทใ‚’็›ดใ™ใ‹ใ€ๆŠœใ‘ใŸๅ›ณใ‚„่กจใ‚’่ถณใ—ใฆใใ ใ•ใ„ใ€‚
21
+ en: Check whether the numbers shifted. Correct the number in the text, or add the missing figure or table.
22
+
23
+ levels: { strict: error, normal: warning, relaxed: info }
24
+
25
+ use_for: [business, technical, blog, legal, docs, academic, literature, speech]
26
+
27
+ group: facts
28
+ summary:
29
+ ja: ๆœฌๆ–‡ใŒๆŒ‡ใ™ใ€Œๅ›ณ3ใ€ใ€Œ่กจ2ใ€ใŒใ€ๆ–‡ๆ›ธใฎใฉใ“ใซใ‚‚็„กใ„ๆ‰€
30
+ en: A figure or table the text refers to that the document does not have
31
+ example:
32
+ ja:
33
+ before: |
34
+ ๅฃฒไธŠใฏๅ›ณ1ใฎใจใŠใ‚Šไผธใณใ€่ฒป็”จใฏๅ›ณ3ใฎใจใŠใ‚Šๆธ›ใฃใŸใ€‚
35
+
36
+ ๅ›ณ1ใ€€ๅฃฒไธŠใฎๆŽจ็งป
37
+
38
+ ๅ›ณ2ใ€€่ฒป็”จใฎๆŽจ็งป
39
+ after: |
40
+ ๅฃฒไธŠใฏๅ›ณ1ใฎใจใŠใ‚Šไผธใณใ€่ฒป็”จใฏๅ›ณ2ใฎใจใŠใ‚Šๆธ›ใฃใŸใ€‚
41
+
42
+ ๅ›ณ1ใ€€ๅฃฒไธŠใฎๆŽจ็งป
43
+
44
+ ๅ›ณ2ใ€€่ฒป็”จใฎๆŽจ็งป
45
+ en:
46
+ before: |
47
+ Sales rose (Figure 1) and costs fell (Figure 3).
48
+
49
+ Figure 1: Sales by month
50
+
51
+ Figure 2: Costs by month
52
+ after: |
53
+ Sales rose (Figure 1) and costs fell (Figure 2).
54
+
55
+ Figure 1: Sales by month
56
+
57
+ Figure 2: Costs by month
58
+
59
+ not_flagged:
60
+ ja: ๅ›ณใ‚„่กจใ‚’่กŒใฎ้ ญใซไธ€ใคใ‚‚ๆ›ธใ„ใฆใ„ใชใ„ๆ–‡ๆ›ธใ€้•ทใ„่ชžใฎไธ€้ƒจ๏ผˆๅœฐๅ›ณ3ใ€ไธ€่ฆง่กจ2๏ผ‰ใ€ๅˆฅใฎๆณ•ไปคใฎๅˆฅ่กจ๏ผˆๆณ•ๅˆฅ่กจ็ฌฌไบŒ๏ผ‰ใ€ๅ›ณใฎๆ•ฐ๏ผˆๅ›ณ3ๆžš๏ผ‰ใ€ใ‚ณใƒผใƒ‰ใฎไธญใฏ่ฆ‹ใพใ›ใ‚“ใ€‚
61
+ en: 'A document that labels no figure or table at the start of a line, a figure of another document ("Figure 5 of the 2024 report"), and code are not checked.'
@@ -22,6 +22,58 @@ how_to_fix:
22
22
  en: Fix the number or remove the reference. If it points into another document, name that document so the reader knows where to look.
23
23
 
24
24
  # ไฝ•ไปถใ‚ใ‚ŒใฐๆŒ‡ๆ‘˜ใ™ใ‚‹ใ‹ใ€‚1 ใฏใ€Œ1 ไปถใงใ‚‚ใ‚ใ‚Œใฐใ€ใ€‚
25
- levels: { strict: 1, normal: 1, relaxed: 1 }
25
+ levels: { normal: error, relaxed: warning }
26
26
 
27
27
  use_for: [business, technical, blog, legal, docs, academic, literature, speech]
28
+
29
+ group: structure
30
+ summary:
31
+ ja: ใ€Œ็ฌฌ5ๆกใซๅฎšใ‚ใ‚‹ใ€ใจๆ›ธใ„ใฆใ‚ใ‚‹ใฎใซใ€ใใฎ็ฌฌ5ๆกใŒๆ–‡ๆ›ธใซ็„กใ„ๆ‰€
32
+ en: A reference such as "as set out in Article 5" to a provision the document does not have
33
+ example:
34
+ ja:
35
+ before: |
36
+ # ๅฐฑๆฅญ่ฆๅ‰‡
37
+
38
+ ## ็ฌฌ1ๆก๏ผˆ็›ฎ็š„๏ผ‰
39
+
40
+ ใ“ใฎ่ฆๅ‰‡ใฏใ€ๅƒใๆ–นใฎๆฑบใพใ‚Šใ‚’ๅฎšใ‚ใ‚‹ใ€‚
41
+
42
+ ## ็ฌฌ2ๆก๏ผˆไผ‘ๆ—ฅ๏ผ‰
43
+
44
+ ไผ‘ๆ—ฅใฏใ€็ฌฌ5ๆกใซๅฎšใ‚ใ‚‹ๅ‹คๅ‹™่กจใซใ‚ˆใ‚‹ใ€‚
45
+ after: |
46
+ # ๅฐฑๆฅญ่ฆๅ‰‡
47
+
48
+ ## ็ฌฌ1ๆก๏ผˆ็›ฎ็š„๏ผ‰
49
+
50
+ ใ“ใฎ่ฆๅ‰‡ใฏใ€ๅƒใๆ–นใฎๆฑบใพใ‚Šใ‚’ๅฎšใ‚ใ‚‹ใ€‚
51
+
52
+ ## ็ฌฌ2ๆก๏ผˆไผ‘ๆ—ฅ๏ผ‰
53
+
54
+ ไผ‘ๆ—ฅใฏใ€็ฌฌ1ๆกใซๅฎšใ‚ใ‚‹ๆฑบใพใ‚Šใฎใปใ‹ใ€ไผš็คพใŒๅˆฅใซๅฎšใ‚ใ‚‹ๅ‹คๅ‹™่กจใซใ‚ˆใ‚‹ใ€‚
55
+ en:
56
+ before: |
57
+ # Staff rules
58
+
59
+ ## Article 1 (Purpose)
60
+
61
+ These rules set out how we work.
62
+
63
+ ## Article 2 (Holidays)
64
+
65
+ Holidays follow the rota set out in Article 5.
66
+ after: |
67
+ # Staff rules
68
+
69
+ ## Article 1 (Purpose)
70
+
71
+ These rules set out how we work.
72
+
73
+ ## Article 2 (Holidays)
74
+
75
+ Holidays follow the rota that the company publishes each month.
76
+
77
+ not_flagged:
78
+ ja: ใ€Œๆณ•็ฌฌ2ๆกใ€ใฎใ‚ˆใ†ใซใ€ใปใ‹ใฎๆ–‡ๆ›ธใฎๆกใ‚’ๆŒ‡ใ™ๅ‚็…งใฏๆŽขใ—ใพใ›ใ‚“ใ€‚ๆกใง็•ชๅทใ‚’ๆŒฏใฃใฆใ„ใชใ„ๆ–‡ๆ›ธใงใฏใ€ๆกใงๆ•ฐใˆใ‚‹ๅ‚็…งใ‚’่ฆ‹ใพใ›ใ‚“ใ€‚
79
+ en: References into another document ("Article 2 of the Act") are not looked up. A document that numbers none of its provisions as articles is not checked for article references.
@@ -21,6 +21,38 @@ how_to_fix:
21
21
  ja: ๆ—ฅไป˜ใ‚’็ขบใ‹ใ‚ใฆใ€ๆ›ธใ้–“้•ใ„ใชใ‚‰็›ดใ—ใ€้ †็•ชใŒ้•ใ†ใชใ‚‰ไธฆในๆ›ฟใˆใฆใใ ใ•ใ„ใ€‚
22
22
  en: Check the date. Correct it if it is a typo, or move the row if the order is wrong.
23
23
 
24
- levels: { strict: 1, normal: 1, relaxed: 1 }
24
+ levels: { strict: error, normal: warning, relaxed: info }
25
25
 
26
26
  use_for: [business, technical, blog, legal, docs, academic, literature, speech]
27
+
28
+ group: facts
29
+ summary:
30
+ ja: ๆ—…็จ‹ใ‚„ไบˆๅฎš่กจใงใ€ไธ€ใคใ ใ‘ๆ—ฅไป˜ใฎ้ †็•ชใŒๅ‰ๅพŒใ—ใฆใ„ใ‚‹ๆ‰€
31
+ en: One date out of order in an itinerary or a schedule
32
+ example:
33
+ ja:
34
+ before: |
35
+ - 2026ๅนด4ๆœˆ1ๆ—ฅ ๅ‡บ็™บ
36
+ - 2026ๅนด4ๆœˆ3ๆ—ฅ ่ฆ–ๅฏŸ
37
+ - 2026ๅนด3ๆœˆ5ๆ—ฅ ไผš่ญฐ
38
+ - 2026ๅนด4ๆœˆ10ๆ—ฅ ๅธฐๅ›ฝ
39
+ after: |
40
+ - 2026ๅนด4ๆœˆ1ๆ—ฅ ๅ‡บ็™บ
41
+ - 2026ๅนด4ๆœˆ3ๆ—ฅ ่ฆ–ๅฏŸ
42
+ - 2026ๅนด4ๆœˆ5ๆ—ฅ ไผš่ญฐ
43
+ - 2026ๅนด4ๆœˆ10ๆ—ฅ ๅธฐๅ›ฝ
44
+ en:
45
+ before: |
46
+ - 1 April 2026: depart
47
+ - 3 April 2026: site visit
48
+ - 5 March 2026: meeting
49
+ - 10 April 2026: return
50
+ after: |
51
+ - 1 April 2026: depart
52
+ - 3 April 2026: site visit
53
+ - 5 April 2026: meeting
54
+ - 10 April 2026: return
55
+
56
+ not_flagged:
57
+ ja: ใใฎๅ‘ใใซๆฒฟใ†ๆ—ฅไป˜ใŒๅŠๅˆ†ไปฅไธ‹ใฎไธฆใณใฏใ€ๅๅ‰ใ‚„็‰ˆใฎ้ †ใซไธฆในใŸไธ€่ฆงใจใ—ใฆๆ‰ฑใ„ใ€ไฝ•ใ‚‚่จ€ใ„ใพใ›ใ‚“ใ€‚
58
+ en: A list where no more than half of the dates follow one direction is taken as sorted by something else, and nothing is said.
@@ -0,0 +1,46 @@
1
+ id: date-range-reversed
2
+ layer: L3
3
+ status: experimental
4
+ how_to_find: date-range-reversed
5
+ requires: [dates]
6
+ severity: warning
7
+
8
+ name:
9
+ ja: ๆœŸ้–“ใฎ็ต‚ใ‚ใ‚ŠใŒๅง‹ใพใ‚Šใ‚ˆใ‚Šๅ‰
10
+ en: A period that ends before it starts
11
+
12
+ why:
13
+ ja: ใ€Œ2026ๅนด4ๆœˆ1ๆ—ฅใ€œ2026ๅนด3ๆœˆ31ๆ—ฅใ€ใฎใ‚ˆใ†ใซใ€ๆœŸ้–“ใฎ็ต‚ใ‚ใ‚Šใฎๆ—ฅไป˜ใŒๅง‹ใพใ‚Šใ‚ˆใ‚Šๅ‰ใ ใจใ€่ชญใฟๆ‰‹ใฏใฉใกใ‚‰ใฎๆ—ฅไป˜ใŒๆญฃใ—ใ„ใฎใ‹ใ‚’ๅ•ใ„ๅˆใ‚ใ›ใ‚‹ใ“ใจใซใชใ‚Šใพใ™ใ€‚ๅนดใ‚’ๆ›ธใๅ†™ใ—้–“้•ใˆใŸใจใใ‚„ใ€ๆ—ฅไป˜ใ‚’็‰‡ๆ–นใ ใ‘็›ดใ—ใŸใจใใซ่ตทใใพใ™ใ€‚ไบŒใคใฎๆ—ฅไป˜ใฎ้–“ใŒ็ฏ„ๅ›ฒใฎ่จ˜ๅท๏ผˆใ€œใ€โ€“๏ผ‰ใ ใ‘ใฎใจใใจใ€ใ€Œใ‹ใ‚‰ใ€ใงใคใชใŽ็ต‚ใ‚ใ‚Šใฎๆ—ฅไป˜ใฎใ‚ใจใซใ€Œใพใงใ€ใŒ็ถšใใจใใ‚’ๆœŸ้–“ใจใ—ใฆๆฏ”ในใพใ™ใ€‚ๅนดใฎ็„กใ„ๆœŸ้–“๏ผˆ12ๆœˆ28ๆ—ฅใ€œ1ๆœˆ4ๆ—ฅ๏ผ‰ใฏๅนดใ‚’ใพใŸใใ‹ใ‚‚ใ—ใ‚Œใชใ„ใฎใงๆฏ”ในใพใ›ใ‚“ใ€‚
14
+ en: 'When a period such as "5 April 2026 โ€“ 2 April 2026" ends before it starts, the reader has to ask which date is right. It happens when a year is copied wrong, or when only one of the two dates is changed. Two dates are read as a period when only a range mark (โ€“, โ€”) or a word such as "through" or "until" stands between them. A period without a year ("28 December โ€“ 4 January") may run into the next year and is not compared.'
15
+
16
+ message:
17
+ ja: ๆœŸ้–“ใ€Œ{period}ใ€ใฎ็ต‚ใ‚ใ‚ŠใŒๅง‹ใพใ‚Šใ‚ˆใ‚Šๅ‰ใงใ™
18
+ en: 'The period "{period}" ends before it starts'
19
+
20
+ how_to_fix:
21
+ ja: ๅง‹ใพใ‚Šใจ็ต‚ใ‚ใ‚Šใฎๆ—ฅไป˜ใ‚’็ขบใ‹ใ‚ใฆใ€ๆ›ธใ้–“้•ใˆใŸใปใ†ใ‚’็›ดใ—ใฆใใ ใ•ใ„ใ€‚
22
+ en: Check both dates and correct the one that is wrong.
23
+
24
+ levels: { strict: error, normal: warning, relaxed: info }
25
+
26
+ use_for: [business, technical, blog, legal, docs, academic, literature, speech]
27
+
28
+ group: facts
29
+ summary:
30
+ ja: ใ€Œ4ๆœˆ1ๆ—ฅใ€œ3ๆœˆ31ๆ—ฅใ€ใฎใ‚ˆใ†ใซใ€ๆœŸ้–“ใฎ็ต‚ใ‚ใ‚ŠใŒๅง‹ใพใ‚Šใ‚ˆใ‚Šๅ‰ใฎๆ‰€
31
+ en: A period whose end date comes before its start date
32
+ example:
33
+ ja:
34
+ before: |
35
+ ็”ณใ—่พผใฟใฎๆœŸ้–“ใฏ2026ๅนด4ๆœˆ1ๆ—ฅใ€œ2026ๅนด3ๆœˆ31ๆ—ฅใงใ™ใ€‚
36
+ after: |
37
+ ็”ณใ—่พผใฟใฎๆœŸ้–“ใฏ2026ๅนด4ๆœˆ1ๆ—ฅใ€œ2027ๅนด3ๆœˆ31ๆ—ฅใงใ™ใ€‚
38
+ en:
39
+ before: |
40
+ Applications are open 1 April 2026 โ€“ 31 March 2026.
41
+ after: |
42
+ Applications are open 1 April 2026 โ€“ 31 March 2027.
43
+
44
+ not_flagged:
45
+ ja: ๅนดใฎ็„กใ„ๆœŸ้–“๏ผˆ12ๆœˆ28ๆ—ฅใ€œ1ๆœˆ4ๆ—ฅ๏ผ‰ใ€ใ€Œใ‹ใ‚‰ใ€ใ ใ‘ใงใ€Œใพใงใ€ใฎ็„กใ„ใ‚‚ใฎ๏ผˆ10ๆ—ฅใ‹ใ‚‰3ๆ—ฅใซๅค‰ๆ›ด๏ผ‰ใ€ๆ—ฅไป˜ใฎ้–“ใซ่จ€่‘‰ใฎใ‚ใ‚‹ใ‚‚ใฎใฏๆฏ”ในใพใ›ใ‚“ใ€‚
46
+ en: 'A period without a year, "from โ€ฆ to โ€ฆ" (it may move a date rather than span a period), and two dates with words between them are not compared.'
@@ -21,6 +21,22 @@ how_to_fix:
21
21
  ja: ๆ—ฅไป˜ใจๆ›œๆ—ฅใฎใฉใกใ‚‰ใŒๆญฃใ—ใ„ใ‹ใ‚’็ขบใ‹ใ‚ใฆใ€็‰‡ๆ–นใ‚’็›ดใ—ใฆใใ ใ•ใ„ใ€‚
22
22
  en: Check which is right, the date or the weekday, and correct the other.
23
23
 
24
- levels: { strict: 1, normal: 1, relaxed: 1 }
24
+ levels: { normal: error, relaxed: warning }
25
25
 
26
26
  use_for: [business, technical, blog, legal, docs, academic, literature, speech]
27
+
28
+ group: facts
29
+ summary:
30
+ ja: ใ€Œ2026ๅนด10ๆœˆ1ๆ—ฅ๏ผˆ้‡‘๏ผ‰ใ€ใฎใ‚ˆใ†ใซใ€ๆ—ฅไป˜ใจๆ›œๆ—ฅใŒๆšฆใจๅˆใฃใฆใ„ใชใ„ๆ‰€
31
+ en: A date and its weekday that disagree, such as "Friday, 1 October 2026"
32
+ example:
33
+ ja:
34
+ before: ๆฌกใฎไผš่ญฐใฏ 2026ๅนด10ๆœˆ1ๆ—ฅ๏ผˆ้‡‘๏ผ‰ใงใ™ใ€‚
35
+ after: ๆฌกใฎไผš่ญฐใฏ 2026ๅนด10ๆœˆ1ๆ—ฅ๏ผˆๆœจ๏ผ‰ใงใ™ใ€‚
36
+ en:
37
+ before: The next meeting is on Friday, 1 October 2026.
38
+ after: The next meeting is on Thursday, 1 October 2026.
39
+
40
+ not_flagged:
41
+ ja: ๅนดใ‚’ๆ›ธใ„ใฆใ„ใชใ„ๆ—ฅไป˜ใฏใ€ใฉใฎๅนดใ‹ๆฑบใพใ‚‰ใชใ„ใฎใงๆšฆใจ็…งใ‚‰ใ—ใพใ›ใ‚“ใ€‚
42
+ en: Dates without a year are not checked, since the year is unknown.
@@ -26,3 +26,19 @@ how_to_fix:
26
26
  levels: { strict: 1, normal: 1, relaxed: 2 }
27
27
 
28
28
  use_for: [business, legal, docs, academic, literature, speech]
29
+
30
+ group: wording
31
+ summary:
32
+ ja: ใ€ŒใŠใฃใ—ใ‚ƒใ‚‰ใ‚Œใ‚‹ใ€ใฎใ‚ˆใ†ใซใ€ๅŒใ˜็จฎ้กžใฎๆ•ฌ่ชžใ‚’ไบŒ้‡ใซใ‹ใ‘ใŸๆ‰€
33
+ en: A Japanese verb with the same kind of honorific applied twice
34
+ example:
35
+ ja:
36
+ before: ้ƒจ้•ทใŒใŠใฃใ—ใ‚ƒใ‚‰ใ‚ŒใŸใจใŠใ‚Šใ€ๆฅ้€ฑใ‹ใ‚‰ๅง‹ใ‚ใพใ™ใ€‚
37
+ after: ้ƒจ้•ทใŒใŠใฃใ—ใ‚ƒใฃใŸใจใŠใ‚Šใ€ๆฅ้€ฑใ‹ใ‚‰ๅง‹ใ‚ใพใ™ใ€‚
38
+
39
+ not_flagged:
40
+ ja: ไธ€่ฆงใซใ‚ใ‚‹ๅฝขใ ใ‘ใ‚’่ฆ‹ใพใ™ใ€‚ไธ€่ฆงใซใชใ„ๅฝขใฏใ€ไบŒ้‡ๆ•ฌ่ชžใงใ‚‚ๆŒ‡ใ—ใพใ›ใ‚“ใ€‚
41
+ en: Only the forms on chaff's list are checked; a doubled honorific not on the list is not reported.
42
+ level_meaning:
43
+ ja: ๅฝ“ใฆใฏใพใ‚‹ๅฝขใŒ {limit} ็ฎ‡ๆ‰€ใ‚ใ‚ŒใฐๆŒ‡ๆ‘˜
44
+ en: reported once there are {limit}
@@ -0,0 +1,45 @@
1
+ id: doubled-punctuation
2
+ layer: L1
3
+ status: experimental
4
+ how_to_find: doubled-punctuation
5
+ severity: warning
6
+
7
+ name:
8
+ ja: ๅฅ่ชญ็‚นใŒ้‡ใชใฃใฆใ„ใ‚‹
9
+ en: Doubled punctuation
10
+
11
+ why:
12
+ ja: ใ€Œใ€‚ใ€‚ใ€ใ€Œใ€ใ€ใ€ใ€Œใ€ใ€‚ใ€ใฎใ‚ˆใ†ใซๅฅ่ชญ็‚นใŒไบŒใคไธฆใถใฎใฏใ€ๆ‰“ใก็›ดใ—ใ‚„่ฒผใ‚Šไป˜ใ‘ใงๆฎ‹ใฃใŸๅฐใงใ™ใ€‚่ชญใฟๆ‰‹ใฏใใ“ใงๆญขใพใ‚Šใ€ๆ€ฅใ„ใงๆ›ธใ„ใŸๆ–‡ๆ›ธใซ่ฆ‹ใˆใพใ™ใ€‚ๅŒใ˜ๅฐใ‚’ไธ‰ใคไปฅไธŠไธฆในใŸใ‚‚ใฎ๏ผˆใ€Œ...ใ€ใ€Œใ€‚ใ€‚ใ€‚ใ€๏ผ‰ใฏใ‚ใ–ใจไผธใฐใ—ใŸๆ›ธใๆ–นใชใฎใงๆ•ฐใˆใพใ›ใ‚“ใ€‚ใ€Œe.g.,ใ€ใ€Œetc.;ใ€ใฎใ‚ˆใ†ใช็•ฅ่ชžใฎ็‚นใฎๅพŒใ‚ใฎ่ชญ็‚นใ€ใ€Œใ€.NETใ€ใฎใ‚ˆใ†ใซๆฌกใฎ่ชžใฎ้ ญใฎ็‚นใ€ใ€Œ1..10ใ€ใ€Œ../ใ€ใฎใ‚ˆใ†ใช็ฏ„ๅ›ฒใ‚„้“ใฎใ‚Šใ€ใ‚ณใƒผใƒ‰ใจ URL ใ‚‚ๆ•ฐใˆใพใ›ใ‚“ใ€‚ใ€Œ!!ใ€ใ€Œ??ใ€ใฏๆ–‡ไฝ“ใฎ้ธใณๆ–นใชใฎใง่ฆ‹ใพใ›ใ‚“ใ€‚
13
+ en: Two punctuation marks side by side ("..", ",,", "i.e.,,") are left over from an edit or a paste. The reader stops there, and the document looks rushed. Three or more of the same mark ("...") are drawn out on purpose and are not counted, nor is the comma or semicolon after an abbreviation's period ("e.g.,", "etc.;"), a period that starts the next word (".NET"), a range or path ("1..10", "../"), code or a URL. "!!" and "??" are a matter of style and are not checked.
14
+
15
+ message:
16
+ ja: ใ€Œ{marks}ใ€ใจๅฅ่ชญ็‚นใŒ้‡ใชใฃใฆใ„ใพใ™
17
+ en: 'Punctuation is doubled: "{marks}"'
18
+
19
+ how_to_fix:
20
+ ja: ไฝ™ๅˆ†ใชๅฐใ‚’ๆถˆใ—ใฆใใ ใ•ใ„ใ€‚
21
+ en: Delete the extra mark.
22
+
23
+ levels: { strict: error, normal: warning, relaxed: info }
24
+
25
+ use_for: [business, technical, blog, legal, docs, academic, literature, speech]
26
+
27
+ group: slips
28
+ summary:
29
+ ja: ใ€Œใ€‚ใ€‚ใ€ใ€Œใ€ใ€‚ใ€ใฎใ‚ˆใ†ใซใ€ๅฅ่ชญ็‚นใŒไบŒใคไธฆใ‚“ใ ๆ‰€
30
+ en: Two punctuation marks side by side, as ",," or ".."
31
+ example:
32
+ ja:
33
+ before: |
34
+ ่ณ‡ๆ–™ใ‚’้€ใ‚Šใพใ™ใ€‚ใ€‚ๆ˜Žๆ—ฅใซใฏๅฑŠใใพใ™ใ€‚
35
+ after: |
36
+ ่ณ‡ๆ–™ใ‚’้€ใ‚Šใพใ™ใ€‚ๆ˜Žๆ—ฅใซใฏๅฑŠใใพใ™ใ€‚
37
+ en:
38
+ before: |
39
+ We will send the file today,, as agreed.
40
+ after: |
41
+ We will send the file today, as agreed.
42
+
43
+ not_flagged:
44
+ ja: ใ€Œ...ใ€ใ€Œใ€‚ใ€‚ใ€‚ใ€ใฎใ‚ˆใ†ใซไธ‰ใคไปฅไธŠไธฆในใŸใ‚‚ใฎใ€ใ€Œe.g.,ใ€ใ€Œetc.;ใ€ใฎใ‚ˆใ†ใช็•ฅ่ชžใฎๅพŒใ‚ใ€ใ€Œ1..10ใ€ใ€Œ../ใ€ใฎใ‚ˆใ†ใช็ฏ„ๅ›ฒใจ้“ใฎใ‚Šใ€ใ€Œ!!ใ€ใ€Œ??ใ€ใจใ‚ณใƒญใƒณใฏๆŒ‡ใ—ใพใ›ใ‚“ใ€‚
45
+ en: Three or more of one mark ("...", "ใ€‚ใ€‚ใ€‚"), the mark after an abbreviation ("e.g.,", "etc.;"), ranges and paths ("1..10", "../"), "!!", "??" and colons are not reported.
@@ -22,6 +22,22 @@ how_to_fix:
22
22
  ja: ไฝ™ๅˆ†ใชใปใ†ใ‚’ๆถˆใ—ใฆใใ ใ•ใ„ใ€‚ๆ›ธใๆ›ใˆใฎ้€”ไธญใชใ‚‰ใ€ๆฎ‹ใ—ใŸใ„่จ€ใ„ๆ–นใซๆƒใˆใฆใใ ใ•ใ„ใ€‚
23
23
  en: Delete the extra word. If a rewrite was half done ("our the platform"), keep the wording you meant.
24
24
 
25
- levels: { strict: 1, normal: 1, relaxed: 1 }
25
+ levels: { strict: error, normal: warning, relaxed: info }
26
26
 
27
27
  use_for: [blog, business, technical, legal, docs, academic, literature, speech]
28
+
29
+ group: slips
30
+ summary:
31
+ ja: ใ€Œ่ณ‡ๆ–™ใ‚’ใ‚’ใ€ใ€Œthe theใ€ใฎใ‚ˆใ†ใซใ€ๅŒใ˜่ชžใŒ็ถšใ‘ใฆไบŒๅบฆๆ›ธใ‹ใ‚Œใฆใ„ใ‚‹ๆ‰€
32
+ en: The same word written twice in a row, as in "the the"
33
+ example:
34
+ ja:
35
+ before: ๆ˜Žๆ—ฅใ€่ณ‡ๆ–™ใ‚’ใ‚’้€ใ‚Šใพใ™ใ€‚
36
+ after: ๆ˜Žๆ—ฅใ€่ณ‡ๆ–™ใ‚’้€ใ‚Šใพใ™ใ€‚
37
+ en:
38
+ before: We will send the the file tomorrow.
39
+ after: We will send the file tomorrow.
40
+
41
+ not_flagged:
42
+ ja: ๅ“่ฉžใฎ้•ใ†ๅŒใ˜่ชžใจใ€้‡ใญใฆๅผทใ‚ใ‚‹ๆ›ธใๆ–น๏ผˆใ€Œใใ†ใใ†ใ€ใ€Œไธ€ใคไธ€ใคใ€ใ€Œvery veryใ€๏ผ‰ใฏๆŒ‡ใ—ใพใ›ใ‚“ใ€‚่‹ฑ่ชžใงๆ–‡ๆณ•ใŒ่จฑใ™้‡ใชใ‚Š๏ผˆhad hadใ€that that๏ผ‰ใ‚‚ๆŒ‡ใ—ใพใ›ใ‚“ใ€‚
43
+ en: Repeats that grammar allows ("had had", "that that"), repeats for emphasis ("very very"), and the same word in two different parts of speech are not reported.