chaffjs 0.20.0 → 0.22.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 (762) hide show
  1. package/README.md +7 -5
  2. package/dist/api.d.ts +16 -1
  3. package/dist/api.d.ts.map +1 -1
  4. package/dist/api.js.map +1 -1
  5. package/dist/cli-text.d.ts +2 -0
  6. package/dist/cli-text.d.ts.map +1 -1
  7. package/dist/cli-text.js +18 -5
  8. package/dist/cli-text.js.map +1 -1
  9. package/dist/cli.d.ts.map +1 -1
  10. package/dist/cli.js +8 -11
  11. package/dist/cli.js.map +1 -1
  12. package/dist/command-help.d.ts +7 -0
  13. package/dist/command-help.d.ts.map +1 -0
  14. package/dist/command-help.js +18 -0
  15. package/dist/command-help.js.map +1 -0
  16. package/dist/commands/eval.js +2 -2
  17. package/dist/commands/eval.js.map +1 -1
  18. package/dist/commands/fix-plan.d.ts.map +1 -1
  19. package/dist/commands/fix-plan.js +11 -1
  20. package/dist/commands/fix-plan.js.map +1 -1
  21. package/dist/commands/help.d.ts +4 -0
  22. package/dist/commands/help.d.ts.map +1 -0
  23. package/dist/commands/help.js +7 -0
  24. package/dist/commands/help.js.map +1 -0
  25. package/dist/commands/init-command.d.ts +4 -0
  26. package/dist/commands/init-command.d.ts.map +1 -0
  27. package/dist/commands/init-command.js +15 -0
  28. package/dist/commands/init-command.js.map +1 -0
  29. package/dist/commands/plugin-init.d.ts +20 -0
  30. package/dist/commands/plugin-init.d.ts.map +1 -0
  31. package/dist/commands/plugin-init.js +129 -0
  32. package/dist/commands/plugin-init.js.map +1 -0
  33. package/dist/commands/plugin-test.d.ts +11 -0
  34. package/dist/commands/plugin-test.d.ts.map +1 -0
  35. package/dist/commands/plugin-test.js +81 -0
  36. package/dist/commands/plugin-test.js.map +1 -0
  37. package/dist/config/load.d.ts +2 -0
  38. package/dist/config/load.d.ts.map +1 -1
  39. package/dist/config/load.js +1 -0
  40. package/dist/config/load.js.map +1 -1
  41. package/dist/config/option-problems.js +2 -2
  42. package/dist/config/option-problems.js.map +1 -1
  43. package/dist/config/rule-problems.js +2 -2
  44. package/dist/config/rule-problems.js.map +1 -1
  45. package/dist/custom/checked.d.ts +9 -0
  46. package/dist/custom/checked.d.ts.map +1 -0
  47. package/dist/custom/checked.js +3 -0
  48. package/dist/custom/checked.js.map +1 -0
  49. package/dist/custom/dsl-fields.d.ts +27 -0
  50. package/dist/custom/dsl-fields.d.ts.map +1 -0
  51. package/dist/custom/dsl-fields.js +86 -0
  52. package/dist/custom/dsl-fields.js.map +1 -0
  53. package/dist/custom/load.d.ts.map +1 -1
  54. package/dist/custom/load.js +2 -0
  55. package/dist/custom/load.js.map +1 -1
  56. package/dist/custom/parse.d.ts +14 -3
  57. package/dist/custom/parse.d.ts.map +1 -1
  58. package/dist/custom/parse.js +44 -40
  59. package/dist/custom/parse.js.map +1 -1
  60. package/dist/custom/problems.d.ts.map +1 -1
  61. package/dist/custom/problems.js +10 -1
  62. package/dist/custom/problems.js.map +1 -1
  63. package/dist/detectors/amount-for-count.d.ts +21 -0
  64. package/dist/detectors/amount-for-count.d.ts.map +1 -0
  65. package/dist/detectors/amount-for-count.js +55 -0
  66. package/dist/detectors/amount-for-count.js.map +1 -0
  67. package/dist/detectors/blank-structure.d.ts.map +1 -1
  68. package/dist/detectors/blank-structure.js +6 -4
  69. package/dist/detectors/blank-structure.js.map +1 -1
  70. package/dist/detectors/clause-shape.d.ts +22 -0
  71. package/dist/detectors/clause-shape.d.ts.map +1 -0
  72. package/dist/detectors/clause-shape.js +149 -0
  73. package/dist/detectors/clause-shape.js.map +1 -0
  74. package/dist/detectors/code-fences.d.ts +34 -0
  75. package/dist/detectors/code-fences.d.ts.map +1 -0
  76. package/dist/detectors/code-fences.js +100 -0
  77. package/dist/detectors/code-fences.js.map +1 -0
  78. package/dist/detectors/cross-definitions.d.ts +4 -0
  79. package/dist/detectors/cross-definitions.d.ts.map +1 -0
  80. package/dist/detectors/cross-definitions.js +43 -0
  81. package/dist/detectors/cross-definitions.js.map +1 -0
  82. package/dist/detectors/cross-facts.d.ts +4 -0
  83. package/dist/detectors/cross-facts.d.ts.map +1 -0
  84. package/dist/detectors/cross-facts.js +53 -0
  85. package/dist/detectors/cross-facts.js.map +1 -0
  86. package/dist/detectors/cross-registry/cross-doc-duplicate-definition.d.ts +3 -0
  87. package/dist/detectors/cross-registry/cross-doc-duplicate-definition.d.ts.map +1 -0
  88. package/dist/detectors/cross-registry/cross-doc-duplicate-definition.js +3 -0
  89. package/dist/detectors/cross-registry/cross-doc-duplicate-definition.js.map +1 -0
  90. package/dist/detectors/cross-registry/cross-doc-fact-conflict.d.ts +3 -0
  91. package/dist/detectors/cross-registry/cross-doc-fact-conflict.d.ts.map +1 -0
  92. package/dist/detectors/cross-registry/cross-doc-fact-conflict.js +3 -0
  93. package/dist/detectors/cross-registry/cross-doc-fact-conflict.js.map +1 -0
  94. package/dist/detectors/currency-notation.d.ts +29 -0
  95. package/dist/detectors/currency-notation.d.ts.map +1 -0
  96. package/dist/detectors/currency-notation.js +58 -0
  97. package/dist/detectors/currency-notation.js.map +1 -0
  98. package/dist/detectors/custom.d.ts.map +1 -1
  99. package/dist/detectors/custom.js +4 -1
  100. package/dist/detectors/custom.js.map +1 -1
  101. package/dist/detectors/dangling-opener.d.ts +14 -0
  102. package/dist/detectors/dangling-opener.d.ts.map +1 -0
  103. package/dist/detectors/dangling-opener.js +55 -0
  104. package/dist/detectors/dangling-opener.js.map +1 -0
  105. package/dist/detectors/defined-term-form.d.ts +25 -0
  106. package/dist/detectors/defined-term-form.d.ts.map +1 -0
  107. package/dist/detectors/defined-term-form.js +170 -0
  108. package/dist/detectors/defined-term-form.js.map +1 -0
  109. package/dist/detectors/email-letter.d.ts +46 -0
  110. package/dist/detectors/email-letter.d.ts.map +1 -0
  111. package/dist/detectors/email-letter.js +234 -0
  112. package/dist/detectors/email-letter.js.map +1 -0
  113. package/dist/detectors/footnote-mismatch.d.ts +11 -0
  114. package/dist/detectors/footnote-mismatch.d.ts.map +1 -0
  115. package/dist/detectors/footnote-mismatch.js +55 -0
  116. package/dist/detectors/footnote-mismatch.js.map +1 -0
  117. package/dist/detectors/form-minority.d.ts +13 -0
  118. package/dist/detectors/form-minority.d.ts.map +1 -0
  119. package/dist/detectors/form-minority.js +19 -0
  120. package/dist/detectors/form-minority.js.map +1 -0
  121. package/dist/detectors/heading-end-mark.d.ts +10 -0
  122. package/dist/detectors/heading-end-mark.d.ts.map +1 -0
  123. package/dist/detectors/heading-end-mark.js +59 -0
  124. package/dist/detectors/heading-end-mark.js.map +1 -0
  125. package/dist/detectors/impossible-date.d.ts +20 -0
  126. package/dist/detectors/impossible-date.d.ts.map +1 -0
  127. package/dist/detectors/impossible-date.js +105 -0
  128. package/dist/detectors/impossible-date.js.map +1 -0
  129. package/dist/detectors/impossible-time.d.ts +18 -0
  130. package/dist/detectors/impossible-time.d.ts.map +1 -0
  131. package/dist/detectors/impossible-time.js +116 -0
  132. package/dist/detectors/impossible-time.js.map +1 -0
  133. package/dist/detectors/link-shape.d.ts +11 -0
  134. package/dist/detectors/link-shape.d.ts.map +1 -0
  135. package/dist/detectors/link-shape.js +56 -0
  136. package/dist/detectors/link-shape.js.map +1 -0
  137. package/dist/detectors/list-marker.d.ts +7 -0
  138. package/dist/detectors/list-marker.d.ts.map +1 -0
  139. package/dist/detectors/list-marker.js +50 -0
  140. package/dist/detectors/list-marker.js.map +1 -0
  141. package/dist/detectors/mark-shape.d.ts +53 -0
  142. package/dist/detectors/mark-shape.d.ts.map +1 -0
  143. package/dist/detectors/mark-shape.js +160 -0
  144. package/dist/detectors/mark-shape.js.map +1 -0
  145. package/dist/detectors/markdown-slip.d.ts +19 -0
  146. package/dist/detectors/markdown-slip.d.ts.map +1 -0
  147. package/dist/detectors/markdown-slip.js +122 -0
  148. package/dist/detectors/markdown-slip.js.map +1 -0
  149. package/dist/detectors/numeral-opener.d.ts +10 -0
  150. package/dist/detectors/numeral-opener.d.ts.map +1 -0
  151. package/dist/detectors/numeral-opener.js +65 -0
  152. package/dist/detectors/numeral-opener.js.map +1 -0
  153. package/dist/detectors/ordinal-suffix.d.ts +12 -0
  154. package/dist/detectors/ordinal-suffix.d.ts.map +1 -0
  155. package/dist/detectors/ordinal-suffix.js +33 -0
  156. package/dist/detectors/ordinal-suffix.js.map +1 -0
  157. package/dist/detectors/range-notation.d.ts +15 -0
  158. package/dist/detectors/range-notation.d.ts.map +1 -0
  159. package/dist/detectors/range-notation.js +58 -0
  160. package/dist/detectors/range-notation.js.map +1 -0
  161. package/dist/detectors/registry/adverb-polarity.d.ts +3 -0
  162. package/dist/detectors/registry/adverb-polarity.d.ts.map +1 -0
  163. package/dist/detectors/registry/adverb-polarity.js +3 -0
  164. package/dist/detectors/registry/adverb-polarity.js.map +1 -0
  165. package/dist/detectors/registry/amount-for-count.d.ts +3 -0
  166. package/dist/detectors/registry/amount-for-count.d.ts.map +1 -0
  167. package/dist/detectors/registry/amount-for-count.js +3 -0
  168. package/dist/detectors/registry/amount-for-count.js.map +1 -0
  169. package/dist/detectors/registry/attachment-missing.d.ts +3 -0
  170. package/dist/detectors/registry/attachment-missing.d.ts.map +1 -0
  171. package/dist/detectors/registry/attachment-missing.js +3 -0
  172. package/dist/detectors/registry/attachment-missing.js.map +1 -0
  173. package/dist/detectors/registry/bare-url-mix.d.ts +3 -0
  174. package/dist/detectors/registry/bare-url-mix.d.ts.map +1 -0
  175. package/dist/detectors/registry/bare-url-mix.js +3 -0
  176. package/dist/detectors/registry/bare-url-mix.js.map +1 -0
  177. package/dist/detectors/registry/caps-shouting.d.ts +3 -0
  178. package/dist/detectors/registry/caps-shouting.d.ts.map +1 -0
  179. package/dist/detectors/registry/caps-shouting.js +3 -0
  180. package/dist/detectors/registry/caps-shouting.js.map +1 -0
  181. package/dist/detectors/registry/code-fence-language.d.ts +3 -0
  182. package/dist/detectors/registry/code-fence-language.d.ts.map +1 -0
  183. package/dist/detectors/registry/code-fence-language.js +3 -0
  184. package/dist/detectors/registry/code-fence-language.js.map +1 -0
  185. package/dist/detectors/registry/currency-notation.d.ts +3 -0
  186. package/dist/detectors/registry/currency-notation.d.ts.map +1 -0
  187. package/dist/detectors/registry/currency-notation.js +3 -0
  188. package/dist/detectors/registry/currency-notation.js.map +1 -0
  189. package/dist/detectors/registry/dangling-opener.d.ts +3 -0
  190. package/dist/detectors/registry/dangling-opener.d.ts.map +1 -0
  191. package/dist/detectors/registry/dangling-opener.js +3 -0
  192. package/dist/detectors/registry/dangling-opener.js.map +1 -0
  193. package/dist/detectors/registry/defined-name-repeated.d.ts +3 -0
  194. package/dist/detectors/registry/defined-name-repeated.d.ts.map +1 -0
  195. package/dist/detectors/registry/defined-name-repeated.js +3 -0
  196. package/dist/detectors/registry/defined-name-repeated.js.map +1 -0
  197. package/dist/detectors/registry/defined-term-form.d.ts +3 -0
  198. package/dist/detectors/registry/defined-term-form.d.ts.map +1 -0
  199. package/dist/detectors/registry/defined-term-form.js +3 -0
  200. package/dist/detectors/registry/defined-term-form.js.map +1 -0
  201. package/dist/detectors/registry/email-frame.d.ts +3 -0
  202. package/dist/detectors/registry/email-frame.d.ts.map +1 -0
  203. package/dist/detectors/registry/email-frame.js +3 -0
  204. package/dist/detectors/registry/email-frame.js.map +1 -0
  205. package/dist/detectors/registry/email-subject.d.ts +3 -0
  206. package/dist/detectors/registry/email-subject.d.ts.map +1 -0
  207. package/dist/detectors/registry/email-subject.js +3 -0
  208. package/dist/detectors/registry/email-subject.js.map +1 -0
  209. package/dist/detectors/registry/ending-run.d.ts +3 -0
  210. package/dist/detectors/registry/ending-run.d.ts.map +1 -0
  211. package/dist/detectors/registry/ending-run.js +3 -0
  212. package/dist/detectors/registry/ending-run.js.map +1 -0
  213. package/dist/detectors/registry/footnote-mismatch.d.ts +3 -0
  214. package/dist/detectors/registry/footnote-mismatch.d.ts.map +1 -0
  215. package/dist/detectors/registry/footnote-mismatch.js +3 -0
  216. package/dist/detectors/registry/footnote-mismatch.js.map +1 -0
  217. package/dist/detectors/registry/heading-command.d.ts +3 -0
  218. package/dist/detectors/registry/heading-command.d.ts.map +1 -0
  219. package/dist/detectors/registry/heading-command.js +3 -0
  220. package/dist/detectors/registry/heading-command.js.map +1 -0
  221. package/dist/detectors/registry/heading-end-punctuation.d.ts +3 -0
  222. package/dist/detectors/registry/heading-end-punctuation.d.ts.map +1 -0
  223. package/dist/detectors/registry/heading-end-punctuation.js +3 -0
  224. package/dist/detectors/registry/heading-end-punctuation.js.map +1 -0
  225. package/dist/detectors/registry/hyphen-dash.d.ts +3 -0
  226. package/dist/detectors/registry/hyphen-dash.d.ts.map +1 -0
  227. package/dist/detectors/registry/hyphen-dash.js +3 -0
  228. package/dist/detectors/registry/hyphen-dash.js.map +1 -0
  229. package/dist/detectors/registry/image-file-name-alt.d.ts +3 -0
  230. package/dist/detectors/registry/image-file-name-alt.d.ts.map +1 -0
  231. package/dist/detectors/registry/image-file-name-alt.js +3 -0
  232. package/dist/detectors/registry/image-file-name-alt.js.map +1 -0
  233. package/dist/detectors/registry/impossible-date.d.ts +3 -0
  234. package/dist/detectors/registry/impossible-date.d.ts.map +1 -0
  235. package/dist/detectors/registry/impossible-date.js +3 -0
  236. package/dist/detectors/registry/impossible-date.js.map +1 -0
  237. package/dist/detectors/registry/impossible-time.d.ts +3 -0
  238. package/dist/detectors/registry/impossible-time.d.ts.map +1 -0
  239. package/dist/detectors/registry/impossible-time.js +3 -0
  240. package/dist/detectors/registry/impossible-time.js.map +1 -0
  241. package/dist/detectors/registry/latin-abbreviation.d.ts +3 -0
  242. package/dist/detectors/registry/latin-abbreviation.d.ts.map +1 -0
  243. package/dist/detectors/registry/latin-abbreviation.js +3 -0
  244. package/dist/detectors/registry/latin-abbreviation.js.map +1 -0
  245. package/dist/detectors/registry/link-text-url-mismatch.d.ts +3 -0
  246. package/dist/detectors/registry/link-text-url-mismatch.d.ts.map +1 -0
  247. package/dist/detectors/registry/link-text-url-mismatch.js +3 -0
  248. package/dist/detectors/registry/link-text-url-mismatch.js.map +1 -0
  249. package/dist/detectors/registry/list-marker.d.ts +3 -0
  250. package/dist/detectors/registry/list-marker.d.ts.map +1 -0
  251. package/dist/detectors/registry/list-marker.js +3 -0
  252. package/dist/detectors/registry/list-marker.js.map +1 -0
  253. package/dist/detectors/registry/mark-consistency.d.ts +3 -0
  254. package/dist/detectors/registry/mark-consistency.d.ts.map +1 -0
  255. package/dist/detectors/registry/mark-consistency.js +3 -0
  256. package/dist/detectors/registry/mark-consistency.js.map +1 -0
  257. package/dist/detectors/registry/numeral-opener.d.ts +3 -0
  258. package/dist/detectors/registry/numeral-opener.d.ts.map +1 -0
  259. package/dist/detectors/registry/numeral-opener.js +3 -0
  260. package/dist/detectors/registry/numeral-opener.js.map +1 -0
  261. package/dist/detectors/registry/ordinal-suffix.d.ts +3 -0
  262. package/dist/detectors/registry/ordinal-suffix.d.ts.map +1 -0
  263. package/dist/detectors/registry/ordinal-suffix.js +3 -0
  264. package/dist/detectors/registry/ordinal-suffix.js.map +1 -0
  265. package/dist/detectors/registry/origin-particle.d.ts +3 -0
  266. package/dist/detectors/registry/origin-particle.d.ts.map +1 -0
  267. package/dist/detectors/registry/origin-particle.js +3 -0
  268. package/dist/detectors/registry/origin-particle.js.map +1 -0
  269. package/dist/detectors/registry/range-notation.d.ts +3 -0
  270. package/dist/detectors/registry/range-notation.d.ts.map +1 -0
  271. package/dist/detectors/registry/range-notation.js +3 -0
  272. package/dist/detectors/registry/range-notation.js.map +1 -0
  273. package/dist/detectors/registry/relative-pronoun-mix.d.ts +3 -0
  274. package/dist/detectors/registry/relative-pronoun-mix.d.ts.map +1 -0
  275. package/dist/detectors/registry/relative-pronoun-mix.js +3 -0
  276. package/dist/detectors/registry/relative-pronoun-mix.js.map +1 -0
  277. package/dist/detectors/registry/request-without-deadline.d.ts +3 -0
  278. package/dist/detectors/registry/request-without-deadline.d.ts.map +1 -0
  279. package/dist/detectors/registry/request-without-deadline.js +3 -0
  280. package/dist/detectors/registry/request-without-deadline.js.map +1 -0
  281. package/dist/detectors/registry/sentence-spacing.d.ts +3 -0
  282. package/dist/detectors/registry/sentence-spacing.d.ts.map +1 -0
  283. package/dist/detectors/registry/sentence-spacing.js +3 -0
  284. package/dist/detectors/registry/sentence-spacing.js.map +1 -0
  285. package/dist/detectors/registry/share-over-hundred.d.ts +3 -0
  286. package/dist/detectors/registry/share-over-hundred.d.ts.map +1 -0
  287. package/dist/detectors/registry/share-over-hundred.js +3 -0
  288. package/dist/detectors/registry/share-over-hundred.js.map +1 -0
  289. package/dist/detectors/registry/shell-prompt.d.ts +3 -0
  290. package/dist/detectors/registry/shell-prompt.d.ts.map +1 -0
  291. package/dist/detectors/registry/shell-prompt.js +3 -0
  292. package/dist/detectors/registry/shell-prompt.js.map +1 -0
  293. package/dist/detectors/registry/step-reference.d.ts +3 -0
  294. package/dist/detectors/registry/step-reference.d.ts.map +1 -0
  295. package/dist/detectors/registry/step-reference.js +3 -0
  296. package/dist/detectors/registry/step-reference.js.map +1 -0
  297. package/dist/detectors/registry/step-statement.d.ts +3 -0
  298. package/dist/detectors/registry/step-statement.d.ts.map +1 -0
  299. package/dist/detectors/registry/step-statement.js +3 -0
  300. package/dist/detectors/registry/step-statement.js.map +1 -0
  301. package/dist/detectors/registry/table-row-overflow.d.ts +3 -0
  302. package/dist/detectors/registry/table-row-overflow.d.ts.map +1 -0
  303. package/dist/detectors/registry/table-row-overflow.js +3 -0
  304. package/dist/detectors/registry/table-row-overflow.js.map +1 -0
  305. package/dist/detectors/registry/toc-heading.d.ts +3 -0
  306. package/dist/detectors/registry/toc-heading.d.ts.map +1 -0
  307. package/dist/detectors/registry/toc-heading.js +3 -0
  308. package/dist/detectors/registry/toc-heading.js.map +1 -0
  309. package/dist/detectors/registry/unclosed-code-fence.d.ts +3 -0
  310. package/dist/detectors/registry/unclosed-code-fence.d.ts.map +1 -0
  311. package/dist/detectors/registry/unclosed-code-fence.js +3 -0
  312. package/dist/detectors/registry/unclosed-code-fence.js.map +1 -0
  313. package/dist/detectors/registry/unpaired-parallel.d.ts +3 -0
  314. package/dist/detectors/registry/unpaired-parallel.d.ts.map +1 -0
  315. package/dist/detectors/registry/unpaired-parallel.js +3 -0
  316. package/dist/detectors/registry/unpaired-parallel.js.map +1 -0
  317. package/dist/detectors/registry/unrendered-emphasis.d.ts +3 -0
  318. package/dist/detectors/registry/unrendered-emphasis.d.ts.map +1 -0
  319. package/dist/detectors/registry/unrendered-emphasis.js +3 -0
  320. package/dist/detectors/registry/unrendered-emphasis.js.map +1 -0
  321. package/dist/detectors/relative-pronoun-mix.d.ts +19 -0
  322. package/dist/detectors/relative-pronoun-mix.d.ts.map +1 -0
  323. package/dist/detectors/relative-pronoun-mix.js +60 -0
  324. package/dist/detectors/relative-pronoun-mix.js.map +1 -0
  325. package/dist/detectors/request-owner.d.ts +23 -0
  326. package/dist/detectors/request-owner.d.ts.map +1 -0
  327. package/dist/detectors/request-owner.js +110 -0
  328. package/dist/detectors/request-owner.js.map +1 -0
  329. package/dist/detectors/share-over-hundred.d.ts +20 -0
  330. package/dist/detectors/share-over-hundred.d.ts.map +1 -0
  331. package/dist/detectors/share-over-hundred.js +55 -0
  332. package/dist/detectors/share-over-hundred.js.map +1 -0
  333. package/dist/detectors/step-reference.d.ts +20 -0
  334. package/dist/detectors/step-reference.d.ts.map +1 -0
  335. package/dist/detectors/step-reference.js +57 -0
  336. package/dist/detectors/step-reference.js.map +1 -0
  337. package/dist/detectors/technical-docs.d.ts +32 -0
  338. package/dist/detectors/technical-docs.d.ts.map +1 -0
  339. package/dist/detectors/technical-docs.js +199 -0
  340. package/dist/detectors/technical-docs.js.map +1 -0
  341. package/dist/detectors/toc-heading.d.ts +10 -0
  342. package/dist/detectors/toc-heading.d.ts.map +1 -0
  343. package/dist/detectors/toc-heading.js +99 -0
  344. package/dist/detectors/toc-heading.js.map +1 -0
  345. package/dist/extension/pack-read.d.ts +21 -0
  346. package/dist/extension/pack-read.d.ts.map +1 -0
  347. package/dist/extension/pack-read.js +117 -0
  348. package/dist/extension/pack-read.js.map +1 -0
  349. package/dist/extension/plugin-load.d.ts.map +1 -1
  350. package/dist/extension/plugin-load.js +44 -10
  351. package/dist/extension/plugin-load.js.map +1 -1
  352. package/dist/extension/plugin-parse.d.ts.map +1 -1
  353. package/dist/extension/plugin-parse.js +10 -3
  354. package/dist/extension/plugin-parse.js.map +1 -1
  355. package/dist/facts/address-values.d.ts +5 -0
  356. package/dist/facts/address-values.d.ts.map +1 -0
  357. package/dist/facts/address-values.js +64 -0
  358. package/dist/facts/address-values.js.map +1 -0
  359. package/dist/facts/cross-facts.d.ts +20 -0
  360. package/dist/facts/cross-facts.d.ts.map +1 -0
  361. package/dist/facts/cross-facts.js +41 -0
  362. package/dist/facts/cross-facts.js.map +1 -0
  363. package/dist/fix-plan/chosen-depth.d.ts +10 -0
  364. package/dist/fix-plan/chosen-depth.d.ts.map +1 -0
  365. package/dist/fix-plan/chosen-depth.js +24 -0
  366. package/dist/fix-plan/chosen-depth.js.map +1 -0
  367. package/dist/fix-plan/mode.d.ts +13 -4
  368. package/dist/fix-plan/mode.d.ts.map +1 -1
  369. package/dist/fix-plan/mode.js +38 -7
  370. package/dist/fix-plan/mode.js.map +1 -1
  371. package/dist/fix-plan/plan.d.ts +20 -0
  372. package/dist/fix-plan/plan.d.ts.map +1 -1
  373. package/dist/fix-plan/plan.js +23 -5
  374. package/dist/fix-plan/plan.js.map +1 -1
  375. package/dist/fix-plan/render.d.ts.map +1 -1
  376. package/dist/fix-plan/render.js +24 -0
  377. package/dist/fix-plan/render.js.map +1 -1
  378. package/dist/fix-plan/text.d.ts +8 -0
  379. package/dist/fix-plan/text.d.ts.map +1 -1
  380. package/dist/fix-plan/text.js +36 -10
  381. package/dist/fix-plan/text.js.map +1 -1
  382. package/dist/genre-load.d.ts +1 -1
  383. package/dist/genre-load.d.ts.map +1 -1
  384. package/dist/genre-load.js +7 -4
  385. package/dist/genre-load.js.map +1 -1
  386. package/dist/genre-parse.d.ts +6 -0
  387. package/dist/genre-parse.d.ts.map +1 -1
  388. package/dist/genre-parse.js +18 -0
  389. package/dist/genre-parse.js.map +1 -1
  390. package/dist/init.js +10 -10
  391. package/dist/init.js.map +1 -1
  392. package/dist/known-genres.d.ts +8 -0
  393. package/dist/known-genres.d.ts.map +1 -0
  394. package/dist/known-genres.js +17 -0
  395. package/dist/known-genres.js.map +1 -0
  396. package/dist/link-shape.d.ts +20 -0
  397. package/dist/link-shape.d.ts.map +1 -0
  398. package/dist/link-shape.js +58 -0
  399. package/dist/link-shape.js.map +1 -0
  400. package/dist/list-marks.d.ts +21 -0
  401. package/dist/list-marks.d.ts.map +1 -0
  402. package/dist/list-marks.js +82 -0
  403. package/dist/list-marks.js.map +1 -0
  404. package/dist/reasons.d.ts.map +1 -1
  405. package/dist/reasons.js +15 -4
  406. package/dist/reasons.js.map +1 -1
  407. package/dist/render/explain.d.ts.map +1 -1
  408. package/dist/render/explain.js +11 -2
  409. package/dist/render/explain.js.map +1 -1
  410. package/dist/render/friendly.js +1 -1
  411. package/dist/render/friendly.js.map +1 -1
  412. package/dist/render/rules-json.d.ts.map +1 -1
  413. package/dist/render/rules-json.js +12 -3
  414. package/dist/render/rules-json.js.map +1 -1
  415. package/dist/render/rules-table.js +6 -6
  416. package/dist/render/rules-table.js.map +1 -1
  417. package/dist/render/semantic.js +2 -2
  418. package/dist/render/semantic.js.map +1 -1
  419. package/dist/render/suppressions.js +2 -2
  420. package/dist/render/suppressions.js.map +1 -1
  421. package/dist/rewrite-depth.d.ts +22 -0
  422. package/dist/rewrite-depth.d.ts.map +1 -0
  423. package/dist/rewrite-depth.js +42 -0
  424. package/dist/rewrite-depth.js.map +1 -0
  425. package/dist/rule-fields.d.ts +28 -0
  426. package/dist/rule-fields.d.ts.map +1 -0
  427. package/dist/rule-fields.js +85 -0
  428. package/dist/rule-fields.js.map +1 -0
  429. package/dist/rule-guide.d.ts +3 -0
  430. package/dist/rule-guide.d.ts.map +1 -1
  431. package/dist/rule-guide.js +6 -0
  432. package/dist/rule-guide.js.map +1 -1
  433. package/dist/rule-load.d.ts.map +1 -1
  434. package/dist/rule-load.js +13 -5
  435. package/dist/rule-load.js.map +1 -1
  436. package/dist/rule-offs.d.ts +14 -0
  437. package/dist/rule-offs.d.ts.map +1 -0
  438. package/dist/rule-offs.js +45 -0
  439. package/dist/rule-offs.js.map +1 -0
  440. package/dist/structure/build.d.ts.map +1 -1
  441. package/dist/structure/build.js +14 -1
  442. package/dist/structure/build.js.map +1 -1
  443. package/dist/structure/cross-definitions.d.ts +23 -0
  444. package/dist/structure/cross-definitions.d.ts.map +1 -0
  445. package/dist/structure/cross-definitions.js +34 -0
  446. package/dist/structure/cross-definitions.js.map +1 -0
  447. package/genres.yaml +14 -313
  448. package/package.json +3 -3
  449. package/rules/absolute-exception.yaml +3 -1
  450. package/rules/abstract-length.yaml +7 -1
  451. package/rules/acronym-expansion-conflict.yaml +2 -1
  452. package/rules/adverb-overuse.yaml +7 -1
  453. package/rules/adverb-without-negation.yaml +60 -0
  454. package/rules/adversative-ga-repeat.yaml +2 -1
  455. package/rules/agentless-passive.yaml +10 -1
  456. package/rules/agreement-slip.yaml +4 -1
  457. package/rules/ai-generated-composite.yaml +6 -1
  458. package/rules/ai-structure.yaml +8 -2
  459. package/rules/ai-tell.yaml +7 -1
  460. package/rules/all-caps-shouting.yaml +61 -0
  461. package/rules/announced-count-mismatch.yaml +3 -1
  462. package/rules/announcing-opener.yaml +7 -1
  463. package/rules/article-sound.yaml +6 -2
  464. package/rules/assistant-residue.yaml +4 -1
  465. package/rules/attachment-not-attached.yaml +112 -0
  466. package/rules/baito-keigo.yaml +64 -0
  467. package/rules/bare-url-mix.yaml +86 -0
  468. package/rules/bold-density.yaml +1 -0
  469. package/rules/bold-label-list.yaml +9 -1
  470. package/rules/bracket-nesting.yaml +2 -1
  471. package/rules/bracket-width-consistency.yaml +64 -0
  472. package/rules/broken-link.yaml +1 -1
  473. package/rules/chat-citation-residue.yaml +2 -1
  474. package/rules/citation-reference-mismatch.yaml +7 -1
  475. package/rules/citation-style-mix.yaml +7 -1
  476. package/rules/clause-chain.yaml +6 -1
  477. package/rules/cliche.yaml +67 -0
  478. package/rules/closing-cliche.yaml +7 -0
  479. package/rules/code-fence-language-mix.yaml +176 -0
  480. package/rules/colloquial-opener.yaml +62 -0
  481. package/rules/colon-lead-in.yaml +7 -1
  482. package/rules/concrete-evidence-density.yaml +6 -0
  483. package/rules/contraction-consistency.yaml +4 -1
  484. package/rules/contrast-framing.yaml +7 -1
  485. package/rules/cross-doc-duplicate-definition.yaml +70 -0
  486. package/rules/cross-doc-fact-conflict.yaml +64 -0
  487. package/rules/currency-notation-consistency.yaml +77 -0
  488. package/rules/cushion-phrase-density.yaml +8 -1
  489. package/rules/dangling-figure-reference.yaml +3 -1
  490. package/rules/dangling-participle.yaml +58 -0
  491. package/rules/dangling-reference.yaml +3 -1
  492. package/rules/date-format-consistency.yaml +3 -2
  493. package/rules/date-order.yaml +3 -1
  494. package/rules/date-range-reversed.yaml +3 -1
  495. package/rules/date-weekday-mismatch.yaml +3 -1
  496. package/rules/date-without-year.yaml +4 -3
  497. package/rules/defined-name-repeated.yaml +97 -0
  498. package/rules/defined-term-form.yaml +113 -0
  499. package/rules/demonstrative-opener-run.yaml +2 -1
  500. package/rules/double-keigo.yaml +6 -1
  501. package/rules/double-negative.yaml +5 -1
  502. package/rules/doubled-nado.yaml +2 -1
  503. package/rules/doubled-punctuation.yaml +1 -1
  504. package/rules/doubled-word.yaml +4 -1
  505. package/rules/duplicate-definition.yaml +3 -1
  506. package/rules/duplicate-heading.yaml +1 -1
  507. package/rules/duration-mismatch.yaml +2 -1
  508. package/rules/elapsed-years-mismatch.yaml +4 -1
  509. package/rules/email-greeting-closing.yaml +122 -0
  510. package/rules/email-subject-length.yaml +112 -0
  511. package/rules/emoji-density.yaml +3 -1
  512. package/rules/emoji-heading.yaml +7 -1
  513. package/rules/empty-intensifier.yaml +4 -0
  514. package/rules/empty-list-item.yaml +2 -1
  515. package/rules/empty-section.yaml +1 -1
  516. package/rules/empty-table-cell.yaml +2 -1
  517. package/rules/excessive-hedging.yaml +7 -1
  518. package/rules/exclamation-width-consistency.yaml +64 -0
  519. package/rules/expletive-construction.yaml +7 -1
  520. package/rules/fact-conflict.yaml +4 -1
  521. package/rules/figure-reference-order.yaml +7 -1
  522. package/rules/footnote-mismatch.yaml +91 -0
  523. package/rules/fullwidth-alnum-consistency.yaml +2 -2
  524. package/rules/hankaku-kana.yaml +1 -1
  525. package/rules/heading-command-missing.yaml +109 -0
  526. package/rules/heading-echo.yaml +6 -1
  527. package/rules/heading-end-punctuation-mix.yaml +158 -0
  528. package/rules/heading-level-skip.yaml +3 -3
  529. package/rules/heading-numbering-mix.yaml +4 -3
  530. package/rules/hiragana-fukushi.yaml +4 -1
  531. package/rules/homophone-slip.yaml +5 -1
  532. package/rules/humble-for-others.yaml +63 -0
  533. package/rules/hyphen-as-dash.yaml +59 -0
  534. package/rules/idiom-misuse.yaml +4 -1
  535. package/rules/image-file-name-alt.yaml +83 -0
  536. package/rules/impossible-date.yaml +79 -0
  537. package/rules/impossible-time.yaml +76 -0
  538. package/rules/internal-jargon.yaml +1 -1
  539. package/rules/invisible-character.yaml +1 -1
  540. package/rules/katakana-density.yaml +2 -1
  541. package/rules/katakana-long-vowel.yaml +1 -1
  542. package/rules/known-misspelling.yaml +2 -1
  543. package/rules/kutoten-consistency.yaml +1 -1
  544. package/rules/latin-abbreviation-form.yaml +58 -0
  545. package/rules/latin-spacing.yaml +6 -2
  546. package/rules/less-for-fewer.yaml +59 -0
  547. package/rules/link-text-url-mismatch.yaml +72 -0
  548. package/rules/list-item-form-mix.yaml +7 -1
  549. package/rules/list-marker-mix.yaml +111 -0
  550. package/rules/max-kanji-continuous.yaml +10 -2
  551. package/rules/max-paragraph-length.yaml +4 -1
  552. package/rules/max-sentence-length.yaml +29 -21
  553. package/rules/max-ten.yaml +4 -1
  554. package/rules/misconversion.yaml +2 -1
  555. package/rules/modal-conflict.yaml +2 -1
  556. package/rules/name-variant.yaml +4 -3
  557. package/rules/ngram-repetition.yaml +5 -0
  558. package/rules/no-doubled-joshi.yaml +5 -1
  559. package/rules/no-em-dash.yaml +4 -1
  560. package/rules/no-lead.yaml +6 -1
  561. package/rules/no-mixed-desumasu.yaml +5 -2
  562. package/rules/no-nakaguro-parallel.yaml +3 -0
  563. package/rules/nominalization.yaml +5 -1
  564. package/rules/nonstandard-word.yaml +80 -0
  565. package/rules/number-style-consistency.yaml +6 -1
  566. package/rules/number-without-unit.yaml +2 -1
  567. package/rules/numbering-gap.yaml +1 -1
  568. package/rules/numeral-sentence-start.yaml +56 -0
  569. package/rules/one-sentence-paragraph-run.yaml +5 -1
  570. package/rules/ordinal-suffix-mismatch.yaml +65 -0
  571. package/rules/orthographic-variant.yaml +4 -1
  572. package/rules/outside-announced-list.yaml +2 -1
  573. package/rules/oxford-comma-consistency.yaml +3 -1
  574. package/rules/padded-intro.yaml +7 -0
  575. package/rules/paragraph-length-variance.yaml +7 -1
  576. package/rules/paragraph-restatement.yaml +6 -1
  577. package/rules/percent-sum-mismatch.yaml +3 -1
  578. package/rules/person-consistency.yaml +4 -1
  579. package/rules/preamble-length.yaml +6 -0
  580. package/rules/preferred-term.yaml +1 -1
  581. package/rules/proper-noun-density.yaml +8 -1
  582. package/rules/quote-style-consistency.yaml +66 -0
  583. package/rules/ra-nuki.yaml +4 -1
  584. package/rules/range-notation-consistency.yaml +73 -0
  585. package/rules/redundant-expression.yaml +4 -1
  586. package/rules/reference-title-mismatch.yaml +4 -3
  587. package/rules/reference-topic-missing.yaml +2 -1
  588. package/rules/relative-date-mismatch.yaml +2 -1
  589. package/rules/repeated-conjunction.yaml +4 -1
  590. package/rules/repeated-sentence-ending.yaml +62 -0
  591. package/rules/repeated-sentence-head.yaml +4 -0
  592. package/rules/request-without-deadline.yaml +92 -0
  593. package/rules/required-sections.yaml +1 -1
  594. package/rules/requirement-modal.yaml +1 -1
  595. package/rules/requirement-smell.yaml +12 -4
  596. package/rules/rule-of-three.yaml +8 -1
  597. package/rules/sasete-itadaku.yaml +7 -1
  598. package/rules/section-length-uniformity.yaml +7 -1
  599. package/rules/sentence-initial-conjunction-run.yaml +5 -1
  600. package/rules/sentence-initial-so.yaml +6 -1
  601. package/rules/sentence-rhythm.yaml +8 -1
  602. package/rules/sentence-spacing-consistency.yaml +63 -0
  603. package/rules/share-over-hundred.yaml +65 -0
  604. package/rules/shell-prompt-mix.yaml +128 -0
  605. package/rules/space-before-punctuation.yaml +1 -1
  606. package/rules/spelling-consistency.yaml +3 -1
  607. package/rules/step-reference-missing.yaml +85 -0
  608. package/rules/step-statement-mix.yaml +76 -0
  609. package/rules/stock-transition.yaml +8 -1
  610. package/rules/stray-space.yaml +2 -2
  611. package/rules/summary-fact-mismatch.yaml +4 -1
  612. package/rules/table-header-variant.yaml +2 -1
  613. package/rules/table-row-overflow.yaml +90 -0
  614. package/rules/taigen-dome-in-prose.yaml +6 -0
  615. package/rules/tari-unpaired.yaml +58 -0
  616. package/rules/teki-overuse.yaml +2 -1
  617. package/rules/title-case-consistency.yaml +1 -1
  618. package/rules/title-length.yaml +7 -1
  619. package/rules/toc-heading-mismatch.yaml +136 -0
  620. package/rules/topic-predicate-distance.yaml +6 -1
  621. package/rules/total-mismatch.yaml +3 -1
  622. package/rules/translationese-density.yaml +4 -1
  623. package/rules/unbalanced-bracket.yaml +3 -3
  624. package/rules/unclosed-code-fence.yaml +107 -0
  625. package/rules/uncomparable-graded.yaml +65 -0
  626. package/rules/undefined-acronym.yaml +8 -1
  627. package/rules/unfilled-placeholder.yaml +1 -1
  628. package/rules/unit-mismatch.yaml +2 -1
  629. package/rules/unknown-word.yaml +4 -1
  630. package/rules/unqualified-superlative.yaml +6 -1
  631. package/rules/unrendered-emphasis.yaml +73 -0
  632. package/rules/unused-definition.yaml +4 -3
  633. package/rules/url-run-on.yaml +1 -1
  634. package/rules/use-before-definition.yaml +4 -3
  635. package/rules/vague-figure-reference.yaml +3 -1
  636. package/rules/vague-link-text.yaml +2 -1
  637. package/rules/vague-word-density.yaml +2 -1
  638. package/rules/very-adjective.yaml +5 -1
  639. package/rules/weasel-word.yaml +6 -1
  640. package/rules/which-that-consistency.yaml +64 -0
  641. package/rules/wordy-phrase.yaml +6 -1
  642. package/rules/yori-as-from.yaml +61 -0
  643. package/skills/chaff/SKILL.md +7 -7
  644. package/src/api.ts +13 -1
  645. package/src/cli-text.ts +22 -7
  646. package/src/cli.ts +8 -9
  647. package/src/command-help.ts +26 -0
  648. package/src/commands/eval.ts +2 -2
  649. package/src/commands/fix-plan.ts +13 -1
  650. package/src/commands/help.ts +8 -0
  651. package/src/commands/init-command.ts +13 -0
  652. package/src/commands/plugin-init.ts +150 -0
  653. package/src/commands/plugin-test.ts +111 -0
  654. package/src/config/load.ts +3 -0
  655. package/src/config/option-problems.ts +2 -2
  656. package/src/config/rule-problems.ts +2 -2
  657. package/src/custom/checked.ts +8 -0
  658. package/src/custom/dsl-fields.ts +102 -0
  659. package/src/custom/load.ts +2 -0
  660. package/src/custom/parse.ts +72 -50
  661. package/src/custom/problems.ts +16 -2
  662. package/src/detectors/amount-for-count.ts +90 -0
  663. package/src/detectors/blank-structure.ts +12 -4
  664. package/src/detectors/clause-shape.ts +199 -0
  665. package/src/detectors/code-fences.ts +113 -0
  666. package/src/detectors/cross-definitions.ts +49 -0
  667. package/src/detectors/cross-facts.ts +60 -0
  668. package/src/detectors/cross-registry/cross-doc-duplicate-definition.ts +4 -0
  669. package/src/detectors/cross-registry/cross-doc-fact-conflict.ts +4 -0
  670. package/src/detectors/currency-notation.ts +90 -0
  671. package/src/detectors/custom.ts +10 -2
  672. package/src/detectors/dangling-opener.ts +74 -0
  673. package/src/detectors/defined-term-form.ts +200 -0
  674. package/src/detectors/email-letter.ts +262 -0
  675. package/src/detectors/footnote-mismatch.ts +72 -0
  676. package/src/detectors/form-minority.ts +21 -0
  677. package/src/detectors/heading-end-mark.ts +82 -0
  678. package/src/detectors/impossible-date.ts +141 -0
  679. package/src/detectors/impossible-time.ts +151 -0
  680. package/src/detectors/link-shape.ts +70 -0
  681. package/src/detectors/list-marker.ts +60 -0
  682. package/src/detectors/mark-shape.ts +202 -0
  683. package/src/detectors/markdown-slip.ts +140 -0
  684. package/src/detectors/numeral-opener.ts +72 -0
  685. package/src/detectors/ordinal-suffix.ts +40 -0
  686. package/src/detectors/range-notation.ts +76 -0
  687. package/src/detectors/registry/adverb-polarity.ts +4 -0
  688. package/src/detectors/registry/amount-for-count.ts +4 -0
  689. package/src/detectors/registry/attachment-missing.ts +4 -0
  690. package/src/detectors/registry/bare-url-mix.ts +4 -0
  691. package/src/detectors/registry/caps-shouting.ts +4 -0
  692. package/src/detectors/registry/code-fence-language.ts +4 -0
  693. package/src/detectors/registry/currency-notation.ts +4 -0
  694. package/src/detectors/registry/dangling-opener.ts +4 -0
  695. package/src/detectors/registry/defined-name-repeated.ts +4 -0
  696. package/src/detectors/registry/defined-term-form.ts +4 -0
  697. package/src/detectors/registry/email-frame.ts +4 -0
  698. package/src/detectors/registry/email-subject.ts +4 -0
  699. package/src/detectors/registry/ending-run.ts +4 -0
  700. package/src/detectors/registry/footnote-mismatch.ts +4 -0
  701. package/src/detectors/registry/heading-command.ts +4 -0
  702. package/src/detectors/registry/heading-end-punctuation.ts +4 -0
  703. package/src/detectors/registry/hyphen-dash.ts +4 -0
  704. package/src/detectors/registry/image-file-name-alt.ts +4 -0
  705. package/src/detectors/registry/impossible-date.ts +4 -0
  706. package/src/detectors/registry/impossible-time.ts +4 -0
  707. package/src/detectors/registry/latin-abbreviation.ts +4 -0
  708. package/src/detectors/registry/link-text-url-mismatch.ts +4 -0
  709. package/src/detectors/registry/list-marker.ts +4 -0
  710. package/src/detectors/registry/mark-consistency.ts +4 -0
  711. package/src/detectors/registry/numeral-opener.ts +4 -0
  712. package/src/detectors/registry/ordinal-suffix.ts +4 -0
  713. package/src/detectors/registry/origin-particle.ts +4 -0
  714. package/src/detectors/registry/range-notation.ts +4 -0
  715. package/src/detectors/registry/relative-pronoun-mix.ts +4 -0
  716. package/src/detectors/registry/request-without-deadline.ts +4 -0
  717. package/src/detectors/registry/sentence-spacing.ts +4 -0
  718. package/src/detectors/registry/share-over-hundred.ts +4 -0
  719. package/src/detectors/registry/shell-prompt.ts +4 -0
  720. package/src/detectors/registry/step-reference.ts +4 -0
  721. package/src/detectors/registry/step-statement.ts +4 -0
  722. package/src/detectors/registry/table-row-overflow.ts +4 -0
  723. package/src/detectors/registry/toc-heading.ts +4 -0
  724. package/src/detectors/registry/unclosed-code-fence.ts +4 -0
  725. package/src/detectors/registry/unpaired-parallel.ts +4 -0
  726. package/src/detectors/registry/unrendered-emphasis.ts +4 -0
  727. package/src/detectors/relative-pronoun-mix.ts +79 -0
  728. package/src/detectors/request-owner.ts +141 -0
  729. package/src/detectors/share-over-hundred.ts +75 -0
  730. package/src/detectors/step-reference.ts +83 -0
  731. package/src/detectors/technical-docs.ts +230 -0
  732. package/src/detectors/toc-heading.ts +125 -0
  733. package/src/extension/pack-read.ts +128 -0
  734. package/src/extension/plugin-load.ts +49 -9
  735. package/src/extension/plugin-parse.ts +10 -3
  736. package/src/facts/address-values.ts +74 -0
  737. package/src/facts/cross-facts.ts +54 -0
  738. package/src/fix-plan/chosen-depth.ts +28 -0
  739. package/src/fix-plan/mode.ts +57 -11
  740. package/src/fix-plan/plan.ts +37 -5
  741. package/src/fix-plan/render.ts +24 -0
  742. package/src/fix-plan/text.ts +47 -10
  743. package/src/genre-load.ts +7 -4
  744. package/src/genre-parse.ts +19 -0
  745. package/src/init.ts +10 -10
  746. package/src/known-genres.ts +19 -0
  747. package/src/link-shape.ts +62 -0
  748. package/src/list-marks.ts +106 -0
  749. package/src/reasons.ts +16 -4
  750. package/src/render/explain.ts +14 -2
  751. package/src/render/friendly.ts +1 -1
  752. package/src/render/rules-json.ts +14 -3
  753. package/src/render/rules-table.ts +6 -6
  754. package/src/render/semantic.ts +2 -2
  755. package/src/render/suppressions.ts +2 -2
  756. package/src/rewrite-depth.ts +60 -0
  757. package/src/rule-fields.ts +123 -0
  758. package/src/rule-guide.ts +9 -0
  759. package/src/rule-load.ts +10 -4
  760. package/src/rule-offs.ts +50 -0
  761. package/src/structure/build.ts +21 -1
  762. package/src/structure/cross-definitions.ts +60 -0
@@ -0,0 +1,128 @@
1
+ id: shell-prompt-mix
2
+ layer: L1
3
+ status: stable
4
+ how_to_find: shell-prompt
5
+ requires: [markdown]
6
+ severity: info
7
+
8
+ name:
9
+ ja: シェルのコマンドにプロンプトを付けたり付けなかったりしている
10
+ en: Shell commands with and without a prompt
11
+
12
+ why:
13
+ ja: 「$ npm install」と「npm install」が一つの文書に混ざっていると、読み手は「$」まで打つのか迷い、コピーしたコマンドが動かないこともあります。シェルのブロック(```bash、```console)のうち、全部の行にプロンプト($)を付けたブロックと、一つも付けないブロックを比べ、少ないほうを指します。出力と一緒に書いたブロック(プロンプトのある行と無い行が混ざる)は見ません。どちらに揃えるかは決めません。
14
+ en: 'When "$ npm install" and "npm install" both appear in one document, the reader wonders whether to type the "$", and a copied command may fail. chaff compares shell blocks (```bash, ```console) whose every line has a prompt ($) with those where no line has one, and points at the fewer. A block that shows a command with its output (some lines prompted, some not) is not read. Which way is right is not decided.'
15
+
16
+ message:
17
+ ja: このブロックだけ、コマンドへのプロンプト($)の付け方がほかと違います(ほかの {majority} ブロック)
18
+ en: This block writes its commands with a prompt ($) differently from the other {majority} blocks
19
+
20
+ how_to_fix:
21
+ ja: 多いほうに揃えてください。コピーして使うコマンドなら、プロンプトを付けないほうが打ち間違えません。
22
+ en: Match the majority. For commands meant to be copied, leaving the prompt out avoids pasting it.
23
+
24
+ levels: { strict: 3, normal: 2, relaxed: 1 }
25
+
26
+ use_for: [technical, docs, blog, legal, academic, literature, speech]
27
+ off_for:
28
+ legal: "Code blocks, shell prompts, command headings and numbered steps belong to technical writing."
29
+ academic: "Code blocks, shell prompts, command headings and numbered steps belong to technical writing."
30
+ literature: "Code blocks, shell prompts, command headings and numbered steps belong to technical writing."
31
+ speech: "Code blocks, shell prompts, command headings and numbered steps belong to technical writing."
32
+
33
+ group: consistency
34
+ summary:
35
+ ja: シェルのブロックで、「$」のプロンプトを付けたコマンドと付けないコマンドが混ざっている所
36
+ en: Shell blocks that write commands with a "$" prompt in some places and without it in others
37
+ example:
38
+ ja:
39
+ config: { genre: docs/manual }
40
+ before: |
41
+ # 使い方
42
+
43
+ ```bash
44
+ npm install chaffjs
45
+ ```
46
+
47
+ ```bash
48
+ npx chaffjs init
49
+ ```
50
+
51
+ ```bash
52
+ $ npx chaffjs README.md
53
+ ```
54
+ after: |
55
+ # 使い方
56
+
57
+ ```bash
58
+ npm install chaffjs
59
+ ```
60
+
61
+ ```bash
62
+ npx chaffjs init
63
+ ```
64
+
65
+ ```bash
66
+ npx chaffjs README.md
67
+ ```
68
+ en:
69
+ config: { genre: docs/manual }
70
+ before: |
71
+ # Usage
72
+
73
+ ```bash
74
+ npm install chaffjs
75
+ ```
76
+
77
+ ```bash
78
+ npx chaffjs init
79
+ ```
80
+
81
+ ```bash
82
+ $ npx chaffjs README.md
83
+ ```
84
+ after: |
85
+ # Usage
86
+
87
+ ```bash
88
+ npm install chaffjs
89
+ ```
90
+
91
+ ```bash
92
+ npx chaffjs init
93
+ ```
94
+
95
+ ```bash
96
+ npx chaffjs README.md
97
+ ```
98
+
99
+ not_flagged:
100
+ ja: シェル以外の言語のブロック、言語名の無いブロック、コマンドと出力を一緒に書いたブロック、コメント(#)の行は見ません。少ないほうが {limit} ブロックを超えるときは使い分けとみなします。
101
+ en: Blocks in other languages or without a language, blocks that show a command with its output, and comment lines (#) are not read. When the fewer kind is more than {limit} blocks, it is taken as a choice.
102
+ level_meaning:
103
+ ja: 少ないほうの書き方が {limit} ブロック以下のとき指摘
104
+ en: reported when the fewer style appears in {limit} blocks or fewer
105
+ rewrite:
106
+ depth: light
107
+ ja:
108
+ direction: 指されたブロックのプロンプトを、文書の多いほうに揃えてください。付けない側に揃えるなら行の頭の「$ 」を消し、付ける側なら足します。コマンドそのものは変えません。
109
+ pairs:
110
+ - before: "$ npx chaffjs README.md"
111
+ after: "npx chaffjs README.md"
112
+ - before: "npm test"
113
+ after: "$ npm test"
114
+ keep:
115
+ - コマンドと引数
116
+ avoid:
117
+ - 出力の行にプロンプトを付ける
118
+ en:
119
+ direction: Bring the block's prompts in line with the document's majority. Toward no prompt, remove the "$ " at the start of each line; toward a prompt, add it. Leave the commands themselves unchanged.
120
+ pairs:
121
+ - before: "$ npx chaffjs README.md"
122
+ after: "npx chaffjs README.md"
123
+ - before: "npm test"
124
+ after: "$ npm test"
125
+ keep:
126
+ - the commands and their arguments
127
+ avoid:
128
+ - putting a prompt before an output line
@@ -1,6 +1,6 @@
1
1
  id: space-before-punctuation
2
2
  layer: L1
3
- status: experimental
3
+ status: stable
4
4
  how_to_find: space-before-punctuation
5
5
  languages: [en]
6
6
  severity: warning
@@ -1,6 +1,6 @@
1
1
  id: spelling-consistency
2
2
  layer: L3
3
- status: experimental
3
+ status: stable
4
4
  how_to_find: spelling-variety
5
5
  word_list: spelling-variant
6
6
  extra_word_lists: [spelling-ize]
@@ -27,6 +27,8 @@ how_to_fix:
27
27
  levels: { strict: 49, normal: 34, relaxed: 20 }
28
28
 
29
29
  use_for: [business, technical, blog, legal, docs, academic, literature, speech]
30
+ off_for:
31
+ literature: "A narrator may hedge, speak with ら dropped, and spell as the work's time and place did."
30
32
 
31
33
  group: consistency
32
34
  summary:
@@ -0,0 +1,85 @@
1
+ id: step-reference-missing
2
+ layer: L3
3
+ status: stable
4
+ how_to_find: step-reference
5
+ severity: warning
6
+
7
+ name:
8
+ ja: 無い手順を指す参照
9
+ en: A reference to a step that does not exist
10
+
11
+ why:
12
+ ja: 「手順5を参照」と書いたのに手順が4つしか無ければ、読み手は手順5を探して手を止めます。手順を減らしたり並べ替えたりしたあとに、本文の参照だけが古い番号のまま残ると起きます。手順の番号と参照の番号を突き合わせれば、機械で言えます。
13
+ en: When the text says "see step 5" and there are only four steps, the reader stops to look for step 5. It happens when steps are removed or reordered and a reference keeps the old number. Matching the references against the steps' numbers is mechanical.
14
+
15
+ message:
16
+ ja: 「{label}」を指していますが、手順は {last} までです
17
+ en: '"{label}" is referred to, but the steps end at {last}'
18
+
19
+ how_to_fix:
20
+ ja: 指したい手順の番号を確かめて、参照を直してください。手順を消したのなら、参照の文も直します。
21
+ en: Check which step is meant and correct the reference. If the step was removed, rewrite the sentence that refers to it.
22
+
23
+ levels: { normal: warning, relaxed: info }
24
+
25
+ use_for: [business, technical, blog, legal, docs, academic, literature, speech]
26
+
27
+ group: structure
28
+ summary:
29
+ ja: 「手順5を参照」のように、文書の手順の最後の番号を超える手順を指す参照
30
+ en: A reference such as "see step 5" past the last step the document has
31
+ example:
32
+ ja:
33
+ before: |
34
+ 1. アプリを開きます。
35
+ 2. 設定を選びます。
36
+ 3. 保存します。
37
+
38
+ うまくいかないときは、手順4からやり直してください。
39
+ after: |
40
+ 1. アプリを開きます。
41
+ 2. 設定を選びます。
42
+ 3. 保存します。
43
+
44
+ うまくいかないときは、手順2からやり直してください。
45
+ en:
46
+ before: |
47
+ 1. Open the app.
48
+ 2. Choose Settings.
49
+ 3. Save.
50
+
51
+ If it fails, start again from step 4.
52
+ after: |
53
+ 1. Open the app.
54
+ 2. Choose Settings.
55
+ 3. Save.
56
+
57
+ If it fails, start again from step 2.
58
+
59
+ not_flagged:
60
+ ja: 手順は、手順の語(手順、ステップ、Step)と番号で始まる見出しと、番号付きの箇条書きの項目です。手順が一つも無い文書の参照は、ほかの文書の手順かもしれないので言いません。番号付きの箇条書きがいくつかあれば、いちばん大きい番号を超える参照だけを言います。コードの中は読みません。
61
+ en: Steps are headings that start with a step word and a number (Step 3) and the items of numbered lists. In a document with no steps at all, a reference may be to another document's steps and is not reported. With several numbered lists, only a reference past the largest number is reported. Code is not read.
62
+
63
+ rewrite:
64
+ ja:
65
+ direction: 指したい手順を確かめ、参照の番号を文書の手順の番号に合わせてください。手順を消したのなら、参照する文を直すか消します。
66
+ pairs:
67
+ - before: うまくいかないときは、手順4からやり直してください。(手順は3まで)
68
+ after: うまくいかないときは、手順2からやり直してください。
69
+ - before: 詳しくはステップ6を参照してください。(ステップは5まで)
70
+ after: 詳しくはステップ5を参照してください。
71
+ keep:
72
+ - 手順の中身と順番
73
+ avoid:
74
+ - どの手順を指すか確かめずに、最後の番号に直す
75
+ en:
76
+ direction: Find out which step is meant and correct the reference's number. If the step was removed, rewrite or remove the sentence that refers to it.
77
+ pairs:
78
+ - before: If it fails, start again from step 4. (three steps)
79
+ after: If it fails, start again from step 2.
80
+ - before: See Step 6 for the details. (five steps)
81
+ after: See Step 5 for the details.
82
+ keep:
83
+ - the steps and their order
84
+ avoid:
85
+ - changing the reference to the last step without checking which was meant
@@ -0,0 +1,76 @@
1
+ id: step-statement-mix
2
+ layer: L3
3
+ status: stable
4
+ how_to_find: step-statement
5
+ languages: [en]
6
+ requires: [pos]
7
+ severity: info
8
+
9
+ name:
10
+ ja: 手順の中に、指示でなく説明の文の手順がある
11
+ en: A step written as a statement among instructions
12
+
13
+ why:
14
+ ja: 番号を振った手順は、読み手がそのとおりに手を動かす指示です。「Open the app.」「Run the installer.」の中に「The installer asks for a password.」のような説明の文が混ざると、読み手はそれも自分のすることかと迷います。英語の番号付きの箇条書きで、主語と動詞で始まる項目(The installer asks、You click)が、動詞で始まる指示の項目より少ないとき、少ないほうを指します。日本語の手順の文末(〜します/〜してください と それ以外)は no-mixed-desumasu と list-item-form-mix が見るので、この rule は英語だけです。
15
+ en: 'A numbered procedure is a list of things for the reader to do. When "The installer asks for a password." sits among "Open the app." and "Run the installer.", the reader wonders whether that is a step to take too. In an English numbered list, chaff points at the few items that open with a subject and a verb (The installer asks, You click) among items that open with the verb. Japanese step endings (〜します / 〜してください against the rest) are checked by no-mixed-desumasu and list-item-form-mix, so this rule is for English only.'
16
+
17
+ message:
18
+ ja: この手順は、ほかの {count} 個の指示と違い、主語で始まる説明の文です
19
+ en: This step is a statement that opens with its subject, unlike the other {count} instructions
20
+
21
+ how_to_fix:
22
+ ja: 読み手のすることを命令の形で書いてください。結果の説明なら、前の手順の後ろの文にするか、手順の外に出します。
23
+ en: Write what the reader does, as an instruction. If it describes a result, make it a second sentence of the step before, or move it out of the list.
24
+
25
+ levels: { strict: 3, normal: 2, relaxed: 1 }
26
+
27
+ use_for: [technical, docs, blog, legal, academic, literature, speech]
28
+ off_for:
29
+ legal: "Code blocks, shell prompts, command headings and numbered steps belong to technical writing."
30
+ academic: "Code blocks, shell prompts, command headings and numbered steps belong to technical writing."
31
+ literature: "Code blocks, shell prompts, command headings and numbered steps belong to technical writing."
32
+ speech: "Code blocks, shell prompts, command headings and numbered steps belong to technical writing."
33
+
34
+ group: consistency
35
+ summary:
36
+ ja: 英語の番号付きの手順で、命令の形の項目の中に、主語で始まる説明の項目が混ざっている所
37
+ en: A numbered procedure that mixes a statement (The installer asks) into instructions (Run the installer)
38
+ example:
39
+ en:
40
+ config: { genre: docs/manual }
41
+ before: |
42
+ # Install
43
+
44
+ 1. Open the terminal on your computer.
45
+ 2. Run the installer from the downloads folder.
46
+ 3. The installer asks for your password.
47
+ 4. Restart the computer when it finishes.
48
+ after: |
49
+ # Install
50
+
51
+ 1. Open the terminal on your computer.
52
+ 2. Run the installer from the downloads folder.
53
+ 3. Type your password when the installer asks for it.
54
+ 4. Restart the computer when it finishes.
55
+
56
+ not_flagged:
57
+ ja: "番号の無い箇条書き、三つに満たない手順、指示が半分に満たない番号付きの箇条書き(用語と説明の一覧など)、短い項目(「Setup」)、動詞の前に札や前置きのある項目(「Guests: …」「On the left bar, select …」)、主語で始まる項目が {limit} 個を超えるか指示より多い手順は見ません。項目の最初の行の最初の文だけを見ます。"
58
+ en: 'Bulleted lists, procedures of fewer than three steps, numbered lists where instructions are half or fewer (a list of terms, say), short items ("Setup"), items with a label or an opening phrase before the verb ("Guests: …", "On the left bar, select …"), and procedures where statements are more than {limit} or not fewer than the instructions are not reported. Only the first sentence on each item''s own line is read.'
59
+ level_meaning:
60
+ ja: 説明の項目が {limit} 個以下で、指示の項目より少ないとき指摘
61
+ en: reported when {limit} or fewer steps are statements and they are fewer than the instructions
62
+ rewrite:
63
+ depth: light
64
+ en:
65
+ direction: Turn the statement into an instruction for the reader, with the verb first, or fold it into the step before as a second sentence. Keep what the step says happens; do not add steps.
66
+ pairs:
67
+ - before: 3. The installer asks for your password.
68
+ after: 3. Type your password when the installer asks for it.
69
+ - before: 2. You click Save to keep the file.
70
+ after: 2. Click Save to keep the file.
71
+ keep:
72
+ - the order of the steps
73
+ - the names of buttons, files and commands
74
+ avoid:
75
+ - adding a step the text does not have
76
+ - merging two steps the reader does separately
@@ -1,6 +1,6 @@
1
1
  id: stock-transition
2
2
  layer: L2
3
- status: experimental
3
+ status: stable
4
4
  how_to_find: stock-transition
5
5
  word_list: stock-transition
6
6
  uses: [pos]
@@ -28,6 +28,12 @@ levels:
28
28
  en: { strict: 4, normal: 6, relaxed: 10 }
29
29
 
30
30
  use_for: [technical/readme, blog, business, legal, docs, academic, literature, speech]
31
+ off_for:
32
+ legal: "Legal drafting repeats its terms and its sentence heads on purpose, puts the actor in the passive (shall be deemed), and joins long noun compounds (個人情報取扱事業者). This rule would only flag the form."
33
+ docs: "A help page repeats its heading in its first line (To upload a file, ...) and states no claims to back up."
34
+ academic: "Science writes in the passive, hedges its claims on purpose (may, suggest) and cites numbers as its evidence."
35
+ literature: "Length, rhythm, repetition and register are the author's choices in literature, and dialogue mixes styles. Only what one work can hold itself to runs: consistent spacing and commas, and numbering without gaps."
36
+ speech: "A speech opens with greetings and closes with thanks: that is its form, not padding."
31
37
 
32
38
  group: ai-tells
33
39
  summary:
@@ -54,6 +60,7 @@ level_meaning:
54
60
  ja: 決まった接ぎで始まる文が 1000 字あたり {limit} 個まで
55
61
  en: up to {limit} sentences per 1000 words opening with a stock transition
56
62
  rewrite:
63
+ depth: light
57
64
  ja:
58
65
  direction: 文頭の接ぎの語を消して読み返してください。繋がりが分からなくなる所だけ、前の文との関係(理由、例外、順番)を言葉で書きます。
59
66
  pairs:
@@ -1,11 +1,11 @@
1
1
  id: stray-space
2
2
  layer: L3
3
- status: experimental
3
+ status: stable
4
4
  how_to_find: stray-space
5
5
  # どの境目が一続きの語句の中かは、語の品詞で決める。品詞が無ければ動かない。
6
6
  requires: [pos]
7
7
  languages: [ja]
8
- severity: warning
8
+ severity: info
9
9
 
10
10
  name:
11
11
  ja: 語句の途中に空白がある
@@ -1,6 +1,6 @@
1
1
  id: summary-fact-mismatch
2
2
  layer: L3
3
- status: experimental
3
+ status: stable
4
4
  how_to_find: summary-fact-mismatch
5
5
  requires: [quantities]
6
6
  uses: [pos]
@@ -25,6 +25,8 @@ how_to_fix:
25
25
  levels: { normal: warning, relaxed: info }
26
26
 
27
27
  use_for: [business, technical, blog, legal, docs, academic, literature, speech]
28
+ off_for:
29
+ literature: "Length, rhythm, repetition and register are the author's choices in literature, and dialogue mixes styles. Only what one work can hold itself to runs: consistent spacing and commas, and numbering without gaps."
28
30
 
29
31
  group: facts
30
32
  summary:
@@ -70,6 +72,7 @@ not_flagged:
70
72
  ja: 本文に同じ項目の値が二通り以上あるとき(回ごと、対象ごとの値)は、要約がどれと合うべきか決まらないので言いません。単位の違う値、条件の付いた値(「3,000円から」)も比べません。
71
73
  en: When the body gives the item more than one value (per session, per group), which one the summary should match is not settled, so nothing is said. Values in different units and values with a condition ("from $300") are not compared.
72
74
  rewrite:
75
+ depth: light
73
76
  ja:
74
77
  direction: 要約と本文のどちらの値が正しいかを書き手に確かめ、もう一方を直してください。要約の値を本文から写すときは、単位と条件も一緒に写します。
75
78
  pairs:
@@ -1,6 +1,6 @@
1
1
  id: table-header-variant
2
2
  layer: L2
3
- status: experimental
3
+ status: stable
4
4
  how_to_find: table-header-variant
5
5
  requires: [markdown]
6
6
  severity: info
@@ -76,6 +76,7 @@ level_meaning:
76
76
  ja: 少ないほうの書き方が、その見出しの {limit}% 以下のとき指摘
77
77
  en: reported when the less common spelling is {limit}% of the header's uses or less
78
78
  rewrite:
79
+ depth: light
79
80
  ja:
80
81
  direction: 同じ欄の見出しを、文書の中で多いほうの書き方にそろえてください。表の中身と並びは変えません。
81
82
  pairs:
@@ -0,0 +1,90 @@
1
+ id: table-row-overflow
2
+ layer: L1
3
+ status: stable
4
+ how_to_find: table-row-overflow
5
+ requires: [markdown]
6
+ severity: warning
7
+
8
+ name:
9
+ ja: 表の行のセルが見出しの行より多い
10
+ en: Table row with more cells than the header
11
+
12
+ why:
13
+ ja: Markdown の表(GFM)は、見出しの行にある列の数だけセルを表示し、それより多いセルは黙って捨てます。値の中に「|」を書いた、列を足したのに見出しを直していない、といったときに起き、書いたはずの値が読み手には見えません。
14
+ en: A Markdown table (GFM) shows only as many cells as its header row has, and silently drops the rest. It happens when a value holds a "|", or when a column was added to the rows but not to the header, and the reader never sees the value that was written.
15
+
16
+ message:
17
+ ja: この行はセルが {cells} 個あり、見出しの行の {columns} 列を超えた分は表示されません
18
+ en: "This row has {cells} cells; past the header's {columns} columns they are not shown"
19
+
20
+ how_to_fix:
21
+ ja: 見出しの行に列を足すか、行のセルを減らしてください。値の中の「|」は「\|」と書きます。
22
+ en: Add the column to the header row, or remove the extra cell. Write a "|" inside a value as "\|".
23
+
24
+ placeholders:
25
+ cells:
26
+ ja: 〇
27
+ en: N
28
+ columns:
29
+ ja: 〇
30
+ en: N
31
+
32
+ levels: { strict: error, normal: warning, relaxed: info }
33
+
34
+ use_for: [business, technical, blog, legal, docs, academic, literature, speech]
35
+
36
+ group: structure
37
+ summary:
38
+ ja: 見出しの行より多いセルを持つ表の行(多い分は表示されない)
39
+ en: A table row with more cells than the header row (the extra ones are not shown)
40
+ example:
41
+ ja:
42
+ before: |
43
+ | 項目 | 金額 |
44
+ | --- | --- |
45
+ | 会場 | 5万円 |
46
+ | 飲食 | 3万円 | 予備費込み |
47
+ after: |
48
+ | 項目 | 金額 | 備考 |
49
+ | --- | --- | --- |
50
+ | 会場 | 5万円 | |
51
+ | 飲食 | 3万円 | 予備費込み |
52
+ en:
53
+ before: |
54
+ | Item | Cost |
55
+ | --- | --- |
56
+ | Venue | $500 |
57
+ | Food | $300 | includes reserve |
58
+ after: |
59
+ | Item | Cost | Note |
60
+ | --- | --- | --- |
61
+ | Venue | $500 | |
62
+ | Food | $300 | includes reserve |
63
+
64
+ not_flagged:
65
+ ja: 見出しの行よりセルが少ない行(空のセルとして表示されます)、「\|」と書いた値、コードと引用の中の表は指しません。
66
+ en: A row with fewer cells than the header (shown as empty cells), a value written with "\|", and tables in code or quotations are not reported.
67
+ rewrite:
68
+ depth: light
69
+ ja:
70
+ direction: 見出しの行と行のセルの数を揃えてください。多いセルが値なら見出しに列を足し、値の中の「|」なら「\|」にします。値は消しません。
71
+ pairs:
72
+ - before: 「| 飲食 | 3万円 | 予備費込み |」(見出しは 2 列)
73
+ after: 見出しに「備考」の列を足し、「| 飲食 | 3万円 | 予備費込み |」
74
+ - before: 「| 区切り | a | b |」(見出しは 2 列、値が「a | b」)
75
+ after: 「| 区切り | a \| b |」
76
+ keep:
77
+ - 行に書いた値
78
+ avoid:
79
+ - はみ出したセルの値を消す
80
+ en:
81
+ direction: Make the row and the header hold the same number of cells. If the extra cell is a value, add the column to the header; if it is a "|" inside a value, write it as "\|". Do not drop the value.
82
+ pairs:
83
+ - before: '"| Food | $300 | includes reserve |" (the header has 2 columns)'
84
+ after: 'a "Note" column added to the header, and "| Food | $300 | includes reserve |"'
85
+ - before: '"| Separator | a | b |" (the header has 2 columns; the value is "a | b")'
86
+ after: '"| Separator | a \| b |"'
87
+ keep:
88
+ - the values written in the row
89
+ avoid:
90
+ - deleting the value that spilled over
@@ -25,6 +25,11 @@ how_to_fix:
25
25
  levels: { strict: 2, normal: 4, relaxed: 8 }
26
26
 
27
27
  use_for: [blog, business, technical, legal, docs, academic, literature, speech]
28
+ off_for:
29
+ legal: "Legal drafting repeats its terms and its sentence heads on purpose, puts the actor in the passive (shall be deemed), and joins long noun compounds (個人情報取扱事業者). This rule would only flag the form."
30
+ literature: "Length, rhythm, repetition and register are the author's choices in literature, and dialogue mixes styles. Only what one work can hold itself to runs: consistent spacing and commas, and numbering without gaps."
31
+ docs/glossary: "A reader looks up one entry and reads only that. A definition is a noun phrase (風の吹いてくる方向。), and sibling entries share one wording on purpose (Portion of labor productivity change attributed to …), which no reader sees twice."
32
+ speech/transcript: "A transcript records what was said: its sentences, repeats and register are the speaker's, not the writer's to fix."
28
33
 
29
34
  group: readability
30
35
  summary:
@@ -45,6 +50,7 @@ level_meaning:
45
50
  ja: 本文の体言止め {limit} 文まで
46
51
  en: up to {limit} noun-ending sentences in the body
47
52
  rewrite:
53
+ depth: light
48
54
  ja:
49
55
  direction: 本文で名詞で止めた文に、文書の文体に合わせた述語(です・ます、または、だ・である)を足してください。見出し、箇条書き、表はそのままにします。
50
56
  pairs:
@@ -0,0 +1,58 @@
1
+ id: tari-unpaired
2
+ layer: L3
3
+ status: stable
4
+ how_to_find: unpaired-parallel
5
+ word_list: paired-parallel
6
+ requires: [pos]
7
+ languages: [ja]
8
+ severity: info
9
+
10
+ name:
11
+ ja: 対にならない「〜たり」
12
+ en: A single 〜たり with no partner
13
+
14
+ why:
15
+ ja: 「〜たり」は「〜たり〜たりする」と対で並べる言い方です。「本を読んだり、映画を見ます」のように一つで止めて次の述語へ続けると、並べたはずのもう一つが抜け、何と何を並べたのかが読み手に分かりません。一つだけで例を挙げる「遅れたりする」「遅れたりもする」は正しいので指しません。
16
+ en: In Japanese, 〜たり lists actions in pairs (〜たり〜たりする). Used once and followed by another clause ("本を読んだり、映画を見ます"), the second half of the pair is missing. A single 〜たり closed by する (遅れたりする), which gives one example, is correct and not reported.
17
+
18
+ message:
19
+ ja: 「{word}」が一つだけで、対になる「〜たり」がありません
20
+ en: '"{word}" is used once, with no second 〜たり to pair with'
21
+
22
+ how_to_fix:
23
+ ja: 後ろの述語にも「〜たり」を付けて「する」で閉じてください(読んだり、映画を見ます → 読んだり、映画を見たりします)。
24
+ en: Add 〜たり to the second verb as well and close with する.
25
+
26
+ levels: { strict: warning, normal: info, relaxed: info }
27
+
28
+ use_for: [blog, business, technical, legal, docs, academic, literature, speech]
29
+ off_for:
30
+ literature: "Spoken 全然大丈夫, なので and より in a character's voice; classical verse has a たり that does not list."
31
+
32
+ group: wording
33
+ summary:
34
+ ja: 「本を読んだり、映画を見ます」のように、「〜たり」が一つで止まって対になっていない所
35
+ en: A Japanese 〜たり used once and followed by another clause, so its pair is missing
36
+ example:
37
+ ja:
38
+ before: |
39
+ 休日は本を読んだり、映画を見ます。
40
+ after: |
41
+ 休日は本を読んだり、映画を見たりします。
42
+
43
+ not_flagged:
44
+ ja: 一文に「〜たり」が二つ以上ある文と、一つでも「する」「もする」で閉じた文(遅れたりする)は指しません。「一日たりとも」の「たり」は並べる「たり」ではないので見ません。鉤括弧で引いた中は見ません。
45
+ en: Sentences with two or more 〜たり, and a single 〜たり closed by する (遅れたりする), are not reported. Nor is the たり of 一日たりとも, which does not list, nor anything quoted in 「」.
46
+ rewrite:
47
+ depth: light
48
+ ja:
49
+ direction: 抜けたもう一つの動作にも「〜たり」を付け、最後を「する」で閉じてください。並べるつもりが無ければ「〜たり」を外して「〜し、」でつなぎます。
50
+ pairs:
51
+ - before: 休日は本を読んだり、映画を見ます。
52
+ after: 休日は本を読んだり、映画を見たりします。
53
+ - before: 会議では資料を配ったり、意見を聞きました。
54
+ after: 会議では資料を配り、意見を聞きました。
55
+ keep:
56
+ - 並べた動作と、その順
57
+ avoid:
58
+ - 並べる動作を本文に無いもので足す
@@ -1,6 +1,6 @@
1
1
  id: teki-overuse
2
2
  layer: L3
3
- status: experimental
3
+ status: stable
4
4
  how_to_find: sentence-word-count
5
5
  word_list: teki-suffix
6
6
  requires: [pos]
@@ -45,6 +45,7 @@ level_meaning:
45
45
  ja: 一文の「〜的」{limit} 個まで
46
46
  en: up to {limit} 〜的 words in a sentence
47
47
  rewrite:
48
+ depth: light
48
49
  ja:
49
50
  direction: 「〜的」を、本文にある具体的な事柄(数、期間、対象、やり方)に置き換えてください。本文に無ければ作らず、「〜的」を一つ残すか、書き手に聞きます。
50
51
  pairs:
@@ -1,6 +1,6 @@
1
1
  id: title-case-consistency
2
2
  layer: L3
3
- status: experimental
3
+ status: stable
4
4
  how_to_find: title-case-mix
5
5
  languages: [en]
6
6
  severity: info
@@ -1,6 +1,6 @@
1
1
  id: title-length
2
2
  layer: L1
3
- status: experimental
3
+ status: stable
4
4
  how_to_find: title-length
5
5
  requires: [markdown]
6
6
  severity: info
@@ -50,6 +50,11 @@ by_genre:
50
50
  en: { strict: 14, normal: 18, relaxed: 22 }
51
51
 
52
52
  use_for: [blog, business, technical, docs, academic, legal, literature, speech]
53
+ off_for:
54
+ legal: "A statute or contract opens with its first article, and its titles are formal names."
55
+ literature: "A story or poem chooses its own opening and its own title."
56
+ speech: "An address or a transcript is titled by occasion (第221回国会における…演説) and opens as spoken."
57
+ docs/faq: "A question is the heading: its length is the reader's question, not a name to shorten."
53
58
 
54
59
  group: readability
55
60
  summary:
@@ -80,6 +85,7 @@ level_meaning:
80
85
  ja: 題や見出しが {limit} 文字を超えたら指摘
81
86
  en: reported when a title or heading runs past {limit} words
82
87
  rewrite:
88
+ depth: light
83
89
  ja:
84
90
  direction: 見出しを、その節が何かを言う名前だけに縮めてください。理由・条件・対象・日付は、見出しのすぐ下の最初の文に移します。
85
91
  pairs: