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
@@ -21,6 +21,64 @@ how_to_fix:
21
21
  ja: 定義を一か所にまとめ、もう一方は「第2条に定める{term}」のように参照にしてください。意図して意味を変えているなら、別の語にします。
22
22
  en: Keep one definition and refer to it from the other place. If the meaning changes on purpose, use a different term.
23
23
 
24
- levels: { strict: 1, normal: 1, relaxed: 1 }
24
+ # chaff explain と規則の一覧には指摘が無いので、{term} をこう読ませる。
25
+ placeholders:
26
+ term:
27
+ ja: 〇〇
28
+ en: the term
29
+
30
+ levels: { strict: error, normal: warning, relaxed: info }
25
31
 
26
32
  use_for: [business, technical, blog, legal, docs, academic, literature, speech]
33
+
34
+ group: structure
35
+ summary:
36
+ ja: 同じ語を、文書の二か所で定義している所
37
+ en: The same term defined in two places in one document
38
+ example:
39
+ ja:
40
+ before: |
41
+ # 利用規約
42
+
43
+ ## 第1条(定義)
44
+
45
+ 「本サービス」とは、当社が提供する予約の仕組みをいう。
46
+
47
+ ## 第2条(利用)
48
+
49
+ 「本サービス」とは、当社が運営する予約のサイトをいう。利用者は、本サービスを無料で使える。
50
+ after: |
51
+ # 利用規約
52
+
53
+ ## 第1条(定義)
54
+
55
+ 「本サービス」とは、当社が運営する予約のサイトをいう。
56
+
57
+ ## 第2条(利用)
58
+
59
+ 利用者は、本サービスを無料で使える。
60
+ en:
61
+ before: |
62
+ # Terms of use
63
+
64
+ ## 1. Definitions
65
+
66
+ "Service" means the booking system we provide.
67
+
68
+ ## 2. Use
69
+
70
+ "Service" means the booking website we run. Users may use the Service free of charge.
71
+ after: |
72
+ # Terms of use
73
+
74
+ ## 1. Definitions
75
+
76
+ "Service" means the booking website we run.
77
+
78
+ ## 2. Use
79
+
80
+ Users may use the Service free of charge.
81
+
82
+ not_flagged:
83
+ ja: 二つの定義が食い違っているかは決めません。二つ目を指すだけです。語を名前にした見出しは定義に数えません。
84
+ en: Whether the two definitions conflict is not decided; only the second is pointed at. A heading that names the term is not a definition.
@@ -24,3 +24,28 @@ how_to_fix:
24
24
  levels: { strict: 3, normal: 8, relaxed: 20 }
25
25
 
26
26
  use_for: [blog, business, technical, legal, docs, academic, literature, speech]
27
+
28
+ group: readability
29
+ summary:
30
+ ja: 絵文字が多すぎて、飾りのほうが目立つ所
31
+ en: So many emoji that the decoration drowns the text
32
+ example:
33
+ ja:
34
+ pad: true
35
+ before: |
36
+ 新機能が出ました🎉🎉 すぐに試せます🚀🔥 感想をお待ちしています🙏✨💬
37
+ after: |
38
+ 新機能が出ました🎉 すぐに試せます。感想をお待ちしています。
39
+ en:
40
+ pad: true
41
+ before: |
42
+ The new feature is live 🎉 Try it today 🚀 We would love your feedback 🙏✨
43
+ after: |
44
+ The new feature is live 🎉 Try it today, and tell us what you think.
45
+
46
+ not_flagged:
47
+ ja: 短い文書(日本語 500 字、英語 200 語より短いもの)は測りません。
48
+ en: Documents under 200 words are not measured.
49
+ level_meaning:
50
+ ja: 1000 字あたり {limit} 個まで
51
+ en: up to {limit} per 1000 words
@@ -3,6 +3,7 @@ layer: L4
3
3
  status: stable
4
4
  how_to_find: empty-conclusion
5
5
  severity: warning
6
+ uses: [pos]
6
7
 
7
8
  name:
8
9
  ja: 結びに中身がない
@@ -36,3 +37,31 @@ levels:
36
37
 
37
38
  # メール・議事録・プレスリリースの結びは挨拶か連絡先で、判断を書く所ではない。
38
39
  use_for: [blog, business/report, business/proposal]
40
+
41
+ group: wording
42
+ summary:
43
+ ja: 本文をなぞるだけで、読み手に何も残さない結び(AI に読ませる検査)
44
+ en: A conclusion that only restates the body and leaves the reader nothing (checked by an AI)
45
+ example:
46
+ ja:
47
+ before: |
48
+ ## まとめ
49
+
50
+ この記事では、ビルドを速くする方法を紹介しました。ビルドを速くすることは大切です。
51
+ after: |
52
+ ## まとめ
53
+
54
+ 設定を一行変えるだけで、ビルドが二倍速くなりました。次は、テストを並列で動かします。
55
+ en:
56
+ before: |
57
+ ## Conclusion
58
+
59
+ This article described how to make the build faster. A fast build is important.
60
+ after: |
61
+ ## Conclusion
62
+
63
+ One line of settings made the build twice as fast. Next, we will run the tests in parallel.
64
+
65
+ not_flagged:
66
+ ja: 機械では決めません。chaff test で、最後の節だけを AI が読みます。
67
+ en: No machine decides this. chaff test has an AI read the last section only.
@@ -28,3 +28,22 @@ levels:
28
28
  relaxed: 3
29
29
 
30
30
  use_for: [blog, business, technical, legal, docs, academic, literature, speech]
31
+
32
+ group: wording
33
+ summary:
34
+ ja: 「非常に重要」「言うまでもなく」のように、何が大事かを言わずに強めるだけの言い方
35
+ en: Phrases such as "extremely important" that add weight without saying what matters
36
+ example:
37
+ ja:
38
+ before: 期限を守ることは非常に重要です。
39
+ after: 期限に遅れると、先方の検収が翌月に回り、入金が一か月遅れます。
40
+ en:
41
+ before: It is important to note that the deadline is Friday.
42
+ after: The deadline is Friday; a late delivery pushes payment into next month.
43
+
44
+ not_flagged:
45
+ ja: 一覧にある言い回しだけを見ます。「重要です」と書いたあとに理由が続くかどうかは読みません。
46
+ en: Only the phrases on chaff's list are checked; whether a reason follows is not read.
47
+ level_meaning:
48
+ ja: 当てはまる言い回しが {limit} 箇所あれば指摘
49
+ en: reported once there are {limit}
@@ -35,3 +35,22 @@ how_to_fix:
35
35
  levels: { strict: 3, normal: 6, relaxed: 12 }
36
36
 
37
37
  use_for: [business, blog, technical, legal, docs, academic, literature, speech]
38
+
39
+ group: wording
40
+ summary:
41
+ ja: 「〜の可能性があるかもしれません」のように、逃げの表現を重ねて、何が言いたいのか分からない所
42
+ en: Hedges piled up ("it may perhaps be possible") until nobody is saying anything
43
+ example:
44
+ ja:
45
+ before: 納期は遅れる可能性があるかもしれません。
46
+ after: 部品の入荷が来週にずれたため、納期は三日遅れます。
47
+ en:
48
+ before: It may be that the launch could perhaps slip.
49
+ after: The launch will slip by three days, because the parts arrive next week.
50
+
51
+ not_flagged:
52
+ ja: 逃げの表現が一つだけなら慎重さなので指しません。引用の中の逃げは、書き手ではなく話し手のものなので数えません。
53
+ en: A single hedge is caution and is not reported. A hedge inside a quotation is the speaker's, not the writer's, and is not counted.
54
+ level_meaning:
55
+ ja: 1000 語あたり {limit} 個まで(一文に重ねた逃げは、文書の長さによらず指摘)
56
+ en: up to {limit} per 1000 words (hedges stacked in one sentence are reported whatever the length)
@@ -25,3 +25,22 @@ 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: readability
30
+ summary:
31
+ ja: 英語で、There is や It is ... that で主語を後ろへ押しやった文が多い所
32
+ en: Many sentences that open with "There is" or "It is ... that", pushing the subject to the back
33
+ example:
34
+ en:
35
+ config: { rules: { expletive-construction: strict } }
36
+ before: |
37
+ There is a meeting on Friday to review the budget. It is the finance team that will lead it.
38
+ after: |
39
+ The team meets on Friday to review the budget. The finance team will lead it.
40
+
41
+ not_flagged:
42
+ ja: 「it is raining」のように that 節を伴わない It is は数えません。
43
+ en: '"It is" without a that-clause ("it is raining") is not counted.'
44
+ level_meaning:
45
+ ja: この形の文 {limit} 回まで
46
+ en: up to {limit} such sentences
@@ -2,6 +2,7 @@ id: heading-echo
2
2
  layer: L1
3
3
  status: stable
4
4
  how_to_find: heading-echo
5
+ uses: [pos]
5
6
  severity: warning
6
7
 
7
8
  name:
@@ -28,3 +29,34 @@ levels:
28
29
  relaxed: 75
29
30
 
30
31
  use_for: [blog, business, technical, legal, docs, academic, literature, speech]
32
+
33
+ group: readability
34
+ summary:
35
+ ja: 見出しのすぐ後の文が、見出しをほぼそのまま繰り返している所
36
+ en: A first sentence that only repeats the heading above it
37
+ example:
38
+ ja:
39
+ before: |
40
+ ## 経費の精算方法
41
+
42
+ 経費の精算方法について説明します。領収書を添えて、月末までに申請してください。
43
+ after: |
44
+ ## 経費の精算方法
45
+
46
+ 領収書を添えて、月末までに申請してください。
47
+ en:
48
+ before: |
49
+ ## How to claim expenses
50
+
51
+ This section explains how to claim expenses. Attach the receipt and submit it by the end of the month.
52
+ after: |
53
+ ## How to claim expenses
54
+
55
+ Attach the receipt and submit it by the end of the month.
56
+
57
+ not_flagged:
58
+ ja: 短い見出し(言葉が少なく、重なりを測れないもの)は見ません。見出しの頭の番号の札(例 3:、Step 3:、1.、第2章)は重なりに数えません。
59
+ en: Headings too short to measure an overlap are not checked. A number label at the head of a heading (Step 3:, Example 4:, 1., Chapter 2:) is not counted in the overlap.
60
+ level_meaning:
61
+ ja: 見出しと直後の文の重なりが {limit}% 以上なら指摘
62
+ en: reported when the first sentence overlaps the heading by {limit}% or more
@@ -0,0 +1,78 @@
1
+ id: heading-level-skip
2
+ layer: L1
3
+ status: experimental
4
+ how_to_find: heading-level-skip
5
+ requires: [markdown]
6
+ severity: warning
7
+
8
+ name:
9
+ ja: 見出しの深さが飛んでいる
10
+ en: Heading level skipped
11
+
12
+ why:
13
+ ja: 「##」の次に「####」が来ると、間の一段が抜けます。目次や画面読み上げは見出しの深さで文書の形を伝えるので、抜けた段は「どこかの節が消えた」ように読めます。見た目の大きさのために深さを選ぶと起きます。最初の見出しは何段から始めてもよく、一つ前の見出しより二段以上深いときだけ指摘します(markdownlint の MD001 と同じ数え方)。
14
+ en: A "####" right after a "##" leaves out a level. A table of contents and a screen reader show a document's shape by heading level, so the missing level reads as a section that went missing. It happens when a level is chosen for its size on screen. The first heading may start at any level; only a heading two or more levels deeper than the one before it is reported (as markdownlint's MD001 counts).
15
+
16
+ message:
17
+ ja: 見出し「{heading}」の深さが {from} から {to} へ飛んでいます({expected} のはず)
18
+ en: 'Heading "{heading}" goes from level {from} to level {to} (expected {expected})'
19
+
20
+ how_to_fix:
21
+ ja: 一つ前の見出しより一段だけ深くしてください。文字の大きさを変えたいだけなら、深さではなく表示の設定で変えてください。
22
+ en: Make the heading one level deeper than the one before it. If only the size on screen was the point, change the style instead of the level.
23
+
24
+ levels: { strict: error, normal: warning, relaxed: info }
25
+
26
+ use_for: [business, technical, blog, legal, docs, academic, literature, speech]
27
+
28
+ group: structure
29
+ summary:
30
+ ja: 「##」の次に「####」が来るように、見出しの深さが一段以上飛んでいる所
31
+ en: A heading two or more levels deeper than the one before it, as "####" right after "##"
32
+ example:
33
+ ja:
34
+ before: |
35
+ # 手順書
36
+
37
+ ## 準備
38
+
39
+ 道具をそろえます。
40
+
41
+ #### 注意
42
+
43
+ 手袋をはめます。
44
+ after: |
45
+ # 手順書
46
+
47
+ ## 準備
48
+
49
+ 道具をそろえます。
50
+
51
+ ### 注意
52
+
53
+ 手袋をはめます。
54
+ en:
55
+ before: |
56
+ # Setup guide
57
+
58
+ ## Before you start
59
+
60
+ Gather the tools.
61
+
62
+ #### Safety
63
+
64
+ Wear gloves.
65
+ after: |
66
+ # Setup guide
67
+
68
+ ## Before you start
69
+
70
+ Gather the tools.
71
+
72
+ ### Safety
73
+
74
+ Wear gloves.
75
+
76
+ not_flagged:
77
+ ja: 最初の見出しは何段から始めてもかまいません。浅くなる見出し(「####」の次の「##」)も指しません。
78
+ en: The first heading may start at any level, and a heading that goes back up ("##" after "####") is not reported.
@@ -26,3 +26,19 @@ how_to_fix:
26
26
  levels: { strict: 1, normal: 1, relaxed: 3 }
27
27
 
28
28
  use_for: [blog, business, technical, legal, docs, academic, literature, speech]
29
+
30
+ group: readability
31
+ summary:
32
+ ja: 「殆ど」「勿論」のように、ひらがなのほうが読みやすい副詞を漢字で書いた所
33
+ en: A Japanese adverb written in rare kanji where kana is easier to read
34
+ example:
35
+ ja:
36
+ before: 参加者の殆どが、勿論その案に賛成しました。
37
+ after: 参加者のほとんどが、もちろんその案に賛成しました。
38
+
39
+ not_flagged:
40
+ ja: 一覧にある副詞だけを見ます。常用漢字で普通に書く副詞(「必ず」「特に」など)は指しません。
41
+ en: Only the adverbs on chaff's list are checked; adverbs normally written in common kanji are not.
42
+ level_meaning:
43
+ ja: 当てはまる語が {limit} 箇所あれば指摘
44
+ en: reported once there are {limit}
@@ -0,0 +1,54 @@
1
+ id: image-alt-text
2
+ layer: L1
3
+ status: experimental
4
+ how_to_find: image-alt-text
5
+ requires: [markdown]
6
+ severity: warning
7
+
8
+ name:
9
+ ja: 画像に代替テキストが無い
10
+ en: Image without alt text
11
+
12
+ why:
13
+ ja: 画像が読み込めないときと、画面読み上げで読むときは、代替テキストだけが画像の代わりに伝わります。「![](図1.png)」のように空だと、そこに何があったのか読み手には分かりません。HTML の <img> は alt 属性が無いものだけを数え、alt="" は飾りの画像と書き手が明示したものとして数えません(markdownlint の MD045 と同じ)。
14
+ en: When an image does not load, or a screen reader reads the page, the alt text is all that stands in for it. With an empty one ("![](chart.png)") the reader cannot tell what was there. An HTML <img> is reported only when it has no alt attribute; alt="" says the image is decoration and is not counted (as markdownlint's MD045).
15
+
16
+ message:
17
+ ja: 画像「{image}」に代替テキストがありません
18
+ en: 'Image "{image}" has no alt text'
19
+
20
+ how_to_fix:
21
+ ja: 画像が伝えることを一言で書いてください(![4月の売上の推移](図1.png))。飾りの画像なら、HTML で alt="" と書くと読み上げが飛ばします。
22
+ en: Write what the image shows in a few words ("![Sales by month, April](chart.png)"). If it is decoration, write alt="" in HTML so screen readers skip it.
23
+
24
+ levels: { strict: error, normal: warning, relaxed: info }
25
+
26
+ use_for: [business, technical, blog, legal, docs, academic, literature, speech]
27
+
28
+ group: structure
29
+ summary:
30
+ ja: 「![](図.png)」のように、代替テキストの無い画像
31
+ en: An image with no alt text, as in "![](chart.png)"
32
+ example:
33
+ ja:
34
+ before: |
35
+ 四月から六月の売上です。
36
+
37
+ ![](sales.png)
38
+ after: |
39
+ 四月から六月の売上です。
40
+
41
+ ![四月から六月の売上の推移](sales.png)
42
+ en:
43
+ before: |
44
+ Sales from April to June.
45
+
46
+ ![](sales.png)
47
+ after: |
48
+ Sales from April to June.
49
+
50
+ ![Sales from April to June](sales.png)
51
+
52
+ not_flagged:
53
+ ja: HTML で alt="" と書いた画像は、飾りと明示したものとして指しません。引用(>)とコードの中の画像も見ません。
54
+ en: An HTML image with alt="" is marked as decoration and is not reported, nor is an image in a quotation (>) or in code.
@@ -25,3 +25,24 @@ how_to_fix:
25
25
  levels: { strict: 1, normal: 1, relaxed: 3 }
26
26
 
27
27
  use_for: [business, blog, technical, legal, docs, academic, literature, speech]
28
+
29
+ group: team
30
+ summary:
31
+ ja: 「横展開」「握る」のように、社内でしか通じない言葉。chaff.yaml の jargon に書いた語だけを見ます
32
+ en: Words that only work inside your team, from jargon in chaff.yaml
33
+ example:
34
+ ja:
35
+ config: { jargon: [横展開] }
36
+ before: この取り組みを、ほかの部にも横展開します。
37
+ after: この取り組みを、ほかの部でも同じように始めます。
38
+ en:
39
+ config: { jargon: [ping] }
40
+ before: I will ping the vendor about the quote.
41
+ after: I will email the vendor about the quote.
42
+
43
+ not_flagged:
44
+ ja: chaff.yaml の jargon に書いた語だけを見ます。何も書かなければ何も言いません。
45
+ en: Only the words under jargon in chaff.yaml are checked. With nothing listed, it says nothing.
46
+ level_meaning:
47
+ ja: 当てはまる語が {limit} 箇所あれば指摘
48
+ en: reported once there are {limit}
@@ -0,0 +1,98 @@
1
+ id: katakana-long-vowel
2
+ layer: L3
3
+ status: experimental
4
+ how_to_find: katakana-long-vowel
5
+ # 語は形態素解析で取る。複合語の中の「ユーザー」も一語として見る。品詞が無ければ動かない。
6
+ requires: [pos]
7
+ # ending: keep が読む、辞書が「ー」付きで知る語の印。この rule が動くときだけ lang-ja が辞書に聞く。
8
+ token_features: [LongVowelEnding]
9
+ languages: [ja]
10
+ severity: warning
11
+
12
+ name:
13
+ ja: カタカナ語の語末の「ー」がそろっていない
14
+ en: The final ー of katakana words is inconsistent
15
+
16
+ why:
17
+ ja: 「コンピューター」と「コンピュータ」のように、カタカナ語の語末の「ー」は付ける書き方と省く書き方があります。どちらも正しく、困るのは一つの文書の中で混ざることです。読み手は別のものかと迷い、検索でも片方を取りこぼします。設定が無ければ、同じ語が両方で書かれた所だけを指摘し、違う語どうし(サーバーとブラウザ)は比べません。options の ending を drop か keep にすると、決めた書き方に合わない語をすべて指摘します。音は「コ・ン・ピュ・ー・タ・ー」で 6 音と数えます(小さい「ャュョァィゥェォ」は前の字と合わせて 1 音、「ッ」「ン」「ー」は 1 音ずつ)。辞書が固有名詞と知っている語(ディズニー)と、chaff.yaml の names に並べた名前は見ません。
18
+ en: A katakana loanword can be written with or without its final long-vowel mark (コンピューター / コンピュータ). Both are right; what reads badly is mixing them in one document, which makes a reader wonder whether they differ and makes a search miss one. With no setting chaff points only at a word written both ways, and does not compare different words (サーバー and ブラウザ). Setting ending under options to drop or keep points at every word written the other way. Morae are counted as コ・ン・ピュ・ー・タ・ー, six (a small ャュョァィゥェォ joins the kana before it; ッ, ン and ー are one each). Words the dictionary knows as proper nouns (ディズニー) and the names under names in chaff.yaml are left alone.
19
+
20
+ message:
21
+ ja: 「{matched}」は語末の「ー」がほかと違います(「{preferred}」)
22
+ en: 'The final ー of "{matched}" differs from the rest ("{preferred}")'
23
+
24
+ messages:
25
+ same-word:
26
+ ja: 「{matched}」と「{preferred}」が混ざっています(この語は {of} 回のうち {count} 回が「{matched}」)
27
+ en: '"{matched}" and "{preferred}" are both used ({count} of {of} are "{matched}")'
28
+ drop:
29
+ ja: 「{matched}」は語末の「ー」を省いて「{preferred}」と書きます({min_morae} 音以上の語)
30
+ en: 'Write "{preferred}", without the final ー ({min_morae} morae or more)'
31
+ keep:
32
+ ja: 「{matched}」は語末の「ー」を付けて「{preferred}」と書きます
33
+ en: 'Write "{preferred}", with the final ー'
34
+
35
+ how_to_fix:
36
+ ja: 「{preferred}」に直してください。どちらに寄せるかチームで決めているなら、chaff.yaml の options で ending を決めておくと、この文書の多いほうではなく、決めた書き方で見ます。製品名など、そのままにすべき語は options の except か names に並べます。
37
+ en: Change it to "{preferred}". If the team has decided which way, set ending under options in chaff.yaml, and chaff checks against that instead of the document's usual way. List a word that must stay as it is (a product's name) under except in options, or under names.
38
+
39
+ placeholders:
40
+ matched:
41
+ ja: 見つけた語
42
+ en: the word found
43
+ preferred:
44
+ ja: 直した書き方
45
+ en: the other way of writing it
46
+
47
+ # 何語違えば指摘するか。1 は「1 語でも違えば」。
48
+ levels: { strict: 1, normal: 1, relaxed: 3 }
49
+
50
+ options:
51
+ ending:
52
+ kind: choice
53
+ default: consistent
54
+ about:
55
+ ja: 語末の「ー」をどちらに寄せるか
56
+ en: Which way the final ー goes
57
+ choices:
58
+ consistent:
59
+ ja: 決めない。文書の中でそろっているかだけを見る
60
+ en: No side taken; only checks that the document is consistent
61
+ drop:
62
+ ja: min_morae 音以上の語の語末の「ー」を省く(電子情報通信学会、JIS Z 8301:2011 まで)
63
+ en: Drop the final ー on words of min_morae morae or more (IEICE; JIS Z 8301 up to 2011)
64
+ keep:
65
+ ja: 語末の「ー」を付ける(文化庁「外来語の表記」、JIS Z 8301:2019)。「ー」の無い語は、辞書が「ー」付きで知っている語(メモリ)か、文書がほかで「ー」付きで書く語だけを見る
66
+ en: Keep the final ー (the Agency for Cultural Affairs' 外来語の表記; JIS Z 8301:2019). A word without one is checked only when the dictionary knows it with one (メモリ) or the document writes it with one elsewhere
67
+ min_morae:
68
+ kind: count
69
+ default: 3
70
+ about:
71
+ ja: 何音以上の語を見るか。語末の「ー」も 1 音と数える(コンピューターは 6 音、カーは 2 音)
72
+ en: The shortest word checked, in morae, counting the final ー (コンピューター is six, カー two)
73
+ except:
74
+ kind: words
75
+ default: []
76
+ about:
77
+ ja: 見ない語。どちらの書き方で並べても、両方の書き方が外れる
78
+ en: Words left alone; listing either way of writing one exempts both
79
+
80
+ use_for: [business, blog, technical, legal, docs, academic, literature, speech]
81
+
82
+ group: consistency
83
+ summary:
84
+ ja: カタカナ語の語末の「ー」を、同じ語で付けたり省いたりしている所(コンピューターとコンピュータ)。options で省く・付けるを決めることもできます
85
+ en: A katakana word written both with and without its final ー in one document (コンピューター and コンピュータ); options can set which way
86
+ example:
87
+ ja:
88
+ before: |
89
+ 新しいコンピューターを買いました。古いコンピュータは来月捨てます。
90
+ after: |
91
+ 新しいコンピューターを買いました。古いコンピューターは来月捨てます。
92
+
93
+ not_flagged:
94
+ ja: 違う語どうし(サーバーとブラウザ)は比べません。2 音の語(カー)、辞書が固有名詞と知っている語、chaff.yaml の names に並べた名前も見ません。
95
+ en: Different words (サーバー and ブラウザ) are not compared. Two-mora words (カー), words the dictionary knows as proper nouns and the names under names in chaff.yaml are left alone.
96
+ level_meaning:
97
+ ja: 違う書き方の語が {limit} 箇所あれば指摘
98
+ en: reported once {limit} words go the other way
@@ -0,0 +1,53 @@
1
+ id: kutoten-consistency
2
+ layer: L3
3
+ status: experimental
4
+ how_to_find: kutoten-consistency
5
+ languages: [ja]
6
+ severity: warning
7
+
8
+ name:
9
+ ja: 句読点の書き方がそろっていない
10
+ en: Japanese commas and periods are mixed
11
+
12
+ why:
13
+ ja: 読点を「、」と「,」、句点を「。」と「.」のどちらで書くかは、どちらでも読めます(横書きの論文や公用文には「,」があります)。困るのは一つの文書の中で混ざることで、貼り付けた文や別の人が書いた段落が、そこだけ違って見えます。chaff はどちらが正しいかを決めず、読点と句点のそれぞれで、文書の中で少ないほうを指摘します。数の中の「,」「.」(1,000、3.5)、番号の印の点(1.はじめに、2.確認)、一、二文字の英字の印の後ろの点(Q.)、鉤括弧で引いたものの中と、注の番号で始まる行や URL を含む文(文献や出典の書き方に従う)は数えません。
14
+ en: Whether Japanese text uses 、 or , for its commas and 。 or . for its periods is a choice either way (, is common in horizontal academic and official writing). What reads badly is mixing both in one document, which makes a pasted sentence or another writer's paragraph stand out. chaff does not decide which is right; for commas and for periods separately, it points at whichever the document uses less. Marks inside a number (1,000, 3.5), after a list number (1.はじめに, 2.確認), after a one- or two-letter label (Q.), inside a 「」 quotation, and in a sentence that starts with a note number or holds a URL (a citation follows its own style) are not counted.
15
+
16
+ message:
17
+ ja: 「{mark}」と書いています(この文書はふつう「{usual}」。{of} 箇所のうち {count} 箇所が違う)
18
+ en: '"{mark}" here, where the document usually writes "{usual}" ({count} of {of})'
19
+
20
+ messages:
21
+ comma:
22
+ ja: 読点を「{mark}」と書いています(この文書はふつう「{usual}」。{of} 箇所のうち {count} 箇所が違う)
23
+ en: 'The Japanese comma is written "{mark}" here, where the document usually writes "{usual}" ({count} of {of})'
24
+ period:
25
+ ja: 句点を「{mark}」と書いています(この文書はふつう「{usual}」。{of} 箇所のうち {count} 箇所が違う)
26
+ en: 'The Japanese period is written "{mark}" here, where the document usually writes "{usual}" ({count} of {of})'
27
+
28
+ how_to_fix:
29
+ ja: 文書の多いほうの書き方に合わせてください。チームで決めているなら、STYLE.md に書いておくと迷いません。
30
+ en: Match the way the rest of the document does it. If the team has decided, write it in the style guide.
31
+
32
+ # 何箇所違えば指摘するか。1 は「1 箇所でも混ざっていれば」。
33
+ levels: { strict: 1, normal: 1, relaxed: 3 }
34
+
35
+ use_for: [business, technical, blog, legal, docs, academic, literature, speech]
36
+
37
+ group: consistency
38
+ summary:
39
+ ja: 読点の「、」と「,」、句点の「。」と「.」が、一つの文書の中で混ざっている所
40
+ en: Japanese commas written both 、 and ,, or periods written both 。 and ., in one document
41
+ example:
42
+ ja:
43
+ before: |
44
+ 申込書は、窓口で受け付けます。書類は,担当者が確認します。結果は、翌日に知らせます。
45
+ after: |
46
+ 申込書は、窓口で受け付けます。書類は、担当者が確認します。結果は、翌日に知らせます。
47
+
48
+ not_flagged:
49
+ ja: 数の中の「,」「.」(1,000、3.5)、番号の印の点(1.)、「Q.」のような英字の印、「」の中、注の番号で始まる行と URL を含む文は数えません。どちらの書き方が正しいかは決めません。
50
+ en: Marks inside numbers (1,000, 3.5), after a list number (1.), in a letter label (Q.), inside 「」, and in a note or a sentence with a URL are not counted. Neither way is called right.
51
+ level_meaning:
52
+ ja: 少ないほうの書き方が {limit} 箇所あれば指摘
53
+ en: reported once {limit} places go against the document's habit
@@ -7,16 +7,17 @@ severity: warning
7
7
  # 番号・識別子として書かれた数を見分けるのに、数の後ろの語の品詞を使う。無ければ全部数える。
8
8
  uses: [pos]
9
9
  # 番地(千代田区紀尾井町1-3)を、都道府県までの地名の後ろの範囲(東京都2-3 営業日)と分ける。
10
- # 日付・時刻(9月、2026年、10時5分)を、長さ(3ヶ月、3 時間)と分ける。
11
- extra_word_lists: [prefecture-unit, date-time-unit, calendar-unit, calendar-year-unit]
10
+ # 日付・時刻(9月、2026年、令和8年、10時5分)を、長さ(3ヶ月、3 時間)と分ける。
11
+ # 番号と組んで名前を付ける語(問3、第1節)を見分ける。
12
+ extra_word_lists: [prefecture-unit, date-time-unit, calendar-unit, calendar-year-unit, calendar-era, numbered-label]
12
13
 
13
14
  name:
14
15
  ja: 英数字の前後の空白がそろっていない
15
16
  en: Spacing around Latin text is inconsistent
16
17
 
17
18
  why:
18
- ja: 日本語と英字・数字のあいだを空けるか詰めるかは、どちらでも読めます。困るのは一つの文書の中で混ざることで、読み手には違いに意味があるように見えます。chaff はどちらが正しいかを決めず、文書の中で少ないほうを指摘します。英字と、数字の前、数字の後ろは別々に数えます。「を 3回」のように、数字の前は空けて助数詞とは詰める書き方がふつうにあるからです。「3GBの」のように数字に続く単位は、英字ではなく数字の側として数えます。逆に「H30 等」「EC2 で」「Phase 1 は」のように英字で始まって数字で終わる名前は、英字の側として数えます。「073-489-5909」「2026-06-02」のような番号は数量ではないので数えません。日付・時刻(「9月」「2026年」「10月1日」「3時」「10時5分」)も、数と単位を詰めて書く決まりなので、その中の境目は数えません(日付の前の空白は数えます)。長さ(「3ヶ月」「3 時間」「5日で」「3年」)は数量として数えます。題や注の番号として書かれた数(「3.1 リサーチの原則」の節番号、※1 の注番号、行の頭に続き番号で並べた注の番号)、0 で始まる組を含む番号(102-0094)、〒の後ろの郵便番号(〒100-8916)、市・区・町まで下りた地名のすぐ後ろの番地(千代田区紀尾井町1-3)も、後ろの空白が番号と題・項目の区切りなので数えません。鉤括弧(「」『』)で引いた題名や発言の中も、空け方は引いた元のものなので数えません。
19
- en: Whether to put a space between Japanese and Latin letters or digits is a choice either way. What reads badly is mixing both in one document, which suggests the difference means something. chaff does not decide which is right; it points at whichever the document uses less. Letters, the space before a digit and the space after one are counted separately, since spacing before a number but not before its counter is common. A unit after a number (3GB) counts with the number; a name that starts with a letter and ends in a digit (H30, EC2, Phase 1) counts with the letters. A code such as a phone number or a date (073-489-5909, 2026-06-02) is not a quantity and is not counted. Nor is the inside of a date or a time written with units (9月, 2026年, 10月1日, 3時, 10時5分), which is packed by convention; the space before it still counts. A length of time (3ヶ月, 3 時間, 5日で, 3年) is a quantity and counts. Neither is a number written as the label of a title or a note (a section number such as 3.1 before its title, a note number after ※, the numbers of notes listed one per line in sequence), a code with a part starting with 0 (102-0094), a postal code after 〒 (〒100-8916), or a hyphenated address number right after a city, ward or town (千代田区紀尾井町1-3), since the space after it separates the label from its title or the next item. Nor is the spacing inside a title or a quotation in 「」 or 『』, which is the source's, not the writer's.
19
+ ja: 日本語と英字・数字のあいだを空けるか詰めるかは、どちらでも読めます。困るのは一つの文書の中で混ざることで、読み手には違いに意味があるように見えます。chaff はどちらが正しいかを決めず、文書の中で少ないほうを指摘します。英字と、数字の前、数字の後ろは別々に数えます。「を 3回」のように、数字の前は空けて助数詞とは詰める書き方がふつうにあるからです。「3GBの」のように数字に続く単位は、英字ではなく数字の側として数えます。逆に「H30 等」「EC2 で」「Phase 1 は」のように英字で始まって数字で終わる名前は、英字の側として数えます。「073-489-5909」「2026-06-02」のような番号は数量ではないので数えません。日付・時刻(「9月」「2026年」「令和8年」「10月1日」「3時」「10時5分」)も、数と単位を詰めて書く決まりなので、その中の境目も、前の境目(「は 9月」「午後3時」)も数えません。長さ(「3ヶ月」「3 時間」「5日で」「3年」)は数量として数えます。題や注の番号として書かれた数(「3.1 リサーチの原則」の節番号、※1 の注番号、行の頭に続き番号で並べた注の番号、番号が増えていく箇条書きの頭の番号、「問3」「図2」のように語のすぐ後ろに書いた番号)、0 で始まる組を含む番号(102-0094)、〒の後ろの郵便番号(〒100-8916)、市・区・町まで下りた地名のすぐ後ろの番地(千代田区紀尾井町1-3)も、後ろの空白が番号と題・項目の区切りなので数えません。「第1節 AI の…」の「第1節」の後ろの空白も同じです。鉤括弧(「」『』)で引いた題名や発言の中も、空け方は引いた元のものなので数えません。
20
+ en: Whether to put a space between Japanese and Latin letters or digits is a choice either way. What reads badly is mixing both in one document, which suggests the difference means something. chaff does not decide which is right; it points at whichever the document uses less. Letters, the space before a digit and the space after one are counted separately, since spacing before a number but not before its counter is common. A unit after a number (3GB) counts with the number; a name that starts with a letter and ends in a digit (H30, EC2, Phase 1) counts with the letters. A code such as a phone number or a date (073-489-5909, 2026-06-02) is not a quantity and is not counted. Nor is a date or a time written with units (9月, 2026年, 令和8年, 10月1日, 3時, 10時5分), which is packed by convention; neither its inside nor the space before it (は 9月, 午後3時) counts. A length of time (3ヶ月, 3 時間, 5日で, 3年) is a quantity and counts. Neither is a number written as the label of a title or a note (a section number such as 3.1 before its title, a note number after ※, the numbers of notes listed one per line in sequence, numbers opening the items of a list that go up, a number written right after a word such as 問 or 図), a code with a part starting with 0 (102-0094), a postal code after 〒 (〒100-8916), or a hyphenated address number right after a city, ward or town (千代田区紀尾井町1-3), since the space after it separates the label from its title or the next item. The same goes for the space after a division such as 第1節. Nor is the spacing inside a title or a quotation in 「」 or 『』, which is the source's, not the writer's.
20
21
 
21
22
  message:
22
23
  ja: "日本語と{kind}のあいだを{style}(この文書はふつう{usual}。{of} 箇所のうち {count} 箇所が違う)"
@@ -30,3 +31,21 @@ how_to_fix:
30
31
  levels: { strict: 1, normal: 1, relaxed: 3 }
31
32
 
32
33
  use_for: [business, blog, technical, legal, docs, academic, literature, speech]
34
+
35
+ group: consistency
36
+ summary:
37
+ ja: 日本語と英数字のあいだの空白が、文書の中で付いたり付かなかったりしている所
38
+ en: Spacing between Japanese and Latin letters or digits that is done both ways in one document
39
+ example:
40
+ ja:
41
+ before: |
42
+ 表は Excel で作り、Word に貼ります。図は PowerPoint で描きます。最後にPDFにします。
43
+ after: |
44
+ 表は Excel で作り、Word に貼ります。図は PowerPoint で描きます。最後に PDF にします。
45
+
46
+ not_flagged:
47
+ ja: 電話番号や日付のような番号、単位つきの日付や時刻(9月、10時5分)、見出しの番号、「」の中は数えません。どちらの空け方が正しいかは決めません。
48
+ en: Codes such as phone numbers and dates, dates and times with units (9月, 10時5分), heading numbers and quotations are not counted. Neither way is called right.
49
+ level_meaning:
50
+ ja: 少ないほうの空け方が {limit} 箇所あれば指摘
51
+ en: reported once {limit} places go against the document's habit
@@ -29,3 +29,19 @@ how_to_fix:
29
29
  levels: { strict: 6, normal: 8, relaxed: 12 }
30
30
 
31
31
  use_for: [blog, business, technical, legal, docs, academic, literature, speech]
32
+
33
+ group: readability
34
+ summary:
35
+ ja: 「新規顧客獲得施策検討会議」のように、漢字だけが長く続く所
36
+ en: A long run of kanji with no kana between them, which Japanese readers have to take apart
37
+ example:
38
+ ja:
39
+ before: 来週、新規顧客獲得施策検討会議を開きます。
40
+ after: 来週、新しい顧客を増やす施策を話し合う会議を開きます。
41
+
42
+ not_flagged:
43
+ ja: chaff.yaml の names に書いた組織名や製品名、法令の条番号(第二十二条第二項)は数えません。
44
+ en: Names listed under names in chaff.yaml, and provision numbers in statutes (第二十二条第二項), are not counted.
45
+ level_meaning:
46
+ ja: 漢字の連続 {limit} 字まで
47
+ en: up to {limit} kanji in a row