chaffjs 0.35.0 → 0.37.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 (823) hide show
  1. package/README.ja.md +12 -0
  2. package/README.md +15 -0
  3. package/dist/announced-count.d.ts +2 -0
  4. package/dist/announced-count.d.ts.map +1 -1
  5. package/dist/announced-count.js +29 -7
  6. package/dist/announced-count.js.map +1 -1
  7. package/dist/chronology-rows.d.ts +9 -0
  8. package/dist/chronology-rows.d.ts.map +1 -0
  9. package/dist/chronology-rows.js +79 -0
  10. package/dist/chronology-rows.js.map +1 -0
  11. package/dist/company-name-run.d.ts +8 -0
  12. package/dist/company-name-run.d.ts.map +1 -0
  13. package/dist/company-name-run.js +30 -0
  14. package/dist/company-name-run.js.map +1 -0
  15. package/dist/compound-head.d.ts +7 -0
  16. package/dist/compound-head.d.ts.map +1 -0
  17. package/dist/compound-head.js +19 -0
  18. package/dist/compound-head.js.map +1 -0
  19. package/dist/date-format.d.ts +8 -3
  20. package/dist/date-format.d.ts.map +1 -1
  21. package/dist/date-format.js +36 -3
  22. package/dist/date-format.js.map +1 -1
  23. package/dist/derived/count-per-period.d.ts +23 -0
  24. package/dist/derived/count-per-period.d.ts.map +1 -0
  25. package/dist/derived/count-per-period.js +14 -0
  26. package/dist/derived/count-per-period.js.map +1 -0
  27. package/dist/detectors/acronym-context.d.ts +4 -0
  28. package/dist/detectors/acronym-context.d.ts.map +1 -1
  29. package/dist/detectors/acronym-context.js +29 -1
  30. package/dist/detectors/acronym-context.js.map +1 -1
  31. package/dist/detectors/acronym-expansion.d.ts +5 -1
  32. package/dist/detectors/acronym-expansion.d.ts.map +1 -1
  33. package/dist/detectors/acronym-expansion.js +42 -3
  34. package/dist/detectors/acronym-expansion.js.map +1 -1
  35. package/dist/detectors/acronym-known.d.ts +19 -0
  36. package/dist/detectors/acronym-known.d.ts.map +1 -0
  37. package/dist/detectors/acronym-known.js +32 -0
  38. package/dist/detectors/acronym-known.js.map +1 -0
  39. package/dist/detectors/acronym-link.d.ts +19 -0
  40. package/dist/detectors/acronym-link.d.ts.map +1 -0
  41. package/dist/detectors/acronym-link.js +65 -0
  42. package/dist/detectors/acronym-link.js.map +1 -0
  43. package/dist/detectors/acronym-mention.d.ts +5 -0
  44. package/dist/detectors/acronym-mention.d.ts.map +1 -0
  45. package/dist/detectors/acronym-mention.js +34 -0
  46. package/dist/detectors/acronym-mention.js.map +1 -0
  47. package/dist/detectors/acronym-name.d.ts +8 -1
  48. package/dist/detectors/acronym-name.d.ts.map +1 -1
  49. package/dist/detectors/acronym-name.js +25 -6
  50. package/dist/detectors/acronym-name.js.map +1 -1
  51. package/dist/detectors/addressee-edge.d.ts +13 -0
  52. package/dist/detectors/addressee-edge.d.ts.map +1 -0
  53. package/dist/detectors/addressee-edge.js +13 -0
  54. package/dist/detectors/addressee-edge.js.map +1 -0
  55. package/dist/detectors/addressee-title-edge.d.ts +21 -0
  56. package/dist/detectors/addressee-title-edge.d.ts.map +1 -0
  57. package/dist/detectors/addressee-title-edge.js +22 -0
  58. package/dist/detectors/addressee-title-edge.js.map +1 -0
  59. package/dist/detectors/announced-count.d.ts.map +1 -1
  60. package/dist/detectors/announced-count.js +1 -0
  61. package/dist/detectors/announced-count.js.map +1 -1
  62. package/dist/detectors/bare-comparative.d.ts +4 -0
  63. package/dist/detectors/bare-comparative.d.ts.map +1 -1
  64. package/dist/detectors/bare-comparative.js +28 -3
  65. package/dist/detectors/bare-comparative.js.map +1 -1
  66. package/dist/detectors/blank-structure.d.ts +7 -1
  67. package/dist/detectors/blank-structure.d.ts.map +1 -1
  68. package/dist/detectors/blank-structure.js +13 -8
  69. package/dist/detectors/blank-structure.js.map +1 -1
  70. package/dist/detectors/bracket-specified.d.ts +6 -0
  71. package/dist/detectors/bracket-specified.d.ts.map +1 -0
  72. package/dist/detectors/bracket-specified.js +23 -0
  73. package/dist/detectors/bracket-specified.js.map +1 -0
  74. package/dist/detectors/broken-link.d.ts +6 -0
  75. package/dist/detectors/broken-link.d.ts.map +1 -1
  76. package/dist/detectors/broken-link.js +23 -2
  77. package/dist/detectors/broken-link.js.map +1 -1
  78. package/dist/detectors/capitalised-term.d.ts +4 -0
  79. package/dist/detectors/capitalised-term.d.ts.map +1 -1
  80. package/dist/detectors/capitalised-term.js +18 -1
  81. package/dist/detectors/capitalised-term.js.map +1 -1
  82. package/dist/detectors/caps-caption.d.ts +17 -6
  83. package/dist/detectors/caps-caption.d.ts.map +1 -1
  84. package/dist/detectors/caps-caption.js +65 -0
  85. package/dist/detectors/caps-caption.js.map +1 -1
  86. package/dist/detectors/caps-phrase.d.ts +6 -0
  87. package/dist/detectors/caps-phrase.d.ts.map +1 -0
  88. package/dist/detectors/caps-phrase.js +16 -0
  89. package/dist/detectors/caps-phrase.js.map +1 -0
  90. package/dist/detectors/char-shape.d.ts +1 -0
  91. package/dist/detectors/char-shape.d.ts.map +1 -1
  92. package/dist/detectors/char-shape.js +56 -20
  93. package/dist/detectors/char-shape.js.map +1 -1
  94. package/dist/detectors/citation-sentence.d.ts +8 -0
  95. package/dist/detectors/citation-sentence.d.ts.map +1 -0
  96. package/dist/detectors/citation-sentence.js +40 -0
  97. package/dist/detectors/citation-sentence.js.map +1 -0
  98. package/dist/detectors/cited-title.d.ts +3 -2
  99. package/dist/detectors/cited-title.d.ts.map +1 -1
  100. package/dist/detectors/cited-title.js +14 -3
  101. package/dist/detectors/cited-title.js.map +1 -1
  102. package/dist/detectors/contraction-mention.d.ts +3 -0
  103. package/dist/detectors/contraction-mention.d.ts.map +1 -0
  104. package/dist/detectors/contraction-mention.js +22 -0
  105. package/dist/detectors/contraction-mention.js.map +1 -0
  106. package/dist/detectors/counter-edge.d.ts +2 -1
  107. package/dist/detectors/counter-edge.d.ts.map +1 -1
  108. package/dist/detectors/counter-edge.js +17 -2
  109. package/dist/detectors/counter-edge.js.map +1 -1
  110. package/dist/detectors/dash-break.d.ts +7 -0
  111. package/dist/detectors/dash-break.d.ts.map +1 -0
  112. package/dist/detectors/dash-break.js +30 -0
  113. package/dist/detectors/dash-break.js.map +1 -0
  114. package/dist/detectors/date-any-year.d.ts +7 -3
  115. package/dist/detectors/date-any-year.d.ts.map +1 -1
  116. package/dist/detectors/date-any-year.js +30 -8
  117. package/dist/detectors/date-any-year.js.map +1 -1
  118. package/dist/detectors/date-format.d.ts.map +1 -1
  119. package/dist/detectors/date-format.js +2 -1
  120. package/dist/detectors/date-format.js.map +1 -1
  121. package/dist/detectors/date-year.d.ts +9 -3
  122. package/dist/detectors/date-year.d.ts.map +1 -1
  123. package/dist/detectors/date-year.js +45 -9
  124. package/dist/detectors/date-year.js.map +1 -1
  125. package/dist/detectors/deadline-unit.d.ts +20 -0
  126. package/dist/detectors/deadline-unit.d.ts.map +1 -0
  127. package/dist/detectors/deadline-unit.js +19 -0
  128. package/dist/detectors/deadline-unit.js.map +1 -0
  129. package/dist/detectors/defined-term-form.d.ts.map +1 -1
  130. package/dist/detectors/defined-term-form.js +33 -7
  131. package/dist/detectors/defined-term-form.js.map +1 -1
  132. package/dist/detectors/definition-use.d.ts.map +1 -1
  133. package/dist/detectors/definition-use.js +14 -6
  134. package/dist/detectors/definition-use.js.map +1 -1
  135. package/dist/detectors/derived-numbers.d.ts.map +1 -1
  136. package/dist/detectors/derived-numbers.js +17 -4
  137. package/dist/detectors/derived-numbers.js.map +1 -1
  138. package/dist/detectors/document-shape.d.ts +5 -0
  139. package/dist/detectors/document-shape.d.ts.map +1 -1
  140. package/dist/detectors/document-shape.js +15 -1
  141. package/dist/detectors/document-shape.js.map +1 -1
  142. package/dist/detectors/doubled-across-aside.d.ts +9 -0
  143. package/dist/detectors/doubled-across-aside.d.ts.map +1 -0
  144. package/dist/detectors/doubled-across-aside.js +27 -0
  145. package/dist/detectors/doubled-across-aside.js.map +1 -0
  146. package/dist/detectors/doubled-punctuation.d.ts +3 -3
  147. package/dist/detectors/doubled-punctuation.d.ts.map +1 -1
  148. package/dist/detectors/doubled-punctuation.js +23 -4
  149. package/dist/detectors/doubled-punctuation.js.map +1 -1
  150. package/dist/detectors/doubled-word.d.ts.map +1 -1
  151. package/dist/detectors/doubled-word.js +2 -1
  152. package/dist/detectors/doubled-word.js.map +1 -1
  153. package/dist/detectors/duplicate-heading.d.ts +1 -0
  154. package/dist/detectors/duplicate-heading.d.ts.map +1 -1
  155. package/dist/detectors/duplicate-heading.js +25 -3
  156. package/dist/detectors/duplicate-heading.js.map +1 -1
  157. package/dist/detectors/ellipsis.d.ts.map +1 -1
  158. package/dist/detectors/ellipsis.js +13 -1
  159. package/dist/detectors/ellipsis.js.map +1 -1
  160. package/dist/detectors/email-letter.d.ts +40 -3
  161. package/dist/detectors/email-letter.d.ts.map +1 -1
  162. package/dist/detectors/email-letter.js +110 -17
  163. package/dist/detectors/email-letter.js.map +1 -1
  164. package/dist/detectors/field-label.d.ts +7 -0
  165. package/dist/detectors/field-label.d.ts.map +1 -0
  166. package/dist/detectors/field-label.js +23 -0
  167. package/dist/detectors/field-label.js.map +1 -0
  168. package/dist/detectors/footnote-mismatch.d.ts +6 -1
  169. package/dist/detectors/footnote-mismatch.d.ts.map +1 -1
  170. package/dist/detectors/footnote-mismatch.js +28 -7
  171. package/dist/detectors/footnote-mismatch.js.map +1 -1
  172. package/dist/detectors/fullwidth-alnum.d.ts.map +1 -1
  173. package/dist/detectors/fullwidth-alnum.js +7 -1
  174. package/dist/detectors/fullwidth-alnum.js.map +1 -1
  175. package/dist/detectors/graded-step.d.ts +20 -0
  176. package/dist/detectors/graded-step.d.ts.map +1 -0
  177. package/dist/detectors/graded-step.js +33 -0
  178. package/dist/detectors/graded-step.js.map +1 -0
  179. package/dist/detectors/gram-openers.d.ts +9 -0
  180. package/dist/detectors/gram-openers.d.ts.map +1 -0
  181. package/dist/detectors/gram-openers.js +40 -0
  182. package/dist/detectors/gram-openers.js.map +1 -0
  183. package/dist/detectors/gram-place.d.ts +3 -1
  184. package/dist/detectors/gram-place.d.ts.map +1 -1
  185. package/dist/detectors/gram-place.js +8 -0
  186. package/dist/detectors/gram-place.js.map +1 -1
  187. package/dist/detectors/gram-predicate.d.ts.map +1 -1
  188. package/dist/detectors/gram-predicate.js +37 -3
  189. package/dist/detectors/gram-predicate.js.map +1 -1
  190. package/dist/detectors/heading-echo.d.ts.map +1 -1
  191. package/dist/detectors/heading-echo.js +28 -2
  192. package/dist/detectors/heading-echo.js.map +1 -1
  193. package/dist/detectors/heading-record-rhythm.d.ts +9 -0
  194. package/dist/detectors/heading-record-rhythm.d.ts.map +1 -0
  195. package/dist/detectors/heading-record-rhythm.js +57 -0
  196. package/dist/detectors/heading-record-rhythm.js.map +1 -0
  197. package/dist/detectors/ime-residue.d.ts +1 -1
  198. package/dist/detectors/ime-residue.d.ts.map +1 -1
  199. package/dist/detectors/ime-residue.js +4 -3
  200. package/dist/detectors/ime-residue.js.map +1 -1
  201. package/dist/detectors/kanji-compound-slip.d.ts +3 -0
  202. package/dist/detectors/kanji-compound-slip.d.ts.map +1 -0
  203. package/dist/detectors/kanji-compound-slip.js +50 -0
  204. package/dist/detectors/kanji-compound-slip.js.map +1 -0
  205. package/dist/detectors/kutoten-consistency.d.ts +10 -2
  206. package/dist/detectors/kutoten-consistency.d.ts.map +1 -1
  207. package/dist/detectors/kutoten-consistency.js +83 -12
  208. package/dist/detectors/kutoten-consistency.js.map +1 -1
  209. package/dist/detectors/lexicon.d.ts.map +1 -1
  210. package/dist/detectors/lexicon.js +13 -4
  211. package/dist/detectors/lexicon.js.map +1 -1
  212. package/dist/detectors/link-shape.d.ts.map +1 -1
  213. package/dist/detectors/link-shape.js +9 -3
  214. package/dist/detectors/link-shape.js.map +1 -1
  215. package/dist/detectors/list-item-ending.d.ts +18 -0
  216. package/dist/detectors/list-item-ending.d.ts.map +1 -0
  217. package/dist/detectors/list-item-ending.js +35 -0
  218. package/dist/detectors/list-item-ending.js.map +1 -0
  219. package/dist/detectors/list-parallel.d.ts +18 -5
  220. package/dist/detectors/list-parallel.d.ts.map +1 -1
  221. package/dist/detectors/list-parallel.js +116 -36
  222. package/dist/detectors/list-parallel.js.map +1 -1
  223. package/dist/detectors/list-sentence.d.ts +4 -0
  224. package/dist/detectors/list-sentence.d.ts.map +1 -1
  225. package/dist/detectors/list-sentence.js +1 -1
  226. package/dist/detectors/list-sentence.js.map +1 -1
  227. package/dist/detectors/mark-shape.d.ts +13 -4
  228. package/dist/detectors/mark-shape.d.ts.map +1 -1
  229. package/dist/detectors/mark-shape.js +73 -10
  230. package/dist/detectors/mark-shape.js.map +1 -1
  231. package/dist/detectors/mentioned-phrase.d.ts +9 -0
  232. package/dist/detectors/mentioned-phrase.d.ts.map +1 -0
  233. package/dist/detectors/mentioned-phrase.js +25 -0
  234. package/dist/detectors/mentioned-phrase.js.map +1 -0
  235. package/dist/detectors/middle-dot.d.ts +2 -2
  236. package/dist/detectors/middle-dot.d.ts.map +1 -1
  237. package/dist/detectors/middle-dot.js +4 -2
  238. package/dist/detectors/middle-dot.js.map +1 -1
  239. package/dist/detectors/modal-conflict.d.ts.map +1 -1
  240. package/dist/detectors/modal-conflict.js +5 -2
  241. package/dist/detectors/modal-conflict.js.map +1 -1
  242. package/dist/detectors/name-variant.d.ts.map +1 -1
  243. package/dist/detectors/name-variant.js +6 -0
  244. package/dist/detectors/name-variant.js.map +1 -1
  245. package/dist/detectors/notice-paragraph.d.ts +9 -0
  246. package/dist/detectors/notice-paragraph.d.ts.map +1 -0
  247. package/dist/detectors/notice-paragraph.js +21 -0
  248. package/dist/detectors/notice-paragraph.js.map +1 -0
  249. package/dist/detectors/number-style.d.ts.map +1 -1
  250. package/dist/detectors/number-style.js +15 -2
  251. package/dist/detectors/number-style.js.map +1 -1
  252. package/dist/detectors/number-unit.d.ts.map +1 -1
  253. package/dist/detectors/number-unit.js +24 -1
  254. package/dist/detectors/number-unit.js.map +1 -1
  255. package/dist/detectors/numeral-opener.d.ts +6 -0
  256. package/dist/detectors/numeral-opener.d.ts.map +1 -1
  257. package/dist/detectors/numeral-opener.js +24 -1
  258. package/dist/detectors/numeral-opener.js.map +1 -1
  259. package/dist/detectors/obligation-without-deadline.d.ts +5 -1
  260. package/dist/detectors/obligation-without-deadline.d.ts.map +1 -1
  261. package/dist/detectors/obligation-without-deadline.js +44 -23
  262. package/dist/detectors/obligation-without-deadline.js.map +1 -1
  263. package/dist/detectors/open-end-class.d.ts +16 -0
  264. package/dist/detectors/open-end-class.d.ts.map +1 -0
  265. package/dist/detectors/open-end-class.js +65 -0
  266. package/dist/detectors/open-end-class.js.map +1 -0
  267. package/dist/detectors/open-end-condition.d.ts +7 -0
  268. package/dist/detectors/open-end-condition.d.ts.map +1 -0
  269. package/dist/detectors/open-end-condition.js +35 -0
  270. package/dist/detectors/open-end-condition.js.map +1 -0
  271. package/dist/detectors/open-end-names.d.ts +9 -3
  272. package/dist/detectors/open-end-names.d.ts.map +1 -1
  273. package/dist/detectors/open-end-names.js +5 -2
  274. package/dist/detectors/open-end-names.js.map +1 -1
  275. package/dist/detectors/open-end-question.d.ts +15 -0
  276. package/dist/detectors/open-end-question.d.ts.map +1 -0
  277. package/dist/detectors/open-end-question.js +37 -0
  278. package/dist/detectors/open-end-question.js.map +1 -0
  279. package/dist/detectors/open-end-scope.d.ts +16 -0
  280. package/dist/detectors/open-end-scope.d.ts.map +1 -0
  281. package/dist/detectors/open-end-scope.js +47 -0
  282. package/dist/detectors/open-end-scope.js.map +1 -0
  283. package/dist/detectors/opening-date.d.ts +10 -0
  284. package/dist/detectors/opening-date.d.ts.map +1 -0
  285. package/dist/detectors/opening-date.js +33 -0
  286. package/dist/detectors/opening-date.js.map +1 -0
  287. package/dist/detectors/ordinary-phrase.d.ts +20 -0
  288. package/dist/detectors/ordinary-phrase.d.ts.map +1 -0
  289. package/dist/detectors/ordinary-phrase.js +54 -0
  290. package/dist/detectors/ordinary-phrase.js.map +1 -0
  291. package/dist/detectors/organisation-run.d.ts +5 -7
  292. package/dist/detectors/organisation-run.d.ts.map +1 -1
  293. package/dist/detectors/organisation-run.js +10 -0
  294. package/dist/detectors/organisation-run.js.map +1 -1
  295. package/dist/detectors/orthographic-variant.d.ts.map +1 -1
  296. package/dist/detectors/orthographic-variant.js +85 -20
  297. package/dist/detectors/orthographic-variant.js.map +1 -1
  298. package/dist/detectors/orthography.d.ts.map +1 -1
  299. package/dist/detectors/orthography.js +9 -2
  300. package/dist/detectors/orthography.js.map +1 -1
  301. package/dist/detectors/oxford-comma.d.ts.map +1 -1
  302. package/dist/detectors/oxford-comma.js +70 -3
  303. package/dist/detectors/oxford-comma.js.map +1 -1
  304. package/dist/detectors/person-consistency.d.ts +2 -1
  305. package/dist/detectors/person-consistency.d.ts.map +1 -1
  306. package/dist/detectors/person-consistency.js +5 -3
  307. package/dist/detectors/person-consistency.js.map +1 -1
  308. package/dist/detectors/phrase-match.d.ts +2 -0
  309. package/dist/detectors/phrase-match.d.ts.map +1 -1
  310. package/dist/detectors/phrase-match.js +11 -4
  311. package/dist/detectors/phrase-match.js.map +1 -1
  312. package/dist/detectors/placeholder-text.d.ts.map +1 -1
  313. package/dist/detectors/placeholder-text.js +18 -3
  314. package/dist/detectors/placeholder-text.js.map +1 -1
  315. package/dist/detectors/placeholder.d.ts +3 -1
  316. package/dist/detectors/placeholder.d.ts.map +1 -1
  317. package/dist/detectors/placeholder.js +8 -3
  318. package/dist/detectors/placeholder.js.map +1 -1
  319. package/dist/detectors/postcode-end.d.ts +3 -0
  320. package/dist/detectors/postcode-end.d.ts.map +1 -0
  321. package/dist/detectors/postcode-end.js +15 -0
  322. package/dist/detectors/postcode-end.js.map +1 -0
  323. package/dist/detectors/prose-total-words.d.ts +5 -0
  324. package/dist/detectors/prose-total-words.d.ts.map +1 -0
  325. package/dist/detectors/prose-total-words.js +14 -0
  326. package/dist/detectors/prose-total-words.js.map +1 -0
  327. package/dist/detectors/range-notation.d.ts +2 -2
  328. package/dist/detectors/range-notation.d.ts.map +1 -1
  329. package/dist/detectors/range-notation.js +18 -7
  330. package/dist/detectors/range-notation.js.map +1 -1
  331. package/dist/detectors/registry/kanji-compound-slip.d.ts +3 -0
  332. package/dist/detectors/registry/kanji-compound-slip.d.ts.map +1 -0
  333. package/dist/detectors/registry/kanji-compound-slip.js +3 -0
  334. package/dist/detectors/registry/kanji-compound-slip.js.map +1 -0
  335. package/dist/detectors/registry/phrase-in-use.d.ts +3 -0
  336. package/dist/detectors/registry/phrase-in-use.d.ts.map +1 -0
  337. package/dist/detectors/registry/phrase-in-use.js +3 -0
  338. package/dist/detectors/registry/phrase-in-use.js.map +1 -0
  339. package/dist/detectors/requirement-smell.d.ts.map +1 -1
  340. package/dist/detectors/requirement-smell.js +35 -7
  341. package/dist/detectors/requirement-smell.js.map +1 -1
  342. package/dist/detectors/scaled-figure-unit.d.ts +28 -0
  343. package/dist/detectors/scaled-figure-unit.d.ts.map +1 -0
  344. package/dist/detectors/scaled-figure-unit.js +78 -0
  345. package/dist/detectors/scaled-figure-unit.js.map +1 -0
  346. package/dist/detectors/sentence-counts.d.ts +12 -2
  347. package/dist/detectors/sentence-counts.d.ts.map +1 -1
  348. package/dist/detectors/sentence-counts.js +52 -11
  349. package/dist/detectors/sentence-counts.js.map +1 -1
  350. package/dist/detectors/sentence-ending.d.ts +2 -0
  351. package/dist/detectors/sentence-ending.d.ts.map +1 -1
  352. package/dist/detectors/sentence-ending.js +10 -3
  353. package/dist/detectors/sentence-ending.js.map +1 -1
  354. package/dist/detectors/sentence-length.d.ts.map +1 -1
  355. package/dist/detectors/sentence-length.js +13 -4
  356. package/dist/detectors/sentence-length.js.map +1 -1
  357. package/dist/detectors/sentence-load.d.ts +4 -1
  358. package/dist/detectors/sentence-load.d.ts.map +1 -1
  359. package/dist/detectors/sentence-load.js +9 -2
  360. package/dist/detectors/sentence-load.js.map +1 -1
  361. package/dist/detectors/signals.d.ts.map +1 -1
  362. package/dist/detectors/signals.js +44 -52
  363. package/dist/detectors/signals.js.map +1 -1
  364. package/dist/detectors/structure-tree.d.ts.map +1 -1
  365. package/dist/detectors/structure-tree.js +14 -13
  366. package/dist/detectors/structure-tree.js.map +1 -1
  367. package/dist/detectors/structure.d.ts.map +1 -1
  368. package/dist/detectors/structure.js +2 -1
  369. package/dist/detectors/structure.js.map +1 -1
  370. package/dist/detectors/subject-name-line.d.ts +8 -0
  371. package/dist/detectors/subject-name-line.d.ts.map +1 -0
  372. package/dist/detectors/subject-name-line.js +53 -0
  373. package/dist/detectors/subject-name-line.js.map +1 -0
  374. package/dist/detectors/superlative-name.d.ts +5 -0
  375. package/dist/detectors/superlative-name.d.ts.map +1 -1
  376. package/dist/detectors/superlative-name.js +9 -0
  377. package/dist/detectors/superlative-name.js.map +1 -1
  378. package/dist/detectors/table-header.d.ts.map +1 -1
  379. package/dist/detectors/table-header.js +13 -1
  380. package/dist/detectors/table-header.js.map +1 -1
  381. package/dist/detectors/technical-docs.d.ts.map +1 -1
  382. package/dist/detectors/technical-docs.js +4 -1
  383. package/dist/detectors/technical-docs.js.map +1 -1
  384. package/dist/detectors/term-mention-sentence.d.ts +4 -0
  385. package/dist/detectors/term-mention-sentence.d.ts.map +1 -0
  386. package/dist/detectors/term-mention-sentence.js +28 -0
  387. package/dist/detectors/term-mention-sentence.js.map +1 -0
  388. package/dist/detectors/titled-run.d.ts +2 -1
  389. package/dist/detectors/titled-run.d.ts.map +1 -1
  390. package/dist/detectors/titled-run.js +9 -4
  391. package/dist/detectors/titled-run.js.map +1 -1
  392. package/dist/detectors/token-shape.d.ts.map +1 -1
  393. package/dist/detectors/token-shape.js +15 -5
  394. package/dist/detectors/token-shape.js.map +1 -1
  395. package/dist/detectors/undefined-term.d.ts.map +1 -1
  396. package/dist/detectors/undefined-term.js +5 -0
  397. package/dist/detectors/undefined-term.js.map +1 -1
  398. package/dist/detectors/unknown-word.d.ts +4 -1
  399. package/dist/detectors/unknown-word.d.ts.map +1 -1
  400. package/dist/detectors/unknown-word.js +1 -1
  401. package/dist/detectors/unknown-word.js.map +1 -1
  402. package/dist/detectors/vague-density.d.ts +5 -2
  403. package/dist/detectors/vague-density.d.ts.map +1 -1
  404. package/dist/detectors/vague-density.js +17 -4
  405. package/dist/detectors/vague-density.js.map +1 -1
  406. package/dist/document-paragraphs.d.ts +4 -0
  407. package/dist/document-paragraphs.d.ts.map +1 -0
  408. package/dist/document-paragraphs.js +24 -0
  409. package/dist/document-paragraphs.js.map +1 -0
  410. package/dist/document.d.ts.map +1 -1
  411. package/dist/document.js +2 -19
  412. package/dist/document.js.map +1 -1
  413. package/dist/figure-references.d.ts +3 -0
  414. package/dist/figure-references.d.ts.map +1 -1
  415. package/dist/figure-references.js +6 -2
  416. package/dist/figure-references.js.map +1 -1
  417. package/dist/format-template.d.ts +3 -0
  418. package/dist/format-template.d.ts.map +1 -0
  419. package/dist/format-template.js +13 -0
  420. package/dist/format-template.js.map +1 -0
  421. package/dist/formula-brackets.d.ts +7 -0
  422. package/dist/formula-brackets.d.ts.map +1 -0
  423. package/dist/formula-brackets.js +29 -0
  424. package/dist/formula-brackets.js.map +1 -0
  425. package/dist/html/html-markdown.d.ts.map +1 -1
  426. package/dist/html/html-markdown.js +2 -1
  427. package/dist/html/html-markdown.js.map +1 -1
  428. package/dist/html/html-site-chrome.d.ts +5 -0
  429. package/dist/html/html-site-chrome.d.ts.map +1 -0
  430. package/dist/html/html-site-chrome.js +56 -0
  431. package/dist/html/html-site-chrome.js.map +1 -0
  432. package/dist/joined-view.d.ts.map +1 -1
  433. package/dist/joined-view.js +1 -0
  434. package/dist/joined-view.js.map +1 -1
  435. package/dist/kanji-compound-slip.d.ts +32 -0
  436. package/dist/kanji-compound-slip.d.ts.map +1 -0
  437. package/dist/kanji-compound-slip.js +63 -0
  438. package/dist/kanji-compound-slip.js.map +1 -0
  439. package/dist/latin-company-form.d.ts +6 -0
  440. package/dist/latin-company-form.d.ts.map +1 -0
  441. package/dist/latin-company-form.js +32 -0
  442. package/dist/latin-company-form.js.map +1 -0
  443. package/dist/latin-word-boundary.d.ts +20 -0
  444. package/dist/latin-word-boundary.d.ts.map +1 -0
  445. package/dist/latin-word-boundary.js +57 -0
  446. package/dist/latin-word-boundary.js.map +1 -0
  447. package/dist/leading-label.d.ts +4 -0
  448. package/dist/leading-label.d.ts.map +1 -0
  449. package/dist/leading-label.js +14 -0
  450. package/dist/leading-label.js.map +1 -0
  451. package/dist/lexicon-genres.d.ts +2 -0
  452. package/dist/lexicon-genres.d.ts.map +1 -1
  453. package/dist/lexicon-genres.js +1 -1
  454. package/dist/lexicon-genres.js.map +1 -1
  455. package/dist/link-shape.d.ts +6 -0
  456. package/dist/link-shape.d.ts.map +1 -1
  457. package/dist/link-shape.js +27 -0
  458. package/dist/link-shape.js.map +1 -1
  459. package/dist/link-title.d.ts +4 -0
  460. package/dist/link-title.d.ts.map +1 -0
  461. package/dist/link-title.js +33 -0
  462. package/dist/link-title.js.map +1 -0
  463. package/dist/list-item-paragraphs.d.ts +15 -0
  464. package/dist/list-item-paragraphs.d.ts.map +1 -0
  465. package/dist/list-item-paragraphs.js +19 -0
  466. package/dist/list-item-paragraphs.js.map +1 -0
  467. package/dist/literal-quote.d.ts +12 -0
  468. package/dist/literal-quote.d.ts.map +1 -0
  469. package/dist/literal-quote.js +43 -0
  470. package/dist/literal-quote.js.map +1 -0
  471. package/dist/nado-closed-list.d.ts.map +1 -1
  472. package/dist/nado-closed-list.js +39 -5
  473. package/dist/nado-closed-list.js.map +1 -1
  474. package/dist/name-misspelt-usual.d.ts +5 -0
  475. package/dist/name-misspelt-usual.d.ts.map +1 -0
  476. package/dist/name-misspelt-usual.js +19 -0
  477. package/dist/name-misspelt-usual.js.map +1 -0
  478. package/dist/name-separator.d.ts.map +1 -1
  479. package/dist/name-separator.js +25 -2
  480. package/dist/name-separator.js.map +1 -1
  481. package/dist/nominal-stem.d.ts +14 -1
  482. package/dist/nominal-stem.d.ts.map +1 -1
  483. package/dist/nominal-stem.js +42 -4
  484. package/dist/nominal-stem.js.map +1 -1
  485. package/dist/notice-header.d.ts +19 -0
  486. package/dist/notice-header.d.ts.map +1 -0
  487. package/dist/notice-header.js +31 -0
  488. package/dist/notice-header.js.map +1 -0
  489. package/dist/person-forms.d.ts +8 -0
  490. package/dist/person-forms.d.ts.map +1 -1
  491. package/dist/person-forms.js +12 -0
  492. package/dist/person-forms.js.map +1 -1
  493. package/dist/plugin.d.ts +5 -0
  494. package/dist/plugin.d.ts.map +1 -1
  495. package/dist/preamble-paragraphs.d.ts +3 -2
  496. package/dist/preamble-paragraphs.d.ts.map +1 -1
  497. package/dist/preamble-paragraphs.js +8 -2
  498. package/dist/preamble-paragraphs.js.map +1 -1
  499. package/dist/sentence-load.d.ts +2 -1
  500. package/dist/sentence-load.d.ts.map +1 -1
  501. package/dist/sentence-load.js +11 -3
  502. package/dist/sentence-load.js.map +1 -1
  503. package/dist/spacing-code.d.ts +1 -0
  504. package/dist/spacing-code.d.ts.map +1 -1
  505. package/dist/spacing-code.js +4 -1
  506. package/dist/spacing-code.js.map +1 -1
  507. package/dist/split-noun.d.ts +10 -0
  508. package/dist/split-noun.d.ts.map +1 -0
  509. package/dist/split-noun.js +50 -0
  510. package/dist/split-noun.js.map +1 -0
  511. package/dist/structure/attached-parts.d.ts +12 -0
  512. package/dist/structure/attached-parts.d.ts.map +1 -0
  513. package/dist/structure/attached-parts.js +44 -0
  514. package/dist/structure/attached-parts.js.map +1 -0
  515. package/dist/structure/build.d.ts.map +1 -1
  516. package/dist/structure/build.js +7 -4
  517. package/dist/structure/build.js.map +1 -1
  518. package/dist/structure/contents-lines.d.ts +7 -0
  519. package/dist/structure/contents-lines.d.ts.map +1 -0
  520. package/dist/structure/contents-lines.js +51 -0
  521. package/dist/structure/contents-lines.js.map +1 -0
  522. package/dist/structure/defining-names.d.ts +37 -0
  523. package/dist/structure/defining-names.d.ts.map +1 -0
  524. package/dist/structure/defining-names.js +122 -0
  525. package/dist/structure/defining-names.js.map +1 -0
  526. package/dist/structure/definition-use.d.ts +8 -4
  527. package/dist/structure/definition-use.d.ts.map +1 -1
  528. package/dist/structure/definition-use.js +123 -38
  529. package/dist/structure/definition-use.js.map +1 -1
  530. package/dist/structure/gerund-phrase.d.ts +8 -0
  531. package/dist/structure/gerund-phrase.d.ts.map +1 -0
  532. package/dist/structure/gerund-phrase.js +30 -0
  533. package/dist/structure/gerund-phrase.js.map +1 -0
  534. package/dist/structure/issues.d.ts +4 -1
  535. package/dist/structure/issues.d.ts.map +1 -1
  536. package/dist/structure/issues.js +5 -2
  537. package/dist/structure/issues.js.map +1 -1
  538. package/dist/structure/list-lead-in.d.ts +19 -0
  539. package/dist/structure/list-lead-in.d.ts.map +1 -0
  540. package/dist/structure/list-lead-in.js +85 -0
  541. package/dist/structure/list-lead-in.js.map +1 -0
  542. package/dist/structure/modal-conflict.d.ts +7 -2
  543. package/dist/structure/modal-conflict.d.ts.map +1 -1
  544. package/dist/structure/modal-conflict.js +36 -7
  545. package/dist/structure/modal-conflict.js.map +1 -1
  546. package/dist/structure/negated-act.d.ts +17 -0
  547. package/dist/structure/negated-act.d.ts.map +1 -0
  548. package/dist/structure/negated-act.js +32 -0
  549. package/dist/structure/negated-act.js.map +1 -0
  550. package/dist/structure/numbering.d.ts +3 -1
  551. package/dist/structure/numbering.d.ts.map +1 -1
  552. package/dist/structure/numbering.js +20 -8
  553. package/dist/structure/numbering.js.map +1 -1
  554. package/dist/structure/prose-total.d.ts +4 -0
  555. package/dist/structure/prose-total.d.ts.map +1 -1
  556. package/dist/structure/prose-total.js +16 -6
  557. package/dist/structure/prose-total.js.map +1 -1
  558. package/dist/structure/repeated-number.d.ts +24 -0
  559. package/dist/structure/repeated-number.d.ts.map +1 -0
  560. package/dist/structure/repeated-number.js +89 -0
  561. package/dist/structure/repeated-number.js.map +1 -0
  562. package/dist/structure/rounded-amount.d.ts +8 -0
  563. package/dist/structure/rounded-amount.d.ts.map +1 -0
  564. package/dist/structure/rounded-amount.js +48 -0
  565. package/dist/structure/rounded-amount.js.map +1 -0
  566. package/dist/structure/side-step.d.ts +8 -0
  567. package/dist/structure/side-step.d.ts.map +1 -0
  568. package/dist/structure/side-step.js +21 -0
  569. package/dist/structure/side-step.js.map +1 -0
  570. package/dist/structure/spanned-label-blank.d.ts +8 -0
  571. package/dist/structure/spanned-label-blank.d.ts.map +1 -0
  572. package/dist/structure/spanned-label-blank.js +37 -0
  573. package/dist/structure/spanned-label-blank.js.map +1 -0
  574. package/dist/structure/universal.d.ts +10 -4
  575. package/dist/structure/universal.d.ts.map +1 -1
  576. package/dist/structure/universal.js +26 -7
  577. package/dist/structure/universal.js.map +1 -1
  578. package/dist/structure/unspaced-heading.d.ts +10 -0
  579. package/dist/structure/unspaced-heading.d.ts.map +1 -0
  580. package/dist/structure/unspaced-heading.js +24 -0
  581. package/dist/structure/unspaced-heading.js.map +1 -0
  582. package/dist/structure/written-list-path.d.ts +10 -0
  583. package/dist/structure/written-list-path.d.ts.map +1 -0
  584. package/dist/structure/written-list-path.js +37 -0
  585. package/dist/structure/written-list-path.js.map +1 -0
  586. package/dist/structure/written-resolve.d.ts +1 -1
  587. package/dist/structure/written-resolve.d.ts.map +1 -1
  588. package/dist/structure/written-resolve.js +15 -9
  589. package/dist/structure/written-resolve.js.map +1 -1
  590. package/dist/title-line.d.ts +23 -0
  591. package/dist/title-line.d.ts.map +1 -0
  592. package/dist/title-line.js +28 -0
  593. package/dist/title-line.js.map +1 -0
  594. package/dist/topic-clause.d.ts +7 -0
  595. package/dist/topic-clause.d.ts.map +1 -0
  596. package/dist/topic-clause.js +87 -0
  597. package/dist/topic-clause.js.map +1 -0
  598. package/dist/uncounted-particles.d.ts +18 -0
  599. package/dist/uncounted-particles.d.ts.map +1 -0
  600. package/dist/uncounted-particles.js +47 -0
  601. package/dist/uncounted-particles.js.map +1 -0
  602. package/package.json +3 -3
  603. package/rules/adversative-ga-repeat.yaml +1 -0
  604. package/rules/all-caps-shouting.yaml +2 -2
  605. package/rules/announced-count-mismatch.yaml +2 -2
  606. package/rules/bare-url-mix.yaml +2 -2
  607. package/rules/bracket-nesting.yaml +2 -2
  608. package/rules/bracket-width-consistency.yaml +2 -2
  609. package/rules/broken-link.yaml +2 -2
  610. package/rules/cliche.yaml +4 -3
  611. package/rules/code-fence-language-mix.yaml +2 -2
  612. package/rules/comparative-without-baseline.yaml +2 -2
  613. package/rules/concrete-evidence-density.yaml +1 -0
  614. package/rules/contraction-consistency.yaml +2 -2
  615. package/rules/dangling-figure-reference.yaml +2 -2
  616. package/rules/date-without-year.yaml +10 -2
  617. package/rules/defined-term-form.yaml +2 -2
  618. package/rules/doubled-punctuation.yaml +4 -4
  619. package/rules/doubled-word.yaml +2 -2
  620. package/rules/duplicate-definition.yaml +2 -2
  621. package/rules/duplicate-heading.yaml +2 -2
  622. package/rules/duration-mismatch.yaml +2 -2
  623. package/rules/email-greeting-closing.yaml +2 -2
  624. package/rules/email-subject-length.yaml +2 -2
  625. package/rules/empty-table-cell.yaml +2 -2
  626. package/rules/footnote-mismatch.yaml +2 -2
  627. package/rules/fullwidth-alnum-consistency.yaml +2 -2
  628. package/rules/heading-echo.yaml +2 -2
  629. package/rules/ime-residue.yaml +2 -2
  630. package/rules/kanji-compound-slip.yaml +67 -0
  631. package/rules/kutoten-consistency.yaml +4 -4
  632. package/rules/latin-spacing.yaml +2 -2
  633. package/rules/list-item-form-mix.yaml +2 -2
  634. package/rules/max-kanji-continuous.yaml +6 -4
  635. package/rules/max-sentence-length.yaml +2 -2
  636. package/rules/modal-conflict.yaml +1 -0
  637. package/rules/nado-closed-list.yaml +2 -2
  638. package/rules/ngram-repetition.yaml +2 -2
  639. package/rules/no-doubled-joshi.yaml +2 -2
  640. package/rules/no-mixed-desumasu.yaml +3 -3
  641. package/rules/no-nakaguro-parallel.yaml +2 -0
  642. package/rules/number-without-unit.yaml +9 -4
  643. package/rules/numbering-gap.yaml +7 -2
  644. package/rules/numeral-sentence-start.yaml +2 -2
  645. package/rules/obligation-without-deadline.yaml +2 -2
  646. package/rules/orthographic-variant.yaml +2 -2
  647. package/rules/oxford-comma-consistency.yaml +3 -3
  648. package/rules/preamble-length.yaml +3 -2
  649. package/rules/range-notation-consistency.yaml +2 -2
  650. package/rules/requirement-smell.yaml +3 -3
  651. package/rules/table-header-variant.yaml +2 -2
  652. package/rules/teki-overuse.yaml +3 -2
  653. package/rules/title-length.yaml +2 -2
  654. package/rules/topic-predicate-distance.yaml +2 -2
  655. package/rules/total-mismatch.yaml +2 -2
  656. package/rules/translationese-density.yaml +2 -2
  657. package/rules/undefined-acronym.yaml +5 -2
  658. package/rules/undefined-term.yaml +2 -2
  659. package/rules/unfilled-placeholder.yaml +4 -4
  660. package/rules/unqualified-superlative.yaml +1 -1
  661. package/rules/unused-definition.yaml +2 -2
  662. package/rules/use-before-definition.yaml +2 -2
  663. package/rules/vague-word-density.yaml +2 -2
  664. package/skills/chaff/SKILL.md +7 -1
  665. package/src/announced-count.ts +35 -8
  666. package/src/chronology-rows.ts +86 -0
  667. package/src/company-name-run.ts +37 -0
  668. package/src/compound-head.ts +25 -0
  669. package/src/date-format.ts +43 -4
  670. package/src/derived/count-per-period.ts +28 -0
  671. package/src/detectors/acronym-context.ts +30 -1
  672. package/src/detectors/acronym-expansion.ts +54 -6
  673. package/src/detectors/acronym-known.ts +40 -0
  674. package/src/detectors/acronym-link.ts +75 -0
  675. package/src/detectors/acronym-mention.ts +44 -0
  676. package/src/detectors/acronym-name.ts +29 -6
  677. package/src/detectors/addressee-edge.ts +16 -0
  678. package/src/detectors/addressee-title-edge.ts +39 -0
  679. package/src/detectors/announced-count.ts +1 -0
  680. package/src/detectors/bare-comparative.ts +44 -3
  681. package/src/detectors/blank-structure.ts +21 -10
  682. package/src/detectors/bracket-specified.ts +25 -0
  683. package/src/detectors/broken-link.ts +26 -2
  684. package/src/detectors/capitalised-term.ts +26 -2
  685. package/src/detectors/caps-caption.ts +76 -0
  686. package/src/detectors/caps-phrase.ts +17 -0
  687. package/src/detectors/char-shape.ts +73 -14
  688. package/src/detectors/citation-sentence.ts +44 -0
  689. package/src/detectors/cited-title.ts +15 -3
  690. package/src/detectors/contraction-mention.ts +24 -0
  691. package/src/detectors/counter-edge.ts +17 -2
  692. package/src/detectors/dash-break.ts +45 -0
  693. package/src/detectors/date-any-year.ts +34 -9
  694. package/src/detectors/date-format.ts +2 -1
  695. package/src/detectors/date-year.ts +64 -16
  696. package/src/detectors/deadline-unit.ts +40 -0
  697. package/src/detectors/defined-term-form.ts +32 -12
  698. package/src/detectors/definition-use.ts +17 -9
  699. package/src/detectors/derived-numbers.ts +19 -4
  700. package/src/detectors/document-shape.ts +20 -1
  701. package/src/detectors/doubled-across-aside.ts +36 -0
  702. package/src/detectors/doubled-punctuation.ts +28 -7
  703. package/src/detectors/doubled-word.ts +2 -1
  704. package/src/detectors/duplicate-heading.ts +26 -3
  705. package/src/detectors/ellipsis.ts +16 -1
  706. package/src/detectors/email-letter.ts +142 -23
  707. package/src/detectors/field-label.ts +25 -0
  708. package/src/detectors/footnote-mismatch.ts +39 -7
  709. package/src/detectors/fullwidth-alnum.ts +9 -1
  710. package/src/detectors/graded-step.ts +52 -0
  711. package/src/detectors/gram-openers.ts +50 -0
  712. package/src/detectors/gram-place.ts +10 -1
  713. package/src/detectors/gram-predicate.ts +43 -3
  714. package/src/detectors/heading-echo.ts +31 -3
  715. package/src/detectors/heading-record-rhythm.ts +57 -0
  716. package/src/detectors/ime-residue.ts +4 -3
  717. package/src/detectors/kanji-compound-slip.ts +61 -0
  718. package/src/detectors/kutoten-consistency.ts +102 -14
  719. package/src/detectors/lexicon.ts +18 -5
  720. package/src/detectors/link-shape.ts +10 -3
  721. package/src/detectors/list-item-ending.ts +51 -0
  722. package/src/detectors/list-parallel.ts +158 -33
  723. package/src/detectors/list-sentence.ts +5 -1
  724. package/src/detectors/mark-shape.ts +89 -10
  725. package/src/detectors/mentioned-phrase.ts +38 -0
  726. package/src/detectors/middle-dot.ts +7 -2
  727. package/src/detectors/modal-conflict.ts +5 -2
  728. package/src/detectors/name-variant.ts +6 -0
  729. package/src/detectors/notice-paragraph.ts +33 -0
  730. package/src/detectors/number-style.ts +14 -2
  731. package/src/detectors/number-unit.ts +28 -1
  732. package/src/detectors/numeral-opener.ts +27 -1
  733. package/src/detectors/obligation-without-deadline.ts +29 -4
  734. package/src/detectors/open-end-class.ts +78 -0
  735. package/src/detectors/open-end-condition.ts +40 -0
  736. package/src/detectors/open-end-names.ts +9 -3
  737. package/src/detectors/open-end-question.ts +50 -0
  738. package/src/detectors/open-end-scope.ts +62 -0
  739. package/src/detectors/opening-date.ts +47 -0
  740. package/src/detectors/ordinary-phrase.ts +62 -0
  741. package/src/detectors/organisation-run.ts +18 -2
  742. package/src/detectors/orthographic-variant.ts +124 -25
  743. package/src/detectors/orthography.ts +15 -2
  744. package/src/detectors/oxford-comma.ts +74 -3
  745. package/src/detectors/person-consistency.ts +5 -3
  746. package/src/detectors/phrase-match.ts +16 -5
  747. package/src/detectors/placeholder-text.ts +18 -3
  748. package/src/detectors/placeholder.ts +10 -3
  749. package/src/detectors/postcode-end.ts +16 -0
  750. package/src/detectors/prose-total-words.ts +18 -0
  751. package/src/detectors/range-notation.ts +26 -6
  752. package/src/detectors/registry/kanji-compound-slip.ts +4 -0
  753. package/src/detectors/registry/phrase-in-use.ts +4 -0
  754. package/src/detectors/requirement-smell.ts +45 -8
  755. package/src/detectors/scaled-figure-unit.ts +103 -0
  756. package/src/detectors/sentence-counts.ts +64 -12
  757. package/src/detectors/sentence-ending.ts +12 -3
  758. package/src/detectors/sentence-length.ts +17 -4
  759. package/src/detectors/sentence-load.ts +9 -2
  760. package/src/detectors/signals.ts +50 -53
  761. package/src/detectors/structure-tree.ts +14 -14
  762. package/src/detectors/structure.ts +2 -1
  763. package/src/detectors/subject-name-line.ts +66 -0
  764. package/src/detectors/superlative-name.ts +10 -0
  765. package/src/detectors/table-header.ts +15 -1
  766. package/src/detectors/technical-docs.ts +5 -1
  767. package/src/detectors/term-mention-sentence.ts +31 -0
  768. package/src/detectors/titled-run.ts +9 -4
  769. package/src/detectors/token-shape.ts +16 -5
  770. package/src/detectors/undefined-term.ts +8 -0
  771. package/src/detectors/unknown-word.ts +1 -1
  772. package/src/detectors/vague-density.ts +20 -4
  773. package/src/document-paragraphs.ts +27 -0
  774. package/src/document.ts +3 -23
  775. package/src/figure-references.ts +7 -2
  776. package/src/format-template.ts +15 -0
  777. package/src/formula-brackets.ts +36 -0
  778. package/src/html/html-markdown.ts +2 -1
  779. package/src/html/html-site-chrome.ts +104 -0
  780. package/src/joined-view.ts +1 -0
  781. package/src/kanji-compound-slip.ts +98 -0
  782. package/src/latin-company-form.ts +38 -0
  783. package/src/latin-word-boundary.ts +64 -0
  784. package/src/leading-label.ts +15 -0
  785. package/src/lexicon-genres.ts +1 -1
  786. package/src/link-shape.ts +31 -0
  787. package/src/link-title.ts +38 -0
  788. package/src/list-item-paragraphs.ts +22 -0
  789. package/src/literal-quote.ts +55 -0
  790. package/src/nado-closed-list.ts +48 -5
  791. package/src/name-misspelt-usual.ts +25 -0
  792. package/src/name-separator.ts +27 -2
  793. package/src/nominal-stem.ts +62 -5
  794. package/src/notice-header.ts +57 -0
  795. package/src/person-forms.ts +15 -0
  796. package/src/plugin.ts +5 -0
  797. package/src/preamble-paragraphs.ts +13 -3
  798. package/src/sentence-load.ts +14 -3
  799. package/src/spacing-code.ts +5 -1
  800. package/src/split-noun.ts +63 -0
  801. package/src/structure/attached-parts.ts +47 -0
  802. package/src/structure/build.ts +7 -4
  803. package/src/structure/contents-lines.ts +63 -0
  804. package/src/structure/defining-names.ts +155 -0
  805. package/src/structure/definition-use.ts +149 -32
  806. package/src/structure/gerund-phrase.ts +31 -0
  807. package/src/structure/issues.ts +7 -3
  808. package/src/structure/list-lead-in.ts +94 -0
  809. package/src/structure/modal-conflict.ts +42 -7
  810. package/src/structure/negated-act.ts +49 -0
  811. package/src/structure/numbering.ts +24 -9
  812. package/src/structure/prose-total.ts +20 -6
  813. package/src/structure/repeated-number.ts +110 -0
  814. package/src/structure/rounded-amount.ts +55 -0
  815. package/src/structure/side-step.ts +21 -0
  816. package/src/structure/spanned-label-blank.ts +39 -0
  817. package/src/structure/universal.ts +33 -9
  818. package/src/structure/unspaced-heading.ts +27 -0
  819. package/src/structure/written-list-path.ts +46 -0
  820. package/src/structure/written-resolve.ts +16 -9
  821. package/src/title-line.ts +53 -0
  822. package/src/topic-clause.ts +109 -0
  823. package/src/uncounted-particles.ts +72 -0
@@ -0,0 +1,87 @@
1
+ const COMMA = new Set(["、", ","]);
2
+ const NOMINAL = new Set(["NOUN", "PRON", "PROPN"]);
3
+ const PREDICATE = new Set(["VERB", "AUX", "ADJ", "SCONJ"]);
4
+ /** The nouns a restrictive であって leads to: 失業者であって、支援の必要がある者. */
5
+ const RESTRICTED_HEADS = new Set(["者", "もの", "物", "方"]);
6
+ /** Verbs that report what others say or think (〜と言われている). とされる is a rule's wording, not a report. */
7
+ const REPORTING = new Set(["言う", "思う", "考える", "見る", "伝える"]);
8
+ /**
9
+ * The copula that says what the topic is: で (ものである; read as a particle in 事業ではなく) and です. な before a noun is not a
10
+ * predicate.
11
+ */
12
+ const isCopula = (token) => token?.surface === "で" ? token.pos === "AUX" || token.pos === "ADP" : token?.pos === "AUX" && token.lemma === "です";
13
+ /** The words a copula is finished with before its conjunction: あり, ござい, ます, ませ, ん, the は of ではありません. */
14
+ const COPULA_TAIL = new Set(["ある", "ござる", "ます", "ん", "ぬ", "は"]);
15
+ const isCopulaTail = (token) => COPULA_TAIL.has(token.lemma ?? token.surface) || COPULA_TAIL.has(token.surface);
16
+ /** Whether the words just before end are a copula and its tail (ではありません, でございます, である). */
17
+ /** The first word at or before at that is not a copula's tail. Walks back only over the tail, so each call is short. */
18
+ const beforeTail = (tokens, at) => {
19
+ const token = tokens[at];
20
+ return token !== undefined && isCopulaTail(token) ? beforeTail(tokens, at - 1) : at;
21
+ };
22
+ const copulaBefore = (tokens, end) => isCopula(tokens[beforeTail(tokens, end - 1)]);
23
+ const isComma = (token) => COMMA.has(token?.surface ?? "");
24
+ /** A noun of its own, not a nominaliser (こと, の, ところ) that only turns the clause before it into a noun. */
25
+ const isOwnNoun = (token) => NOMINAL.has(token?.pos ?? "") && token?.features?.["NounType"] !== "Dependent";
26
+ const isParticle = (token, surface) => token.surface === surface && token.pos === "ADP";
27
+ /**
28
+ * The last place a subject of its own stands before the sentence's last word: a new topic (法律はありませんが) anywhere, or a
29
+ * noun with が that the final predicate takes (no comma after it: 動きが見られ始めている). A noun with が inside a condition
30
+ * (債務者が請求した場合、) is not one. -1 when there is none. A clause has a subject of its own after it when this is past it.
31
+ */
32
+ const lastOwnSubject = (tokens, last) => {
33
+ const lastComma = tokens.findLastIndex((token, at) => at < last && isComma(token));
34
+ return tokens.findLastIndex((token, at) => at < last && isOwnNoun(tokens[at - 1]) && (isParticle(token, "は") || (isParticle(token, "が") && at > lastComma)));
35
+ };
36
+ /** The words of the clause after a comma at from, up to the next clause stopped by a comma, or the sentence's last word. */
37
+ const nextClause = (tokens, from, last) => {
38
+ const stop = tokens.findIndex((token, at) => at > from && at < last && isComma(token) && PREDICATE.has(tokens[at - 1]?.pos ?? ""));
39
+ return tokens.slice(from + 1, stop === -1 ? last : stop);
40
+ };
41
+ /** であって that narrows a class to a head noun after it (失業者であって、支援の必要がある者の…): the topic's predicate is still to come. */
42
+ const narrowsToHead = (tokens, comma, last) => nextClause(tokens, comma, last).some((token, at, clause) => token.pos === "NOUN" && RESTRICTED_HEADS.has(token.surface) && clause[at + 1]?.surface !== "は");
43
+ /** A copula with が or て and a comma (〜ではありませんが、, 〜でございますが、, 〜であって、 that does not narrow to a head noun). */
44
+ const closesCopula = (tokens, at, last) => {
45
+ const token = tokens[at];
46
+ if (token?.pos !== "SCONJ" || (token.surface !== "が" && token.surface !== "て"))
47
+ return false;
48
+ if (!isComma(tokens[at + 1]) || !copulaBefore(tokens, at))
49
+ return false;
50
+ return token.surface === "が" || !narrowsToHead(tokens, at + 1, last);
51
+ };
52
+ /** A quotation the sentence reports in the passive (〜だと言われているが), whose topic is inside the quotation. */
53
+ const closesReport = (tokens, at) => {
54
+ const token = tokens[at];
55
+ return token?.surface === "と" && token.pos === "ADP" && REPORTING.has(tokens[at + 1]?.lemma ?? "") && tokens[at + 2]?.features?.["Voice"] === "Pass";
56
+ };
57
+ /** A clause the topic's predicate closes for certain. */
58
+ const closesSurely = (tokens, at, last) => closesCopula(tokens, at, last) || closesReport(tokens, at);
59
+ /** 〜にあるところ、 / 〜したところ、: a clause the nominaliser ところ closes after a predicate. */
60
+ const closesWithTokoro = (tokens, at) => tokens[at]?.surface === "ところ" && tokens[at]?.features?.["NounType"] === "Dependent" && PREDICATE.has(tokens[at - 1]?.pos ?? "");
61
+ /** 〜であるならば、: a copula's conditional. */
62
+ const closesWithCondition = (tokens, at) => tokens[at]?.surface === "ば" && tokens[at]?.pos === "SCONJ" && tokens[at - 1]?.surface === "なら" && tokens[at - 1]?.lemma === "だ";
63
+ /**
64
+ * A clause that may close the topic's predicate, when a new subject follows, each stopped by a comma: a copula after ない or
65
+ * ため (〜ではなく、, 〜であるため、), a copula's condition (〜であるならば、), ところ (〜にあるところ、), and a continuing verb
66
+ * (〜を続けており、).
67
+ */
68
+ const closesIfNewSubject = (tokens, at) => {
69
+ const token = tokens[at];
70
+ if (!isComma(tokens[at + 1]))
71
+ return false;
72
+ if (token?.surface === "ため" || token?.lemma === "ない")
73
+ return copulaBefore(tokens, at);
74
+ if (closesWithTokoro(tokens, at) || closesWithCondition(tokens, at))
75
+ return true;
76
+ return token?.pos === "VERB" && token.lemma === "おる" && token.features?.["Bound"] === "Yes";
77
+ };
78
+ /**
79
+ * The index of the word that ends the topic's own clause, between the topic and the sentence's last word, or undefined when the
80
+ * topic's predicate is the one the sentence ends on.
81
+ */
82
+ export const topicClauseEnd = (tokens, topic, last) => {
83
+ const subject = lastOwnSubject(tokens, last);
84
+ const end = tokens.findIndex((_, at) => at > topic && at < last && (closesSurely(tokens, at, last) || (closesIfNewSubject(tokens, at) && subject > at)));
85
+ return end === -1 ? undefined : end;
86
+ };
87
+ //# sourceMappingURL=topic-clause.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"topic-clause.js","sourceRoot":"","sources":["../src/topic-clause.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { Lexicon, Token } from "./plugin.ts";
2
+ /** The words that decide which particle-looking tokens are not links in a chain of particles. */
3
+ export type UncountedWords = {
4
+ /** The particles a chain is made of (の). */
5
+ readonly particles: readonly string[];
6
+ /** Words written as a number: every character one of these, or a decimal digit. */
7
+ readonly numeralChars: ReadonlySet<string>;
8
+ /** Words that number a provision and may be followed by a branch number (第70条の2: 条). */
9
+ readonly counters: readonly string[];
10
+ };
11
+ export declare const isNumeral: (surface: string, numeralChars: ReadonlySet<string>) => boolean;
12
+ /** The particle tokens of a sentence that join the parts of a number (第70条の2) and are not links of a chain. */
13
+ export declare const uncountedParticles: (tokens: readonly Token[], words: UncountedWords) => ReadonlySet<Token>;
14
+ /** The words for `uncountedParticles`, read from the document's lexicons. */
15
+ export declare const uncountedWordsOf: (lexicons: Readonly<Record<string, Lexicon>>, particles: readonly string[]) => UncountedWords;
16
+ /** The tokens of a sentence without the particles that join the parts of a number. */
17
+ export declare const countedTokens: (tokens: readonly Token[], words: UncountedWords) => readonly Token[];
18
+ //# sourceMappingURL=uncounted-particles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uncounted-particles.d.ts","sourceRoot":"","sources":["../src/uncounted-particles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAElD,iGAAiG;AACjG,MAAM,MAAM,cAAc,GAAG;IAC3B,4CAA4C;IAC5C,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,mFAAmF;IACnF,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3C,wFAAwF;IACxF,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC,CAAC;AAIF,eAAO,MAAM,SAAS,GAAI,SAAS,MAAM,EAAE,cAAc,WAAW,CAAC,MAAM,CAAC,KAAG,OAC2B,CAAC;AAqC3G,+GAA+G;AAC/G,eAAO,MAAM,kBAAkB,GAAI,QAAQ,SAAS,KAAK,EAAE,EAAE,OAAO,cAAc,KAAG,WAAW,CAAC,KAAK,CACqB,CAAC;AAM5H,6EAA6E;AAC7E,eAAO,MAAM,gBAAgB,GAAI,UAAU,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,WAAW,SAAS,MAAM,EAAE,KAAG,cAI3G,CAAC;AAEH,sFAAsF;AACtF,eAAO,MAAM,aAAa,GAAI,QAAQ,SAAS,KAAK,EAAE,EAAE,OAAO,cAAc,KAAG,SAAS,KAAK,EAG7F,CAAC"}
@@ -0,0 +1,47 @@
1
+ const DECIMAL_DIGITS = /^\p{Nd}+$/u;
2
+ export const isNumeral = (surface, numeralChars) => DECIMAL_DIGITS.test(surface) || (surface !== "" && [...surface].every((char) => numeralChars.has(char)));
3
+ const numeralAt = (tokens, at, words) => {
4
+ const token = tokens[at];
5
+ return token !== undefined && isNumeral(token.surface, words.numeralChars);
6
+ };
7
+ /** 第70条, 第3項: a counter right after a number. */
8
+ const numberedCounterAt = (tokens, at, words) => {
9
+ const token = tokens[at];
10
+ return token !== undefined && words.counters.includes(token.surface) && numeralAt(tokens, at - 1, words);
11
+ };
12
+ const NOMINAL = new Set(["NOUN", "PROPN"]);
13
+ const LETTER = /\p{L}/u;
14
+ /** Where the run of number tokens that starts at `at` ends (三十 may be two tokens). */
15
+ const numeralRunEnd = (tokens, at, words) => {
16
+ const end = tokens.findIndex((token, index) => index >= at && !isNumeral(token.surface, words.numeralChars));
17
+ return end === -1 ? tokens.length : end;
18
+ };
19
+ /**
20
+ * A word after the number makes it a quantity (資料2-1の4ページ: page 4 of it), not a branch number. A word that opens
21
+ * the next number (第 of 第70条の2第1項) is not one.
22
+ */
23
+ const isWordAt = (tokens, at, words) => {
24
+ const token = tokens[at];
25
+ return token !== undefined && NOMINAL.has(token.pos) && LETTER.test(token.surface) && !numeralAt(tokens, at + 1, words);
26
+ };
27
+ /** 第70条の2, 70の2-8の2, 第2の2: the particle joins a branch number to the number before it, so it is part of the number. */
28
+ const isNumberingConnector = (tokens, at, words) => numeralAt(tokens, at + 1, words) &&
29
+ !isWordAt(tokens, numeralRunEnd(tokens, at + 1, words), words) &&
30
+ (numeralAt(tokens, at - 1, words) || numberedCounterAt(tokens, at - 1, words));
31
+ /** The particle tokens of a sentence that join the parts of a number (第70条の2) and are not links of a chain. */
32
+ export const uncountedParticles = (tokens, words) => new Set(tokens.filter((token, at) => words.particles.includes(token.surface) && isNumberingConnector(tokens, at, words)));
33
+ const COUNTER_LEXICON = "numbering-counter";
34
+ const NUMBER_LEXICON = "number-word";
35
+ const NUMERAL_GROUPS = ["digit", "place"];
36
+ /** The words for `uncountedParticles`, read from the document's lexicons. */
37
+ export const uncountedWordsOf = (lexicons, particles) => ({
38
+ particles,
39
+ numeralChars: new Set((lexicons[NUMBER_LEXICON] ?? []).filter((entry) => NUMERAL_GROUPS.includes(entry.group)).map((entry) => entry.pattern)),
40
+ counters: (lexicons[COUNTER_LEXICON] ?? []).map((entry) => entry.pattern),
41
+ });
42
+ /** The tokens of a sentence without the particles that join the parts of a number. */
43
+ export const countedTokens = (tokens, words) => {
44
+ const uncounted = uncountedParticles(tokens, words);
45
+ return uncounted.size === 0 ? tokens : tokens.filter((token) => !uncounted.has(token));
46
+ };
47
+ //# sourceMappingURL=uncounted-particles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uncounted-particles.js","sourceRoot":"","sources":["../src/uncounted-particles.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chaffjs",
3
- "version": "0.35.0",
3
+ "version": "0.37.0",
4
4
  "description": "Prose validation harness. Finds what is hard to read, and never rewrites it for you.",
5
5
  "keywords": [
6
6
  "chaff",
@@ -88,8 +88,8 @@
88
88
  },
89
89
  "dependencies": {
90
90
  "@anthropic-ai/sdk": "^0.125.0",
91
- "@chaffjs/lang-en": "0.32.0",
92
- "@chaffjs/lang-ja": "0.34.0",
91
+ "@chaffjs/lang-en": "0.34.0",
92
+ "@chaffjs/lang-ja": "0.36.0",
93
93
  "character-entities": "^2.0.2",
94
94
  "mdast-util-from-markdown": "^2.0.3",
95
95
  "mdast-util-frontmatter": "^2.0.1",
@@ -3,6 +3,7 @@ layer: L3
3
3
  status: stable
4
4
  how_to_find: sentence-conjunctive-count
5
5
  word_list: adversative-particle
6
+ extra_word_lists: [adversative-ga-prefatory]
6
7
  requires: [pos]
7
8
  languages: [ja]
8
9
  severity: info
@@ -41,8 +41,8 @@ example:
41
41
  Do not delete the log. Do not delete this file before the audit.
42
42
 
43
43
  not_flagged:
44
- ja: 三語以上の連なりだけを見ます。略語の並び(文書のほかの所で小文字で書かれない語)とコードは見ません。仕様書の MUST や SHALL は慣習の大文字として数えません。段落の頭に置いた大文字の見出し語(「AGENCY:」「WORKING GROUP MEMBERS」のように、コロンで終わるか一行で段落になるもの)と、本文でその見出し語を挙げた所も見ません。法令と文学の文書では既定で止めています(大文字で目立たせる決まりや、題を大文字で組む慣習があるため)。
45
- en: Only runs of three or more words. Runs of acronyms (words never written in lower case elsewhere) and code are not reported, and MUST or SHALL in a specification count as conventional capitals. A caption in capitals that opens a paragraph and ends in a colon or stands alone ("AGENCY:", "WORKING GROUP MEMBERS"), and prose naming such a caption, are not reported either. The legal and literature presets turn it off, since contracts set disclaimers in capitals by rule and older texts set titles that way.
44
+ ja: 三語以上の連なりだけを見ます。略語の並び(文書のほかの所で小文字で書かれない語)とコードは見ません。仕様書の MUST や SHALL は慣習の大文字として数えません。段落の頭に置いた大文字の見出し語(「AGENCY:」「WORKING GROUP MEMBERS」のように、コロンで終わるか一行で段落になるもの)と、本文でその見出し語を挙げた所も見ません。全部の行が大文字で文で終わらない段落(「BOARD OF GOVERNORS」で始まるレターヘッドや宛名、議事録が一行で立てる「OPENING STATEMENT OF HON. JANE DOE,」のような見出し)と、名簿の欄の「JANE Q. DOE, Ohio」のように大文字の名前の後ろに普通の書き方の地名や役職が続くものも見ません。法令と文学の文書では既定で止めています(大文字で目立たせる決まりや、題を大文字で組む慣習があるため)。
45
+ en: Only runs of three or more words. Runs of acronyms (words never written in lower case elsewhere) and code are not reported, and MUST or SHALL in a specification count as conventional capitals. A caption in capitals that opens a paragraph and ends in a colon or stands alone ("AGENCY:", "WORKING GROUP MEMBERS"), and prose naming such a caption, are not reported either. Nor is a paragraph whose lines are all in capitals and end no sentence, such as a letterhead, an addressee block ("BOARD OF GOVERNORS") or a heading a transcript sets on a line of its own ("OPENING STATEMENT OF HON. JANE DOE,"), nor a roster entry that gives a name in capitals and the place or office in ordinary case ("JANE Q. DOE, Ohio"). The legal and literature presets turn it off, since contracts set disclaimers in capitals by rule and older texts set titles that way.
46
46
  level_meaning:
47
47
  ja: "{limit} 箇所あれば指摘"
48
48
  en: reported once there are {limit}
@@ -9,8 +9,8 @@ name:
9
9
  en: A list that does not have the number of items announced
10
10
 
11
11
  why:
12
- ja: 「以下の3点」と書いたのに、すぐ下の箇条書きが2つや4つだと、読み手は抜けた項目があるのか、数え間違いなのかを確かめることになります。項目を足したり消したりしたあとに、予告の数を直し忘れると起きます。箇条書きのすぐ前の文が、「以下の」「次の」のような先を指す語か、終わりのコロン(:)と一緒に数(3点、2つ、4項目)を書いているときだけ、その数を箇条書きのいちばん外側の項目の数と比べます。「出席者(6名):田中、鈴木、…」のように、ラベルの後ろの括弧に数を書き、コロンの後ろに読点やコンマで区切って名前を並べた行も、括弧の数と並べた名前の数を比べます。
13
- en: 'When a sentence says "the following three steps" and the list right below it has two or four, the reader has to check whether an item is missing or the count is wrong. It happens when an item is added or removed and the count is not updated. The number is compared with the items at the top level of the list only when the sentence right before the list announces it, with a word pointing ahead ("following", "below") or a colon at its end, and the number names what the list holds ("three steps", "two reasons"). A line with a count in brackets after a label and names after the colon, split at commas ("Attendees (6): Tanaka, Suzuki, ..."), is checked the same way: the count against the names listed.'
12
+ ja: 「以下の3点」と書いたのに、すぐ下の箇条書きが2つや4つだと、読み手は抜けた項目があるのか、数え間違いなのかを確かめることになります。項目を足したり消したりしたあとに、予告の数を直し忘れると起きます。箇条書きのすぐ前の文が、「以下の」「次の」のような先を指す語か、終わりのコロン(:)と一緒に数(3点、2つ、4項目)を書いているときだけ、その数を箇条書きのいちばん外側の項目の数と比べます。箇条書きのすぐ上が「3行要約」のように数と見出しの語だけの一行なら、その数も比べます。「出席者(6名):田中、鈴木、…」のように、ラベルの後ろの括弧に数を書き、コロンの後ろに読点やコンマで区切って名前を並べた行も、括弧の数と並べた名前の数を比べます。
13
+ en: 'When a sentence says "the following three steps" and the list right below it has two or four, the reader has to check whether an item is missing or the count is wrong. It happens when an item is added or removed and the count is not updated. The number is compared with the items at the top level of the list only when the sentence right before the list announces it, with a word pointing ahead ("following", "below") or a colon at its end, and the number names what the list holds ("three steps", "two reasons"). A line right above the list that holds only a number and a heading word ("Three-line summary") is compared too. A line with a count in brackets after a label and names after the colon, split at commas ("Attendees (6): Tanaka, Suzuki, ..."), is checked the same way: the count against the names listed.'
14
14
 
15
15
  message:
16
16
  ja: 「{phrase}」と予告していますが、すぐ下の箇条書きは{listed}項目です
@@ -51,8 +51,8 @@ example:
51
51
  Prices are on [the pricing page](https://example.com/pricing). Send questions through [the contact form](https://example.com/contact) today.
52
52
 
53
53
  not_flagged:
54
- ja: 山括弧で囲んだ URL(<https://…>)、言葉が URL のリンク、コードと引用の中の URL は指しません。参照の形のリンク([言葉][1])は言葉のリンクに数えません。言葉のリンクが指摘に要る数に届かない文書と、URL をそのまま書くほうが多い文書も指しません。
55
- en: A URL in angle brackets ("<https://…>"), a link whose text is the URL, and URLs in code or quotations are not reported; reference-style links ("[text][1]") are not counted as worded links; nor is a document with fewer worded links than the level needs, or one where bare URLs are not the few.
54
+ ja: 山括弧で囲んだ URL(<https://…>)、言葉が URL のリンク、コードと引用の中の URL、項目の値として行に一つだけ書いた URL(**ライセンス本文** https://…)、本文に書いたデータの例の値({"home":"https://…"})は指しません。参照の形のリンク([言葉][1])は言葉のリンクに数えません。言葉のリンクが指摘に要る数に届かない文書と、URL をそのまま書くほうが多い文書も指しません。
55
+ en: A URL in angle brackets ("<https://…>"), a link whose text is the URL, URLs in code or quotations, a URL that is a field's value alone on its line ("**Licence text** https://…"), and one that is a value in an example payload written in the text (`{"home":"https://…"}`) are not reported; reference-style links ("[text][1]") are not counted as worded links; nor is a document with fewer worded links than the level needs, or one where bare URLs are not the few.
56
56
  level_meaning:
57
57
  ja: 言葉のリンクが {limit} 個以上ある文書で指摘
58
58
  en: reported in a document with {limit} or more worded links
@@ -41,8 +41,8 @@ example:
41
41
  The fee is waived on request for members, including student members under 25.
42
42
 
43
43
  not_flagged:
44
- ja: 二重までの括弧、開きの無い閉じ括弧(「1)」)、コードと数式($…$)の中の括弧、波括弧は数えません。
45
- en: Two levels of brackets, a closing bracket with no opener ("1)"), brackets in code or in a formula ($…$), and curly braces are not counted.
44
+ ja: 二重までの括弧、開きの無い閉じ括弧(「1)」)、コードと数式($…$)の中の括弧、波括弧は数えません。そのとおりに打ち込む文字列の引用(件名に「応募(総務課)」と記載、「【様式】(氏名)」とファイル名を変更)は、中の括弧が文字列の一部で外せないので、一つの括弧として数えます。
45
+ en: Two levels of brackets, a closing bracket with no opener ("1)"), brackets in code or in a formula ($…$), and curly braces are not counted. A quotation of a string to type as it stands (an e-mail subject, a file name, as in with the subject line “Entry (Training)”) counts as one bracket, since its own brackets cannot be taken out.
46
46
  level_meaning:
47
47
  ja: 括弧の重なり {limit} 重まで
48
48
  en: brackets nested up to {limit} deep
@@ -44,8 +44,8 @@ example:
44
44
  会議(定例)は月曜です。報告(月次)は金曜です。資料(最新版)を配ります。
45
45
 
46
46
  not_flagged:
47
- ja: 日本語の字に接する括弧だけを数えます。英語の中の括弧(f(x)、API(s))、コード、鉤括弧で引いたものの中は数えません。
48
- en: Only brackets touching Japanese text. Brackets in English text (f(x)), code, and 「」 quotations are not counted.
47
+ ja: 日本語の字に接する括弧だけを数えます。英語の中の括弧(f(x)、API(s))、式の括弧(賃金 × (1 - 時間 ÷ 月平均))、コード、鉤括弧で引いたものの中、行の頭のリンクで引いた外のページの題名(- [題名 (版)](https://…))は数えません。
48
+ en: Only brackets touching Japanese text. Brackets in English text (f(x)), brackets in a formula (賃金 × (1 - 時間 ÷ 月平均)), code, 「」 quotations, and the title of an outside page quoted by a link at a line's head (- [Title (draft)](https://…)) are not counted.
49
49
  level_meaning:
50
50
  ja: 少ないほうの書き方が {limit} 箇所あれば指摘
51
51
  en: reported once the less common way appears {limit} times
@@ -61,5 +61,5 @@ example:
61
61
  Gather the tools. See [Setup](#setup) for more.
62
62
 
63
63
  not_flagged:
64
- ja: 見出しの名前は字と数字だけで比べ、大文字小文字や記号の違いは問いません。「[1][2]」のような文献の番号、「A[i][j]」のような添字、使われていない定義も指しません。
65
- en: Heading anchors are compared on letters and digits only, ignoring case and punctuation. Citation numbers ("[1][2]"), subscripts ("A[i][j]") and definitions no link uses are not reported.
64
+ ja: 見出しの名前は字と数字だけで比べ、大文字小文字や記号の違いは問いません。「[1][2]」のような文献の番号、「A[i][j]」のような添字、使われていない定義、サイトが定義を足す名前を省いた画像の参照(「![完了][]」の印)も指しません。
65
+ en: Heading anchors are compared on letters and digits only, ignoring case and punctuation. Citation numbers ("[1][2]"), subscripts ("A[i][j]"), definitions no link uses and an image reference with its label left out ("![Complete][]", a status icon the site defines) are not reported.
package/rules/cliche.yaml CHANGED
@@ -1,8 +1,9 @@
1
1
  id: cliche
2
2
  layer: L2
3
3
  status: stable
4
- how_to_find: phrase-match
4
+ how_to_find: phrase-in-use
5
5
  word_list: cliche
6
+ extra_word_lists: [mention-cue]
6
7
  requires: [pos]
7
8
  languages: [ja, en]
8
9
  severity: info
@@ -47,8 +48,8 @@ example:
47
48
  The new cache cuts load time from 2 seconds to 0.5.
48
49
 
49
50
  not_flagged:
50
- ja: 一覧にある言い回しだけを見ます。見出しの中は見ず、本文の文だけを見ます。ほかの規則が見る言い回し(closing-cliche の「いかがでしたか」、ai-tell の「深く掘り下げる」「game-changer」、empty-intensifier の「needless to say」)は入れていません。「結論から言うと」は人の記事にも同じくらいあるので、「〜まとめ」「〜な件」は普通の文(まとめました、重要な件)と分けられないので見ません。文学と講演の書き起こしは対象にしません。
51
- en: Only the phrases on chaff's list are checked, in body sentences; headings are not read. Phrases another rule reads (いかがでしたか in closing-cliche, "game-changer" in ai-tell, "needless to say" in empty-intensifier) are not on it. In Japanese, 結論から言うと is left out because human articles use it as often, and 〜まとめ and 〜な件 because ordinary sentences share them (まとめました, 重要な件). Literature and speech transcripts are not checked.
51
+ ja: 一覧にある言い回しだけを見ます。見出しの中は見ず、本文の文だけを見ます。ほかの規則が見る言い回し(closing-cliche の「いかがでしたか」、ai-tell の「深く掘り下げる」「game-changer」、empty-intensifier の「needless to say」)は入れていません。「結論から言うと」は人の記事にも同じくらいあるので、「〜まとめ」「〜な件」は普通の文(まとめました、重要な件)と分けられないので見ません。文学と講演の書き起こしは対象にしません。言い回しを言葉として名指しているだけのもの(「徹底解説」という言い方、the phrase "low-hanging fruit")も指しません。
52
+ en: Only the phrases on chaff's list are checked, in body sentences; headings are not read. Phrases another rule reads (いかがでしたか in closing-cliche, "game-changer" in ai-tell, "needless to say" in empty-intensifier) are not on it. In Japanese, 結論から言うと is left out because human articles use it as often, and 〜まとめ and 〜な件 because ordinary sentences share them (まとめました, 重要な件). Literature and speech transcripts are not checked. A phrase that is only named as a term ("when saying raising the bar", the phrase "low-hanging fruit", 「徹底解説」という言い方) is not reported.
52
53
  level_meaning:
53
54
  ja: 当てはまる言い回しが {limit} 箇所あれば指摘
54
55
  en: reported once there are {limit}
@@ -121,8 +121,8 @@ example:
121
121
  ```
122
122
 
123
123
  not_flagged:
124
- ja: 字下げだけのコードブロック、引用の中のブロックは見ません。言語名の無いブロックが {limit} 個を超えるとき、または言語名のあるブロックより多いときは、使い分けとみなして指しません。
125
- en: Indented code blocks and blocks inside a quotation are not read. When more than {limit} blocks lack a language, or they are as many as those with one, it is taken as a choice and not reported.
124
+ ja: 字下げだけのコードブロック、引用の中のブロック、書式の型だけを書いたブロック(<MAJOR>.<MINOR>.<PATCH>)は見ません。言語名の無いブロックが {limit} 個を超えるとき、または言語名のあるブロックより多いときは、使い分けとみなして指しません。
125
+ en: Indented code blocks, blocks inside a quotation, and blocks that hold only a format template (<MAJOR>.<MINOR>.<PATCH>) are not read. When more than {limit} blocks lack a language, or they are as many as those with one, it is taken as a choice and not reported.
126
126
  level_meaning:
127
127
  ja: 言語名の無いブロックが {limit} 個以下で、ある方より少ないとき指摘
128
128
  en: reported when {limit} or fewer blocks lack a language and they are fewer than those with one
@@ -42,8 +42,8 @@ example:
42
42
  after: We rewrote the parser. The new engine is twice as fast as version 2.
43
43
 
44
44
  not_flagged:
45
- ja: 同じ文か直前の文に比べる相手(従来、以前、前回、昨年、「〜より」「〜に比べて」)がある比較、「より多くの」「より詳しく」のような決まった言い方、程度を言う語が続かない「さらに」(さらに、〜します)、条件の下の比較(入れるとより良くなる)は指しません。
46
- en: 'A comparison whose sentence or the one before names a baseline ("than", "previous", "before", "compared"), a comparative before a noun ("better results", read only in Japanese), a comparative that does not close its clause ("runs faster on large files"), and one under a condition or a hypothesis ("if it looks better", "would be easier") are not reported.'
45
+ ja: 同じ文か直前の文に比べる相手(従来、以前、前回、昨年、「〜より」「〜に比べて」「〜一方」)がある比較、「より多くの」「より詳しく」のような決まった言い方、程度を言う語が続かない「さらに」(さらに、〜します)、条件の下の比較(入れるとより良くなる)、今より良くする目当て(より良い社会、より良いものにする、より簡単にする)は指しません。
46
+ en: 'A comparison whose sentence or the one before names a baseline ("than", "previous", "before", "compared", "whereas"), one that goes past what was just named ("even better", "still faster"), a comparative before a noun ("better results", read only in Japanese), a comparative that does not close its clause ("runs faster on large files"), one under a condition or a hypothesis ("if it looks better", "would be easier"), and an aim to make something better than it is now (より良い社会, より良いものにする, より簡単にする in Japanese) are not reported.'
47
47
 
48
48
  rewrite:
49
49
  depth: light
@@ -31,6 +31,7 @@ off_for:
31
31
  academic: "Science writes in the passive, hedges its claims on purpose (may, suggest) and cites numbers as its evidence."
32
32
  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."
33
33
  speech: "A speech opens with greetings and closes with thanks: that is its form, not padding."
34
+ business/meeting-notes: "Minutes record what was said and decided; a section of members' opinions has no reason to carry a number, code or link."
34
35
 
35
36
  group: structure
36
37
  summary:
@@ -42,8 +42,8 @@ example:
42
42
  We don't store your password. We don't read your messages. We don't share your data. We don't sell your address.
43
43
 
44
44
  not_flagged:
45
- ja: 短縮形を使うかどうかは決めません。比べるのは同じ語の 2 つの形(「you're」と「you are」)だけで、別の語どうしは比べません。「you're」と書き、否定は「do not」と書く文書は揃っています。同じ語の 2 つの形が同じ回数なら、少ないほうが無いので指しません。
46
- en: Whether to use contractions is not decided. Only the two forms of the same word are compared ("you're" with "you are"), never different words, so a document that writes "you're" but keeps "do not" in full is consistent. When both forms of a word appear as often, there is no minority and nothing is pointed at.
45
+ ja: 短縮形を使うかどうかは決めません。比べるのは同じ語の 2 つの形(「you're」と「you are」)だけで、別の語どうしは比べません。「you're」と書き、否定は「do not」と書く文書は揃っています。同じ語の 2 つの形が同じ回数なら、少ないほうが無いので指しません。引用符で挙げた短い語句("Do Not Disturb"、‘we’re going to x’)は名前か例なので数えません。
46
+ en: Whether to use contractions is not decided. Only the two forms of the same word are compared ("you're" with "you are"), never different words, so a document that writes "you're" but keeps "do not" in full is consistent. When both forms of a word appear as often, there is no minority and nothing is pointed at. A short phrase in quotation marks ("Do Not Disturb", ‘we’re going to x’) is a name or an example and is not counted.
47
47
  level_meaning:
48
48
  ja: 同じ語の少ないほうの書き方が {limit} 箇所以下のとき指摘
49
49
  en: reported when the minority form of a word appears {limit} times or fewer
@@ -59,5 +59,5 @@ example:
59
59
  Figure 2: Costs by month
60
60
 
61
61
  not_flagged:
62
- ja: 図や表を行の頭に一つも書いていない文書、長い語の一部(地図3、一覧表2)、別の法令の別表(法別表第二)、図の数(図3枚)、コードの中は見ません。
63
- en: 'A document that labels no figure or table at the start of a line, a figure of another document ("Figure 5 of the 2024 report"), and code are not checked.'
62
+ ja: 図や表を行の頭に一つも書いていない文書、長い語の一部(地図3、一覧表2)、別の法令の別表(法別表第二)、図の数(図3枚)、コードの中は見ません。前後を空行に挟まれた、題だけの短い行(Exhibit A to Merger Agreement)も見出しとして、そこにあるとみなします。
63
+ en: 'A document that labels no figure or table at the start of a line, a figure of another document ("Figure 5 of the 2024 report"), and code are not checked. A short title on a line of its own between blank lines ("Exhibit A to Merger Agreement") is read as a heading, so that exhibit is there.'
@@ -29,6 +29,14 @@ how_to_fix:
29
29
 
30
30
  levels: { strict: warning, normal: info, relaxed: info }
31
31
 
32
+ options:
33
+ dated_genres:
34
+ kind: words
35
+ default: [business/meeting-notes, business/email]
36
+ about:
37
+ ja: 頭の日付が、書かれたことの起きた日(会議の日、手紙の日)になっている genre。その日付から5か月以内の月日は、その年と読む。Web ページの頭の日付は載せた日で、月日はどの年のこともある
38
+ en: Genres whose date at the top is the day the text is about (the meeting, the letter). A day and month within five months of it is read as that year's. A web page's date at the top is the day it was posted, and its days and months may be any year's
39
+
32
40
  use_for: [business, technical, blog, legal, docs, academic, literature, speech]
33
41
 
34
42
  group: structure
@@ -64,8 +72,8 @@ example:
64
72
  - October 28, 2026: results sent
65
73
 
66
74
  not_flagged:
67
- ja: 年のある日付がみな同じ年の文書では、年の無い日付を指しません(どの年か読み手に分かるため)。年を一度だけ書いて、あとの日付は月と日だけで書く文書(年の無い日付のほうが多い文書)も、書き方の選び方として指しません。ただしどちらの場合も、年をまたぐ日付は指します。見出しが年を名指す節(「2026年度の予定」「令和8年の行事」「FY27」)の日付は、見出しから年が決まるので指しません。どの年のものでもない日付も指しません。毎年の日(毎年4月1日、決算日は12月31日、年末年始閉庁日(12月29日~1月3日)、4月1日から翌年3月31日まで、1月1日から12月31日までのような一年の期間)と、例の日付(例えば…4月1日に届いた場合、例:のあとの日付、例の項目に続く「もし…」の項目)です。年のある日付が一つも無い文書、月だけ・年だけの日付は見ません。
68
- en: A document whose dated dates are all in one year is not reported, since the reader can tell the year. A document that writes the year once and the rest as month and day (more yearless dates than dated ones) is a style, and not reported either. In both, a date across the turn of a year is still reported. A date in a section whose heading names the year ("2026 events", "FY27-Q2") takes its year from the heading and is not reported. Nor is a date of no one year, such as a day that comes round every year ("every year on April 1", "each December 31", "the fiscal year end is March 31", "April 1 to March 31 of the following year", a whole year such as "January 1 to December 31") and a date in a worked example ("for example, a request received on April 1", the dates after "e.g.", a list item opening with "If" just after an example's item). A document with no dated date, and month-only and year-only dates, are not checked.
75
+ ja: 年のある日付がみな同じ年の文書では、年の無い日付を指しません(どの年か読み手に分かるため)。年を一度だけ書いて、あとの日付は月と日だけで書く文書(年の無い日付のほうが多い文書)も、書き方の選び方として指しません。ただしどちらの場合も、年をまたぐ日付は指します。見出しが年を名指す節(「2026年度の予定」「令和8年の行事」「FY27」)の日付は、見出しから年が決まるので指しません。文書の日付を頭に書いた議事録や手紙(dated_genres の genre。題の下の「2024年1月17日」の行)では、その日付から5か月以内に収まる月日もその年と読めるので指しません。どの年のものでもない日付も指しません。毎年の日(毎年4月1日、決算日は12月31日、年末年始閉庁日(12月29日~1月3日)、4月1日から翌年3月31日まで、1月1日から12月31日までのような一年の期間)と、例の日付(例えば…4月1日に届いた場合、例:のあとの日付、例の項目に続く「もし…」の項目)です。年のある日付が一つも無い文書、月だけ・年だけの日付は見ません。
76
+ en: A document whose dated dates are all in one year is not reported, since the reader can tell the year. A document that writes the year once and the rest as month and day (more yearless dates than dated ones) is a style, and not reported either. In both, a date across the turn of a year is still reported. A date in a section whose heading names the year ("2026 events", "FY27-Q2") takes its year from the heading and is not reported. In minutes or a letter (the genres of the dated_genres option) that carry their own date at the top ("January 17, 2024" under the title), a day and month within five months of that date takes the year that puts it there, and is not reported. Nor is a date of no one year, such as a day that comes round every year ("every year on April 1", "each December 31", "the fiscal year end is March 31", "April 1 to March 31 of the following year", a whole year such as "January 1 to December 31") and a date in a worked example ("for example, a request received on April 1", the dates after "e.g.", a list item opening with "If" just after an example's item). A document with no dated date, and month-only and year-only dates, are not checked.
69
77
  rewrite:
70
78
  depth: light
71
79
  ja:
@@ -83,8 +83,8 @@ example:
83
83
  3. You must not resell the Services.
84
84
 
85
85
  not_flagged:
86
- ja: 定義そのもの(以下「本サービス」という、「本サービス」とは)、定義より前の使用(use-before-definition が見ます)、文の頭の大文字、小文字の使用が {limit} 個を超えるか大文字の使用より多い語(ふつうの意味で使っているとみなす)は指しません。定義の文の中の使用(「顧客」とは、表紙に「顧客」と書いた者をいう)も見ません。法令・規程(statute の profile で読む文書)は、語そのものを指すために語をかぎ括弧に入れる(「株主」とあるのは、「個人情報」の定義)ので、かぎ括弧に入れ直した語は指しません。小文字の語句は、形容詞で始まるもの、形容詞や所有の語が前に付くもの(its own confidential information、additional terms of service)は普通の語句として見ません。「本」と「本件」を入れ替えた形は、その形も定義した語であるとき、長い語の一部(見本物品)のときは見ません。長くした語は、指す語(当該・前記・同・各)が前に付いただけのもの、二字以下の語(提供、登録)を長くしたもの、定義の文がその長い語を書いているもの(東京都(以下「都」という。))、その長い語も定義した語であるもの、複数形(Boxes)は見ません。
87
- en: 'The definitions themselves ("Services" means, (the "Services")), uses before the definition (use-before-definition reads those), capitals at the start of a sentence, and terms written in lower case more than {limit} times or more often than capitalised (taken as the ordinary word used on purpose) are not reported, nor is a use inside the defining sentence ("Customer" means the party named "Customer"). A statute or a regulation (a document read with the statute profile) quotes a term to talk about the term itself ("controller" has the same meaning as in Part 3), so a quoted term is not reported there. A lower-case phrase that starts with an adjective, or that an adjective or a possessive comes before (its own confidential information, additional terms of service), is the ordinary phrase and is not reported. A term with its other prefix (本件業務 for 本業務) is not reported when that form is defined too, or inside a longer word (見本物品). A longer word is not reported when only a pointing word comes before the term (当該管理責任者), when the term has two characters or fewer (提供, 登録), when the definition itself writes the longer word (東京都(以下「都」という。)), when the longer word is defined too, or when it is a plural (Boxes).'
86
+ ja: 定義そのもの(以下「本サービス」という、「本サービス」とは)、定義より前の使用(use-before-definition が見ます)、文の頭の大文字、小文字の使用が {limit} 個を超えるか大文字の使用より多い語(ふつうの意味で使っているとみなす)は指しません。定義の文の中の使用(「顧客」とは、表紙に「顧客」と書いた者をいう)も見ません。法令・規程(statute の profile で読む文書)は、語そのものを指すために語をかぎ括弧に入れる(「株主」とあるのは、「個人情報」の定義)ので、かぎ括弧に入れ直した語は指しません。小文字の語句は、形容詞で始まるもの、形容詞や所有の語や名詞が前に付くもの(its own confidential information、additional terms of service、a common parent、a limited liability company)、of と冠詞の無い名詞が後ろに続くもの(certificates of deposit)、別の定義した語の一部であるもの(Certificate of Merger と定義した文書の certificate of merger)は普通の語句として見ません。ただし、the other party、such company のように指す語が前に付くものは指します。引用符に入れた語でも、前の語がその語を語として挙げているもの(the definition of "Material Adverse Effect"、the term "Affiliate")は見ません。「本」と「本件」を入れ替えた形は、その形も定義した語であるとき、長い語の一部(見本物品)のときは見ません。長くした語は、指す語(当該・前記・同・各)が前に付いただけのもの、二字以下の語(提供、登録)を長くしたもの、定義の文がその長い語を書いているもの(東京都(以下「都」という。))、その長い語も定義した語であるもの、複数形(Boxes)は見ません。
87
+ en: 'The definitions themselves ("Services" means, (the "Services")), uses before the definition (use-before-definition reads those), capitals at the start of a sentence, and terms written in lower case more than {limit} times or more often than capitalised (taken as the ordinary word used on purpose) are not reported, nor is a use inside the defining sentence ("Customer" means the party named "Customer"). A statute or a regulation (a document read with the statute profile) quotes a term to talk about the term itself ("controller" has the same meaning as in Part 3), so a quoted term is not reported there. A lower-case phrase that starts with an adjective, or that an adjective, a possessive or a noun comes before (its own confidential information, additional terms of service, a common parent, a limited liability company), one followed by "of" and a bare noun (certificates of deposit), and one inside another defined term (certificate of merger where Certificate of Merger is defined) is the ordinary phrase and is not reported; after a pointing word (the other party, such company) it is. Nor is a quoted term that the words before it name as a term (the definition of "Material Adverse Effect", the term "Affiliate"). A term with its other prefix (本件業務 for 本業務) is not reported when that form is defined too, or inside a longer word (見本物品). A longer word is not reported when only a pointing word comes before the term (当該管理責任者), when the term has two characters or fewer (提供, 登録), when the definition itself writes the longer word (東京都(以下「都」という。)), when the longer word is defined too, or when it is a plural (Boxes).'
88
88
  level_meaning:
89
89
  ja: 小文字の使用が {limit} 個以下で、大文字の使用より少ないとき指摘
90
90
  en: lower-case uses reported when they are {limit} or fewer and fewer than the capitalised ones
@@ -9,8 +9,8 @@ name:
9
9
  en: Doubled punctuation
10
10
 
11
11
  why:
12
- ja: 「。。」「、、」「、。」のように句読点が二つ並ぶのは、打ち直しや貼り付けで残った印です。読み手はそこで止まり、急いで書いた文書に見えます。同じ印を三つ以上並べたもの(「...」「。。。」)はわざと伸ばした書き方なので数えません。「e.g.,」「etc.;」のような略語の点の後ろの読点、「、.NET」のように次の語の頭の点、「1..10」「../」のような範囲や道のり、コードと URL も数えません。「!!」「??」は文体の選び方なので見ません。
13
- en: Two punctuation marks side by side ("..", ",,", "i.e.,,") are left over from an edit or a paste. The reader stops there, and the document looks rushed. Three or more of the same mark ("...") are drawn out on purpose and are not counted, nor is the comma or semicolon after an abbreviation's period ("e.g.,", "etc.;"), a period that starts the next word (".NET"), a range or path ("1..10", "../"), code or a URL. "!!" and "??" are a matter of style and are not checked.
12
+ ja: 「。。」「、、」「、。」のように句読点が二つ並ぶのは、打ち直しや貼り付けで残った印です。読み手はそこで止まり、急いで書いた文書に見えます。同じ印を三つ以上並べたもの(「...」「。。。」)はわざと伸ばした書き方なので数えません。「e.g.,」「etc.;」のような略語の点の後ろの読点、英字の会社の名前の形の点と「,」(INC.、 CO.,LTD.)、「、.NET」のように次の語の頭の点、「1..10」「../」のような範囲や道のり、コードと URL も数えません。「!!」「??」は文体の選び方なので見ません。
13
+ en: Two punctuation marks side by side ("..", ",,", "i.e.,,") are left over from an edit or a paste. The reader stops there, and the document looks rushed. Three or more of the same mark ("...") are drawn out on purpose and are not counted, nor is the comma or semicolon after an abbreviation's period ("e.g.,", "etc.;"), the points and comma of a company form in a Japanese sentence ("INC.、", "CO.,LTD."), a period that starts the next word (".NET"), a range or path ("1..10", "../"), code or a URL. "!!" and "??" are a matter of style and are not checked.
14
14
 
15
15
  message:
16
16
  ja: 「{marks}」と句読点が重なっています
@@ -41,5 +41,5 @@ example:
41
41
  We will send the file today, as agreed.
42
42
 
43
43
  not_flagged:
44
- ja: 「...」「。。。」のように三つ以上並べたものと、そのすぐ後ろの一つの印(「...。」「、、、。」)、「e.g.,」「etc.;」のような略語の後ろ、「1..10」「../」のような範囲と道のり、「!!」「??」とコロンは指しません。
45
- en: Three or more of one mark ("...", "。。。") and one mark right after them ("...。", "、、、。"), the mark after an abbreviation ("e.g.,", "etc.;"), ranges and paths ("1..10", "../"), "!!", "??" and colons are not reported.
44
+ ja: 「...」「。。。」のように三つ以上並べたものと、そのすぐ後ろの一つの印(「...。」「、、、。」)、「e.g.,」「etc.;」のような略語の後ろ、英字の会社の形(INC.、 CO.,LTD.)、「1..10」「../」のような範囲と道のり、「!!」「??」とコロンは指しません。
45
+ en: Three or more of one mark ("...", "。。。") and one mark right after them ("...。", "、、、。"), the mark after an abbreviation ("e.g.,", "etc.;") or a company form ("CO.,LTD."), ranges and paths ("1..10", "../"), "!!", "??" and colons are not reported.
@@ -11,8 +11,8 @@ name:
11
11
  en: Word written twice
12
12
 
13
13
  why:
14
- ja: 「資料をを送ります」「確認確認します」のように同じ語が続くのは、消し忘れか、書き換えの途中で残った語です。読み手はつまずき、急いで書いた文書に見えます。重ねて「それぞれの」を言う名詞(人・単位・時・場所。「個人個人」「一行一行」「毎年毎年」)、名詞や形容詞を重ねて強める形(「駄目駄目」「若い若い」)、擬音・擬態語(「ムクムク」「もちもち」)、笑い声(「ははは」)、決まった言い回し(「などなど」「あるある」)は、重ねるのが正しい書き方なので数えていません。
15
- en: The same word twice in a row ("the the"), or two words where English takes one ("our the platform"), is left over from an edit. The reader stumbles, and the document looks rushed. Repeats that grammar allows ("had had", "that that", "is, is") and repeats for emphasis ("very very") are not counted.
14
+ ja: 「資料をを送ります」「確認確認します」のように同じ語が続くのは、消し忘れか、書き換えの途中で残った語です。読み手はつまずき、急いで書いた文書に見えます。括弧の注を挟んで同じ助詞が二度ある形(「本規約は(以下、規約)は」)も、注を書き足したときの消し忘れです。重ねて「それぞれの」を言う名詞(人・単位・時・場所。「個人個人」「一行一行」「毎年毎年」)、名詞や形容詞を重ねて強める形(「駄目駄目」「若い若い」)、擬音・擬態語(「ムクムク」「もちもち」)、笑い声(「ははは」)、決まった言い回し(「などなど」「あるある」)は、重ねるのが正しい書き方なので数えていません。
15
+ en: The same word twice in a row ("the the"), or two words where English takes one ("our the platform"), is left over from an edit. The reader stumbles, and the document looks rushed. In Japanese, the same particle on both sides of a parenthetical aside (本規約は(以下、規約)は) is left over the same way. Repeats that grammar allows ("had had", "that that", "is, is") and repeats for emphasis ("very very") are not counted.
16
16
 
17
17
  message:
18
18
  ja: 「{word}」で語が重なっています。どちらかが余分です
@@ -82,5 +82,5 @@ example:
82
82
  Users may use the Service free of charge.
83
83
 
84
84
  not_flagged:
85
- ja: 二つの定義が食い違っているかは決めません。二つ目を指すだけです。語を名前にした見出しは定義に数えません。英語で、括弧に引用符だけで入れた語句のうち、名前らしく大文字で始めていない語を含むもの(("The key point is"))は、例を引いたものとして定義に数えません。
86
- 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. In English, a phrase quoted alone in brackets with a word a name would capitalise left in lower case ("The key point is") quotes an example, and is not a definition.'
85
+ ja: 二つの定義が食い違っているかは決めません。二つ目を指すだけです。語を名前にした見出しは定義に数えません。英語で、括弧に引用符だけで入れた語句のうち、名前らしく大文字で始めていない語を含むもの(("The key point is"))は、例を引いたものとして定義に数えません。添付した文書(前後を空行に挟まれた「Exhibit A to Merger Agreement」のような題の行、または「## **SCHEDULE B**」のような見出しから後ろ)は別の文書なので、その中の定義は、本文の定義とは比べず、添付した文書の中でだけ比べます。
86
+ 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. In English, a phrase quoted alone in brackets with a word a name would capitalise left in lower case ("The key point is") quotes an example, and is not a definition. An attached instrument (from a title line such as "Exhibit A to Merger Agreement" between blank lines, or a heading such as "## **SCHEDULE B**") is a separate document: its definitions are compared only with each other, not with those of the body.'
@@ -74,5 +74,5 @@ example:
74
74
  Wear gloves.
75
75
 
76
76
  not_flagged:
77
- ja: 親が違う見出しどうし(版ごとの「追加」「修正」、章ごとの「まとめ」)は比べません。Markdown の文書でだけ動きます。
78
- en: Headings under different parents (each version's "Added" and "Fixed", each chapter's "Summary") are not compared. It runs on Markdown only.
77
+ ja: 親が違う見出しどうし(版ごとの「追加」「修正」、章ごとの「まとめ」)は比べません。事例ごとに決まった見出しの組(【相談事例】【回答】、Question と Answer)を同じ順でくり返す所も言いません。括弧の添え書き(【事例(約款)】)は除いて組を見ます。Markdown の文書でだけ動きます。
78
+ en: Headings under different parents (each version's "Added" and "Fixed", each chapter's "Summary") are not compared. A fixed set of labels repeated in the same order for each case (Question and Answer, 【相談事例】 and 【回答】) is not reported either; a qualifier in brackets (Case (terms)) is set aside when the set is read. It runs on Markdown only.
@@ -62,8 +62,8 @@ example:
62
62
  The trial runs for 3 months from April 1, 2026 (until June 30, 2026).
63
63
 
64
64
  not_flagged:
65
- ja: 三通りの数え方(終わりを含める、含めない、初日を数えずに過ぎた日)のどれとも合わないときだけ指します。「約3か月」「3か月程度」のような目安の期間、日付が三つ以上か期間が二つ以上ある文、年を書いた日付と書かない日付の組は見ません。「最大3泊」のような目安の泊数と、日付の無い泊数も見ません。勤務時間は、実働の書いていない所、長さの無い休憩(休憩あり)、一行に時間の範囲が二つ以上ある所(シフト表は行ごとに実働を書いた行だけ)、「翌」などの印の無い日をまたぐ範囲を見ません。勤務表は、休憩か実働の列の無い表、読めない升(休憩なし、単位の無い休憩の数、片方にだけ午前・午後を書いた時刻)のある行、夜勤などの印の無い文書で日をまたぐ行を見ません。
66
- en: Only an end that matches none of the three ways of counting is pointed out. A rough length ("about 3 months"), a sentence with three or more dates or two or more lengths, and a pair of one date with a year and one without are left alone. So are a rough number of nights ("up to 3 nights") and nights written without dates. Working hours are left alone without a stated total, with a break of no length ("breaks provided"), with two or more ranges of time on a line (a shift table only on rows that state their own hours), and across midnight without a next-day mark. In a timesheet, a table without a Break or an Hours column, a row with a cell that cannot be read exactly (no break, a bare number of break, a.m. or p.m. on only one time), and a row across midnight in a document that does not mention night work are left alone.
65
+ ja: 三通りの数え方(終わりを含める、含めない、初日を数えずに過ぎた日)のどれとも合わないときだけ指します。「約3か月」「3か月程度」のような目安の期間、「週3日」「月10日」のような期間あたりの日数と「週休2日制」「4週8休」の中の数、日付が三つ以上か期間が二つ以上ある文、年を書いた日付と書かない日付の組は見ません。「最大3泊」のような目安の泊数と、日付の無い泊数も見ません。勤務時間は、実働の書いていない所、長さの無い休憩(休憩あり)、一行に時間の範囲が二つ以上ある所(シフト表は行ごとに実働を書いた行だけ)、「翌」などの印の無い日をまたぐ範囲を見ません。勤務表は、休憩か実働の列の無い表、読めない升(休憩なし、単位の無い休憩の数、片方にだけ午前・午後を書いた時刻)のある行、夜勤などの印の無い文書で日をまたぐ行を見ません。
66
+ en: Only an end that matches none of the three ways of counting is pointed out. A rough length ("about 3 months"), a count in each period ("3 days a week"), a sentence with three or more dates or two or more lengths, and a pair of one date with a year and one without are left alone. So are a rough number of nights ("up to 3 nights") and nights written without dates. Working hours are left alone without a stated total, with a break of no length ("breaks provided"), with two or more ranges of time on a line (a shift table only on rows that state their own hours), and across midnight without a next-day mark. In a timesheet, a table without a Break or an Hours column, a row with a cell that cannot be read exactly (no break, a bare number of break, a.m. or p.m. on only one time), and a row across midnight in a document that does not mention night work are left alone.
67
67
  rewrite:
68
68
  depth: light
69
69
  ja:
@@ -76,8 +76,8 @@ example:
76
76
  Best regards,
77
77
  Ichiro
78
78
  not_flagged:
79
- ja: 引用した返信(「>」の行)と、ヘッダーと署名(「-- 」の後ろ)は見ません。手紙の頭(日付、「保護者各位」のような宛名、差出人、表題)のように文で終わらない行が続くときは、挨拶をその後ろの最初の文までに探します。挨拶と結びの言い方は決めず、語彙表のどれかがあれば足ります。メール・手紙のジャンルでだけ見ます。
80
- en: 'Quoted replies (lines starting with ">"), the header and the signature after "-- " are not read. When a letter opens with lines that end no sentence (the date, the address block, the sender, a title), the greeting is looked for up to the first sentence after them. Which greeting or closing is used is not decided; any word in the lexicon will do. Only the email and letter genre runs this rule.'
79
+ ja: 引用した返信(「>」の行)と、ヘッダーと署名(「-- 」の後ろ)は見ません。手紙の頭(日付、「保護者各位」のような宛名、差出人、表題)のように文で終わらない行が続くときは、挨拶をその後ろの最初の文までに探します。最初の文より前に「発信者:」のようなメモの形の項目名があれば、メモとして挨拶も結びも求めません。挨拶と結びの言い方は決めず、語彙表のどれかがあれば足ります。メール・手紙のジャンルでだけ見ます。
80
+ en: 'Quoted replies (lines starting with ">"), the header and the signature after "-- " are not read. When a letter opens with lines that end no sentence (the date, the address block, the sender, a title), the greeting is looked for up to the first sentence after them. A memo, with a label such as "TO:" or "SUBJECT:" in capitals before the first sentence, is asked for neither a greeting nor a closing. Which greeting or closing is used is not decided; any word in the lexicon will do. Only the email and letter genre runs this rule.'
81
81
  rewrite:
82
82
  depth: light
83
83
  ja:
@@ -77,8 +77,8 @@ example:
77
77
  Best regards,
78
78
  Ichiro
79
79
  not_flagged:
80
- ja: 「件名:」の行が無いメールや手紙、引用した返信の中の件名は見ません。メール・手紙のジャンルでだけ見ます。
81
- en: 'An email or letter without a "Subject:" line, and subjects inside a quoted reply, are not checked. Only the email and letter genre runs this rule.'
80
+ ja: 「件名:」の行が無いメールや手紙、引用した返信の中の件名は見ません。「件名:」の後ろが空なら次の行を件名として読みます(項目名と値を二段に組んだ文書)。ただし次の行が挨拶、文、別の項目なら件名は空です。メール・手紙のジャンルでだけ見ます。
81
+ en: 'An email or letter without a "Subject:" line, and subjects inside a quoted reply, are not checked. When nothing follows the colon, the next line with text is read as the subject (a form that sets the label and the value in two columns), unless that line is a greeting, a sentence or another field. Only the email and letter genre runs this rule.'
82
82
  level_meaning:
83
83
  ja: 件名 {limit} 字まで
84
84
  en: up to {limit} characters in the subject
@@ -58,8 +58,8 @@ example:
58
58
  | Oct 28 | Takahashi | Set the briefing date |
59
59
 
60
60
  not_flagged:
61
- ja: 一番左の列は見ません(空欄で「上と同じ」を表す書き方があるため)。同じ列に空欄が二つ以上ある列、本文の行が三つより少ない表、「—」「なし」と書いたセルは指しません。合計・小計・税の行(「| 合計 | | | 48,400円 |」)、期間の合計の行(週計)、差し引きで決まる金額の行(総支給額)の数量や単価の空欄も指しません。金額の列(ほかの行がどれも数字を書いている一番右の列)の空欄は指します。Markdown の表でだけ動きます。
62
- en: The first column is not checked, since a blank there often means "same as above". A column with two or more blanks, a table with fewer than three body rows, and a cell holding "—" or "none" are not reported. Nor are the quantity and unit-price blanks of a total, subtotal or tax row ("| Total | | | $612.00 |"), a period total ("Week total") or a computed amount ("Gross pay"); a blank in its amount column (the rightmost column every other row fills with a figure) still is. Markdown tables only.
61
+ ja: 一番左の列は見ません(空欄で「上と同じ」を表す書き方があるため)。同じ列に空欄が二つ以上ある列、本文の行が三つより少ない表、「—」「なし」と書いたセルは指しません。合計・小計・税の行(「| 合計 | | | 48,400円 |」)、期間の合計の行(週計)、差し引きで決まる金額の行(総支給額)の数量や単価の空欄も指しません。金額の列(ほかの行がどれも数字を書いている一番右の列)の空欄は指します。合計の語で始まるか終わる見出し、またはコロンで終わる見出しのすぐ後ろの空欄も、その後ろの升が埋まっていれば指しません(元の表で二つの列にまたがっていた見出しを Markdown に直すと、こう空くため。「| 得点合計 | | 8 |」)。Markdown の表でだけ動きます。
62
+ en: The first column is not checked, since a blank there often means "same as above". A column with two or more blanks, a table with fewer than three body rows, and a cell holding "—" or "none" are not reported. Nor are the quantity and unit-price blanks of a total, subtotal or tax row ("| Total | | | $612.00 |"), a period total ("Week total") or a computed amount ("Gross pay"); a blank in its amount column (the rightmost column every other row fills with a figure) still is. Nor is a blank right after a label that starts or ends with a total word or ends in a colon, when the cell after it is filled, since a label that spanned two columns in the source table leaves that blank once written as Markdown ("| Total score | | 8 |"). Markdown tables only.
63
63
  rewrite:
64
64
  depth: light
65
65
  ja:
@@ -59,8 +59,8 @@ example:
59
59
  [^2]: During the trial period.
60
60
 
61
61
  not_flagged:
62
- ja: Markdown の脚注([^1] と行頭の [^1]:)と、※ に一桁か二桁の番号を付けた印(※1、(※2))を読みます。※ の注が文書に一つも無いときは、注を別の所(表や別紙)に置いた文書と読んで言いません。※ の後ろに数が続くもの(※2018年度)は注の番号ではありません。コードの中は読みません。
63
- en: Markdown footnotes ([^1] and a line starting "[^1]:") and a ※ with a one- or two-digit number (※1, (※2)) are read. When a document has no ※ note at all, its notes are taken to be elsewhere (a table, an annex) and nothing is reported for ※. A ※ before a longer number ("※2018") is not a note mark. Code is not read.
62
+ ja: Markdown の脚注([^1] と行頭の [^1]:)と、※ に一桁か二桁の番号を付けた印(※1、(※2))を読みます。※ の注が文書に一つも無いときは、注を別の所(表や別紙)に置いた文書と読んで言いません。※ の後ろに数が続くもの(※2018年度)と英語の序数(※1st Party)は注の番号ではありません。引用(>)の中の印も注を指していると読みます。コードの中は読みません。
63
+ en: Markdown footnotes ([^1] and a line starting "[^1]:") and a ※ with a one- or two-digit number (※1, (※2)) are read. When a document has no ※ note at all, its notes are taken to be elsewhere (a table, an annex) and nothing is reported for ※. A ※ before a longer number ("※2018") or an English ordinal ("※1st Party") is not a note mark. A mark inside a quotation (">") still points to its note. Code is not read.
64
64
 
65
65
  rewrite:
66
66
  ja: