chaffjs 0.27.1 → 0.29.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 (923) hide show
  1. package/README.md +2 -1
  2. package/dist/ai-score/of-document.d.ts.map +1 -1
  3. package/dist/ai-score/of-document.js +23 -14
  4. package/dist/ai-score/of-document.js.map +1 -1
  5. package/dist/ai-score/render.d.ts.map +1 -1
  6. package/dist/ai-score/render.js +13 -4
  7. package/dist/ai-score/render.js.map +1 -1
  8. package/dist/ai-score/score.d.ts +16 -1
  9. package/dist/ai-score/score.d.ts.map +1 -1
  10. package/dist/ai-score/score.js +15 -3
  11. package/dist/ai-score/score.js.map +1 -1
  12. package/dist/ai-score/signals.d.ts +2 -4
  13. package/dist/ai-score/signals.d.ts.map +1 -1
  14. package/dist/ai-score/signals.js +11 -2
  15. package/dist/ai-score/signals.js.map +1 -1
  16. package/dist/ai-score/text.d.ts +2 -0
  17. package/dist/ai-score/text.d.ts.map +1 -1
  18. package/dist/ai-score/text.js +4 -2
  19. package/dist/ai-score/text.js.map +1 -1
  20. package/dist/announced-count.d.ts +2 -0
  21. package/dist/announced-count.d.ts.map +1 -1
  22. package/dist/announced-count.js +14 -7
  23. package/dist/announced-count.js.map +1 -1
  24. package/dist/check-source.d.ts +3 -1
  25. package/dist/check-source.d.ts.map +1 -1
  26. package/dist/check-source.js +3 -1
  27. package/dist/check-source.js.map +1 -1
  28. package/dist/cli-text.d.ts.map +1 -1
  29. package/dist/cli-text.js +42 -18
  30. package/dist/cli-text.js.map +1 -1
  31. package/dist/cli.d.ts.map +1 -1
  32. package/dist/cli.js +2 -1
  33. package/dist/cli.js.map +1 -1
  34. package/dist/commands/cite-claims.d.ts +36 -0
  35. package/dist/commands/cite-claims.d.ts.map +1 -0
  36. package/dist/commands/cite-claims.js +81 -0
  37. package/dist/commands/cite-claims.js.map +1 -0
  38. package/dist/commands/cite-page.d.ts +14 -0
  39. package/dist/commands/cite-page.d.ts.map +1 -0
  40. package/dist/commands/cite-page.js +47 -0
  41. package/dist/commands/cite-page.js.map +1 -0
  42. package/dist/commands/cite-scaffold.d.ts +16 -0
  43. package/dist/commands/cite-scaffold.d.ts.map +1 -0
  44. package/dist/commands/cite-scaffold.js +21 -0
  45. package/dist/commands/cite-scaffold.js.map +1 -0
  46. package/dist/commands/cite.d.ts +3 -12
  47. package/dist/commands/cite.d.ts.map +1 -1
  48. package/dist/commands/cite.js +110 -51
  49. package/dist/commands/cite.js.map +1 -1
  50. package/dist/company-names.d.ts +34 -0
  51. package/dist/company-names.d.ts.map +1 -0
  52. package/dist/company-names.js +158 -0
  53. package/dist/company-names.js.map +1 -0
  54. package/dist/default-values.d.ts +17 -0
  55. package/dist/default-values.d.ts.map +1 -0
  56. package/dist/default-values.js +134 -0
  57. package/dist/default-values.js.map +1 -0
  58. package/dist/deprecated-use.d.ts +17 -0
  59. package/dist/deprecated-use.d.ts.map +1 -0
  60. package/dist/deprecated-use.js +95 -0
  61. package/dist/deprecated-use.js.map +1 -0
  62. package/dist/derived/number-word-counts.d.ts +10 -0
  63. package/dist/derived/number-word-counts.d.ts.map +1 -0
  64. package/dist/derived/number-word-counts.js +21 -0
  65. package/dist/derived/number-word-counts.js.map +1 -0
  66. package/dist/derived/stays.d.ts +43 -0
  67. package/dist/derived/stays.d.ts.map +1 -0
  68. package/dist/derived/stays.js +105 -0
  69. package/dist/derived/stays.js.map +1 -0
  70. package/dist/detectors/acronym-context.d.ts +2 -2
  71. package/dist/detectors/acronym-context.d.ts.map +1 -1
  72. package/dist/detectors/acronym-context.js +6 -0
  73. package/dist/detectors/acronym-context.js.map +1 -1
  74. package/dist/detectors/address-word.d.ts +3 -0
  75. package/dist/detectors/address-word.d.ts.map +1 -0
  76. package/dist/detectors/address-word.js +7 -0
  77. package/dist/detectors/address-word.js.map +1 -0
  78. package/dist/detectors/agreement-slip.d.ts.map +1 -1
  79. package/dist/detectors/agreement-slip.js +4 -1
  80. package/dist/detectors/agreement-slip.js.map +1 -1
  81. package/dist/detectors/ai-phrasing.d.ts +0 -4
  82. package/dist/detectors/ai-phrasing.d.ts.map +1 -1
  83. package/dist/detectors/ai-phrasing.js +5 -1
  84. package/dist/detectors/ai-phrasing.js.map +1 -1
  85. package/dist/detectors/amount-range.d.ts +3 -0
  86. package/dist/detectors/amount-range.d.ts.map +1 -0
  87. package/dist/detectors/amount-range.js +38 -0
  88. package/dist/detectors/amount-range.js.map +1 -0
  89. package/dist/detectors/amount-scale.d.ts +8 -0
  90. package/dist/detectors/amount-scale.d.ts.map +1 -0
  91. package/dist/detectors/amount-scale.js +74 -0
  92. package/dist/detectors/amount-scale.js.map +1 -0
  93. package/dist/detectors/announced-count.d.ts +1 -1
  94. package/dist/detectors/announced-count.d.ts.map +1 -1
  95. package/dist/detectors/announced-count.js +18 -3
  96. package/dist/detectors/announced-count.js.map +1 -1
  97. package/dist/detectors/bare-comparative.d.ts.map +1 -1
  98. package/dist/detectors/bare-comparative.js +4 -1
  99. package/dist/detectors/bare-comparative.js.map +1 -1
  100. package/dist/detectors/block-quotation.d.ts +13 -0
  101. package/dist/detectors/block-quotation.d.ts.map +1 -0
  102. package/dist/detectors/block-quotation.js +86 -0
  103. package/dist/detectors/block-quotation.js.map +1 -0
  104. package/dist/detectors/bracket-label.d.ts +10 -0
  105. package/dist/detectors/bracket-label.d.ts.map +1 -0
  106. package/dist/detectors/bracket-label.js +51 -0
  107. package/dist/detectors/bracket-label.js.map +1 -0
  108. package/dist/detectors/change-rate.d.ts.map +1 -1
  109. package/dist/detectors/change-rate.js +12 -1
  110. package/dist/detectors/change-rate.js.map +1 -1
  111. package/dist/detectors/citation-entry.d.ts +5 -0
  112. package/dist/detectors/citation-entry.d.ts.map +1 -1
  113. package/dist/detectors/citation-entry.js +19 -5
  114. package/dist/detectors/citation-entry.js.map +1 -1
  115. package/dist/detectors/code-before.d.ts +6 -0
  116. package/dist/detectors/code-before.d.ts.map +1 -0
  117. package/dist/detectors/code-before.js +15 -0
  118. package/dist/detectors/code-before.js.map +1 -0
  119. package/dist/detectors/connective-hierarchy.d.ts +11 -1
  120. package/dist/detectors/connective-hierarchy.d.ts.map +1 -1
  121. package/dist/detectors/connective-hierarchy.js +26 -6
  122. package/dist/detectors/connective-hierarchy.js.map +1 -1
  123. package/dist/detectors/currency-notation.d.ts +3 -1
  124. package/dist/detectors/currency-notation.d.ts.map +1 -1
  125. package/dist/detectors/currency-notation.js +4 -3
  126. package/dist/detectors/currency-notation.js.map +1 -1
  127. package/dist/detectors/date-outside-period.d.ts +4 -0
  128. package/dist/detectors/date-outside-period.d.ts.map +1 -0
  129. package/dist/detectors/date-outside-period.js +34 -0
  130. package/dist/detectors/date-outside-period.js.map +1 -0
  131. package/dist/detectors/default-values.d.ts +3 -0
  132. package/dist/detectors/default-values.d.ts.map +1 -0
  133. package/dist/detectors/default-values.js +14 -0
  134. package/dist/detectors/default-values.js.map +1 -0
  135. package/dist/detectors/defined-term-form.d.ts +6 -2
  136. package/dist/detectors/defined-term-form.d.ts.map +1 -1
  137. package/dist/detectors/defined-term-form.js +72 -12
  138. package/dist/detectors/defined-term-form.js.map +1 -1
  139. package/dist/detectors/definition-use.d.ts.map +1 -1
  140. package/dist/detectors/definition-use.js +8 -1
  141. package/dist/detectors/definition-use.js.map +1 -1
  142. package/dist/detectors/deprecated-use.d.ts +3 -0
  143. package/dist/detectors/deprecated-use.d.ts.map +1 -0
  144. package/dist/detectors/deprecated-use.js +14 -0
  145. package/dist/detectors/deprecated-use.js.map +1 -0
  146. package/dist/detectors/derived-numbers.d.ts +1 -1
  147. package/dist/detectors/derived-numbers.d.ts.map +1 -1
  148. package/dist/detectors/derived-numbers.js +79 -16
  149. package/dist/detectors/derived-numbers.js.map +1 -1
  150. package/dist/detectors/document-shape.d.ts +1 -0
  151. package/dist/detectors/document-shape.d.ts.map +1 -1
  152. package/dist/detectors/document-shape.js +4 -1
  153. package/dist/detectors/document-shape.js.map +1 -1
  154. package/dist/detectors/due-date.d.ts +3 -0
  155. package/dist/detectors/due-date.d.ts.map +1 -0
  156. package/dist/detectors/due-date.js +38 -0
  157. package/dist/detectors/due-date.js.map +1 -0
  158. package/dist/detectors/en-shape.d.ts.map +1 -1
  159. package/dist/detectors/en-shape.js +17 -9
  160. package/dist/detectors/en-shape.js.map +1 -1
  161. package/dist/detectors/fact-consistency.d.ts.map +1 -1
  162. package/dist/detectors/fact-consistency.js +89 -2
  163. package/dist/detectors/fact-consistency.js.map +1 -1
  164. package/dist/detectors/heading-echo.d.ts.map +1 -1
  165. package/dist/detectors/heading-echo.js +10 -1
  166. package/dist/detectors/heading-echo.js.map +1 -1
  167. package/dist/detectors/kana-function-word.d.ts +12 -0
  168. package/dist/detectors/kana-function-word.d.ts.map +1 -0
  169. package/dist/detectors/kana-function-word.js +59 -0
  170. package/dist/detectors/kana-function-word.js.map +1 -0
  171. package/dist/detectors/line-amount.d.ts +3 -0
  172. package/dist/detectors/line-amount.d.ts.map +1 -0
  173. package/dist/detectors/line-amount.js +22 -0
  174. package/dist/detectors/line-amount.js.map +1 -0
  175. package/dist/detectors/location-pointer.d.ts +6 -0
  176. package/dist/detectors/location-pointer.d.ts.map +1 -0
  177. package/dist/detectors/location-pointer.js +22 -0
  178. package/dist/detectors/location-pointer.js.map +1 -0
  179. package/dist/detectors/mark-shape.d.ts.map +1 -1
  180. package/dist/detectors/mark-shape.js +13 -1
  181. package/dist/detectors/mark-shape.js.map +1 -1
  182. package/dist/detectors/nado-closed-list.d.ts +3 -0
  183. package/dist/detectors/nado-closed-list.d.ts.map +1 -0
  184. package/dist/detectors/nado-closed-list.js +21 -0
  185. package/dist/detectors/nado-closed-list.js.map +1 -0
  186. package/dist/detectors/name-variant.d.ts.map +1 -1
  187. package/dist/detectors/name-variant.js +92 -10
  188. package/dist/detectors/name-variant.js.map +1 -1
  189. package/dist/detectors/next-word.d.ts.map +1 -1
  190. package/dist/detectors/next-word.js +41 -8
  191. package/dist/detectors/next-word.js.map +1 -1
  192. package/dist/detectors/number-word-figure.d.ts +5 -0
  193. package/dist/detectors/number-word-figure.d.ts.map +1 -0
  194. package/dist/detectors/number-word-figure.js +32 -0
  195. package/dist/detectors/number-word-figure.js.map +1 -0
  196. package/dist/detectors/obligation-without-deadline.d.ts +39 -0
  197. package/dist/detectors/obligation-without-deadline.d.ts.map +1 -0
  198. package/dist/detectors/obligation-without-deadline.js +148 -0
  199. package/dist/detectors/obligation-without-deadline.js.map +1 -0
  200. package/dist/detectors/open-end-names.d.ts +23 -0
  201. package/dist/detectors/open-end-names.d.ts.map +1 -0
  202. package/dist/detectors/open-end-names.js +95 -0
  203. package/dist/detectors/open-end-names.js.map +1 -0
  204. package/dist/detectors/ordinal-run-gaps.d.ts +8 -0
  205. package/dist/detectors/ordinal-run-gaps.d.ts.map +1 -0
  206. package/dist/detectors/ordinal-run-gaps.js +80 -0
  207. package/dist/detectors/ordinal-run-gaps.js.map +1 -0
  208. package/dist/detectors/orthographic-variant.d.ts.map +1 -1
  209. package/dist/detectors/orthographic-variant.js +26 -9
  210. package/dist/detectors/orthographic-variant.js.map +1 -1
  211. package/dist/detectors/orthography.d.ts.map +1 -1
  212. package/dist/detectors/orthography.js +5 -0
  213. package/dist/detectors/orthography.js.map +1 -1
  214. package/dist/detectors/parameter-table.d.ts +3 -0
  215. package/dist/detectors/parameter-table.d.ts.map +1 -0
  216. package/dist/detectors/parameter-table.js +16 -0
  217. package/dist/detectors/parameter-table.js.map +1 -0
  218. package/dist/detectors/phone-number-variant.d.ts +3 -0
  219. package/dist/detectors/phone-number-variant.d.ts.map +1 -0
  220. package/dist/detectors/phone-number-variant.js +18 -0
  221. package/dist/detectors/phone-number-variant.js.map +1 -0
  222. package/dist/detectors/prerequisite-order.d.ts +3 -0
  223. package/dist/detectors/prerequisite-order.d.ts.map +1 -0
  224. package/dist/detectors/prerequisite-order.js +30 -0
  225. package/dist/detectors/prerequisite-order.js.map +1 -0
  226. package/dist/detectors/quote-unnamed-speaker.d.ts +3 -0
  227. package/dist/detectors/quote-unnamed-speaker.d.ts.map +1 -0
  228. package/dist/detectors/quote-unnamed-speaker.js +18 -0
  229. package/dist/detectors/quote-unnamed-speaker.js.map +1 -0
  230. package/dist/detectors/quote-without-source.d.ts +12 -2
  231. package/dist/detectors/quote-without-source.d.ts.map +1 -1
  232. package/dist/detectors/quote-without-source.js +45 -11
  233. package/dist/detectors/quote-without-source.js.map +1 -1
  234. package/dist/detectors/registry/amount-range.d.ts +3 -0
  235. package/dist/detectors/registry/amount-range.d.ts.map +1 -0
  236. package/dist/detectors/registry/amount-range.js +3 -0
  237. package/dist/detectors/registry/amount-range.js.map +1 -0
  238. package/dist/detectors/registry/amount-scale.d.ts +3 -0
  239. package/dist/detectors/registry/amount-scale.d.ts.map +1 -0
  240. package/dist/detectors/registry/amount-scale.js +3 -0
  241. package/dist/detectors/registry/amount-scale.js.map +1 -0
  242. package/dist/detectors/registry/arrival-before-departure.d.ts +3 -0
  243. package/dist/detectors/registry/arrival-before-departure.d.ts.map +1 -0
  244. package/dist/detectors/registry/arrival-before-departure.js +3 -0
  245. package/dist/detectors/registry/arrival-before-departure.js.map +1 -0
  246. package/dist/detectors/registry/date-outside-period.d.ts +3 -0
  247. package/dist/detectors/registry/date-outside-period.d.ts.map +1 -0
  248. package/dist/detectors/registry/date-outside-period.js +3 -0
  249. package/dist/detectors/registry/date-outside-period.js.map +1 -0
  250. package/dist/detectors/registry/default-values.d.ts +3 -0
  251. package/dist/detectors/registry/default-values.d.ts.map +1 -0
  252. package/dist/detectors/registry/default-values.js +3 -0
  253. package/dist/detectors/registry/default-values.js.map +1 -0
  254. package/dist/detectors/registry/deprecated-use.d.ts +3 -0
  255. package/dist/detectors/registry/deprecated-use.d.ts.map +1 -0
  256. package/dist/detectors/registry/deprecated-use.js +3 -0
  257. package/dist/detectors/registry/deprecated-use.js.map +1 -0
  258. package/dist/detectors/registry/due-date.d.ts +3 -0
  259. package/dist/detectors/registry/due-date.d.ts.map +1 -0
  260. package/dist/detectors/registry/due-date.js +3 -0
  261. package/dist/detectors/registry/due-date.js.map +1 -0
  262. package/dist/detectors/registry/kana-function-word.d.ts +3 -0
  263. package/dist/detectors/registry/kana-function-word.d.ts.map +1 -0
  264. package/dist/detectors/registry/kana-function-word.js +3 -0
  265. package/dist/detectors/registry/kana-function-word.js.map +1 -0
  266. package/dist/detectors/registry/line-amount.d.ts +3 -0
  267. package/dist/detectors/registry/line-amount.d.ts.map +1 -0
  268. package/dist/detectors/registry/line-amount.js +3 -0
  269. package/dist/detectors/registry/line-amount.js.map +1 -0
  270. package/dist/detectors/registry/nado-closed-list.d.ts +3 -0
  271. package/dist/detectors/registry/nado-closed-list.d.ts.map +1 -0
  272. package/dist/detectors/registry/nado-closed-list.js +3 -0
  273. package/dist/detectors/registry/nado-closed-list.js.map +1 -0
  274. package/dist/detectors/registry/number-word-figure.d.ts +3 -0
  275. package/dist/detectors/registry/number-word-figure.d.ts.map +1 -0
  276. package/dist/detectors/registry/number-word-figure.js +3 -0
  277. package/dist/detectors/registry/number-word-figure.js.map +1 -0
  278. package/dist/detectors/registry/obligation-without-deadline.d.ts +3 -0
  279. package/dist/detectors/registry/obligation-without-deadline.d.ts.map +1 -0
  280. package/dist/detectors/registry/obligation-without-deadline.js +3 -0
  281. package/dist/detectors/registry/obligation-without-deadline.js.map +1 -0
  282. package/dist/detectors/registry/parameter-table.d.ts +3 -0
  283. package/dist/detectors/registry/parameter-table.d.ts.map +1 -0
  284. package/dist/detectors/registry/parameter-table.js +3 -0
  285. package/dist/detectors/registry/parameter-table.js.map +1 -0
  286. package/dist/detectors/registry/phone-number-variant.d.ts +3 -0
  287. package/dist/detectors/registry/phone-number-variant.d.ts.map +1 -0
  288. package/dist/detectors/registry/phone-number-variant.js +3 -0
  289. package/dist/detectors/registry/phone-number-variant.js.map +1 -0
  290. package/dist/detectors/registry/prerequisite-order.d.ts +3 -0
  291. package/dist/detectors/registry/prerequisite-order.d.ts.map +1 -0
  292. package/dist/detectors/registry/prerequisite-order.js +3 -0
  293. package/dist/detectors/registry/prerequisite-order.js.map +1 -0
  294. package/dist/detectors/registry/quote-unnamed-speaker.d.ts +3 -0
  295. package/dist/detectors/registry/quote-unnamed-speaker.d.ts.map +1 -0
  296. package/dist/detectors/registry/quote-unnamed-speaker.js +3 -0
  297. package/dist/detectors/registry/quote-unnamed-speaker.js.map +1 -0
  298. package/dist/detectors/registry/tax-amount.d.ts +3 -0
  299. package/dist/detectors/registry/tax-amount.d.ts.map +1 -0
  300. package/dist/detectors/registry/tax-amount.js +3 -0
  301. package/dist/detectors/registry/tax-amount.js.map +1 -0
  302. package/dist/detectors/registry/time-order.d.ts +3 -0
  303. package/dist/detectors/registry/time-order.d.ts.map +1 -0
  304. package/dist/detectors/registry/time-order.js +3 -0
  305. package/dist/detectors/registry/time-order.js.map +1 -0
  306. package/dist/detectors/registry/ui-label.d.ts +3 -0
  307. package/dist/detectors/registry/ui-label.d.ts.map +1 -0
  308. package/dist/detectors/registry/ui-label.js +3 -0
  309. package/dist/detectors/registry/ui-label.js.map +1 -0
  310. package/dist/detectors/registry/undefined-call.d.ts +3 -0
  311. package/dist/detectors/registry/undefined-call.d.ts.map +1 -0
  312. package/dist/detectors/registry/undefined-call.js +3 -0
  313. package/dist/detectors/registry/undefined-call.js.map +1 -0
  314. package/dist/detectors/registry/undefined-term.d.ts +3 -0
  315. package/dist/detectors/registry/undefined-term.d.ts.map +1 -0
  316. package/dist/detectors/registry/undefined-term.js +3 -0
  317. package/dist/detectors/registry/undefined-term.js.map +1 -0
  318. package/dist/detectors/registry/version-order.d.ts +3 -0
  319. package/dist/detectors/registry/version-order.d.ts.map +1 -0
  320. package/dist/detectors/registry/version-order.js +3 -0
  321. package/dist/detectors/registry/version-order.js.map +1 -0
  322. package/dist/detectors/registry/warning-action.d.ts +3 -0
  323. package/dist/detectors/registry/warning-action.d.ts.map +1 -0
  324. package/dist/detectors/registry/warning-action.js +3 -0
  325. package/dist/detectors/registry/warning-action.js.map +1 -0
  326. package/dist/detectors/requirement-smell.d.ts.map +1 -1
  327. package/dist/detectors/requirement-smell.js +25 -8
  328. package/dist/detectors/requirement-smell.js.map +1 -1
  329. package/dist/detectors/structure-tree.d.ts +12 -4
  330. package/dist/detectors/structure-tree.d.ts.map +1 -1
  331. package/dist/detectors/structure-tree.js +31 -14
  332. package/dist/detectors/structure-tree.js.map +1 -1
  333. package/dist/detectors/superlative-scope.d.ts.map +1 -1
  334. package/dist/detectors/superlative-scope.js +11 -1
  335. package/dist/detectors/superlative-scope.js.map +1 -1
  336. package/dist/detectors/tax-amount.d.ts +3 -0
  337. package/dist/detectors/tax-amount.d.ts.map +1 -0
  338. package/dist/detectors/tax-amount.js +19 -0
  339. package/dist/detectors/tax-amount.js.map +1 -0
  340. package/dist/detectors/technical-docs.d.ts.map +1 -1
  341. package/dist/detectors/technical-docs.js +5 -1
  342. package/dist/detectors/technical-docs.js.map +1 -1
  343. package/dist/detectors/term-extension.d.ts +14 -0
  344. package/dist/detectors/term-extension.d.ts.map +1 -0
  345. package/dist/detectors/term-extension.js +67 -0
  346. package/dist/detectors/term-extension.js.map +1 -0
  347. package/dist/detectors/time-order.d.ts +4 -0
  348. package/dist/detectors/time-order.d.ts.map +1 -0
  349. package/dist/detectors/time-order.js +32 -0
  350. package/dist/detectors/time-order.js.map +1 -0
  351. package/dist/detectors/ui-label.d.ts +3 -0
  352. package/dist/detectors/ui-label.d.ts.map +1 -0
  353. package/dist/detectors/ui-label.js +16 -0
  354. package/dist/detectors/ui-label.js.map +1 -0
  355. package/dist/detectors/unbalanced-bracket.d.ts.map +1 -1
  356. package/dist/detectors/unbalanced-bracket.js +8 -13
  357. package/dist/detectors/unbalanced-bracket.js.map +1 -1
  358. package/dist/detectors/undefined-call.d.ts +3 -0
  359. package/dist/detectors/undefined-call.d.ts.map +1 -0
  360. package/dist/detectors/undefined-call.js +18 -0
  361. package/dist/detectors/undefined-call.js.map +1 -0
  362. package/dist/detectors/undefined-term.d.ts +22 -0
  363. package/dist/detectors/undefined-term.d.ts.map +1 -0
  364. package/dist/detectors/undefined-term.js +85 -0
  365. package/dist/detectors/undefined-term.js.map +1 -0
  366. package/dist/detectors/unknown-word.d.ts +1 -1
  367. package/dist/detectors/unknown-word.js +3 -3
  368. package/dist/detectors/unknown-word.js.map +1 -1
  369. package/dist/detectors/vague-deadline.d.ts +4 -0
  370. package/dist/detectors/vague-deadline.d.ts.map +1 -1
  371. package/dist/detectors/vague-deadline.js +3 -3
  372. package/dist/detectors/vague-deadline.js.map +1 -1
  373. package/dist/detectors/version-mismatch.d.ts.map +1 -1
  374. package/dist/detectors/version-mismatch.js +18 -1
  375. package/dist/detectors/version-mismatch.js.map +1 -1
  376. package/dist/detectors/version-order.d.ts +3 -0
  377. package/dist/detectors/version-order.d.ts.map +1 -0
  378. package/dist/detectors/version-order.js +43 -0
  379. package/dist/detectors/version-order.js.map +1 -0
  380. package/dist/detectors/warning-action.d.ts +3 -0
  381. package/dist/detectors/warning-action.d.ts.map +1 -0
  382. package/dist/detectors/warning-action.js +48 -0
  383. package/dist/detectors/warning-action.js.map +1 -0
  384. package/dist/facts/condition-pairs.d.ts +51 -0
  385. package/dist/facts/condition-pairs.d.ts.map +1 -0
  386. package/dist/facts/condition-pairs.js +203 -0
  387. package/dist/facts/condition-pairs.js.map +1 -0
  388. package/dist/facts/counted-facts.d.ts +16 -0
  389. package/dist/facts/counted-facts.d.ts.map +1 -0
  390. package/dist/facts/counted-facts.js +45 -0
  391. package/dist/facts/counted-facts.js.map +1 -0
  392. package/dist/facts/event-dates.d.ts +26 -0
  393. package/dist/facts/event-dates.d.ts.map +1 -0
  394. package/dist/facts/event-dates.js +38 -0
  395. package/dist/facts/event-dates.js.map +1 -0
  396. package/dist/facts/fact-scope.d.ts +2 -0
  397. package/dist/facts/fact-scope.d.ts.map +1 -1
  398. package/dist/facts/fact-scope.js +5 -0
  399. package/dist/facts/fact-scope.js.map +1 -1
  400. package/dist/facts/labelled-facts.d.ts +2 -0
  401. package/dist/facts/labelled-facts.d.ts.map +1 -1
  402. package/dist/facts/labelled-facts.js +9 -1
  403. package/dist/facts/labelled-facts.js.map +1 -1
  404. package/dist/facts/table-facts.d.ts +16 -0
  405. package/dist/facts/table-facts.d.ts.map +1 -1
  406. package/dist/facts/table-facts.js +2 -2
  407. package/dist/facts/table-facts.js.map +1 -1
  408. package/dist/grade/ai-score.d.ts +1 -1
  409. package/dist/grade/ai-score.d.ts.map +1 -1
  410. package/dist/grade/text.js +2 -2
  411. package/dist/grade/text.js.map +1 -1
  412. package/dist/heading-numbering.js +2 -2
  413. package/dist/heading-numbering.js.map +1 -1
  414. package/dist/html/fetch-page.d.ts +20 -0
  415. package/dist/html/fetch-page.d.ts.map +1 -0
  416. package/dist/html/fetch-page.js +51 -0
  417. package/dist/html/fetch-page.js.map +1 -0
  418. package/dist/html/fetched-text.d.ts +5 -0
  419. package/dist/html/fetched-text.d.ts.map +1 -0
  420. package/dist/html/fetched-text.js +25 -0
  421. package/dist/html/fetched-text.js.map +1 -0
  422. package/dist/html/html-content-block.d.ts +6 -0
  423. package/dist/html/html-content-block.d.ts.map +1 -0
  424. package/dist/html/html-content-block.js +86 -0
  425. package/dist/html/html-content-block.js.map +1 -0
  426. package/dist/html/html-elements.d.ts +41 -0
  427. package/dist/html/html-elements.d.ts.map +1 -0
  428. package/dist/html/html-elements.js +91 -0
  429. package/dist/html/html-elements.js.map +1 -0
  430. package/dist/html/html-footnote-marks.d.ts +2 -0
  431. package/dist/html/html-footnote-marks.d.ts.map +1 -0
  432. package/dist/html/html-footnote-marks.js +15 -0
  433. package/dist/html/html-footnote-marks.js.map +1 -0
  434. package/dist/html/html-heading-links.d.ts +6 -0
  435. package/dist/html/html-heading-links.d.ts.map +1 -0
  436. package/dist/html/html-heading-links.js +71 -0
  437. package/dist/html/html-heading-links.js.map +1 -0
  438. package/dist/html/html-lost-tags.d.ts +3 -0
  439. package/dist/html/html-lost-tags.d.ts.map +1 -0
  440. package/dist/html/html-lost-tags.js +11 -0
  441. package/dist/html/html-lost-tags.js.map +1 -0
  442. package/dist/html/html-markdown.d.ts +2 -0
  443. package/dist/html/html-markdown.d.ts.map +1 -0
  444. package/dist/html/html-markdown.js +347 -0
  445. package/dist/html/html-markdown.js.map +1 -0
  446. package/dist/html/html-preformatted.d.ts +17 -0
  447. package/dist/html/html-preformatted.d.ts.map +1 -0
  448. package/dist/html/html-preformatted.js +82 -0
  449. package/dist/html/html-preformatted.js.map +1 -0
  450. package/dist/html/html-reader-only.d.ts +6 -0
  451. package/dist/html/html-reader-only.d.ts.map +1 -0
  452. package/dist/html/html-reader-only.js +63 -0
  453. package/dist/html/html-reader-only.js.map +1 -0
  454. package/dist/html/html-run-in-headings.d.ts +2 -0
  455. package/dist/html/html-run-in-headings.d.ts.map +1 -0
  456. package/dist/html/html-run-in-headings.js +36 -0
  457. package/dist/html/html-run-in-headings.js.map +1 -0
  458. package/dist/html/html-tables.d.ts +3 -0
  459. package/dist/html/html-tables.d.ts.map +1 -0
  460. package/dist/html/html-tables.js +58 -0
  461. package/dist/html/html-tables.js.map +1 -0
  462. package/dist/html/html-widgets.d.ts +3 -0
  463. package/dist/html/html-widgets.d.ts.map +1 -0
  464. package/dist/html/html-widgets.js +71 -0
  465. package/dist/html/html-widgets.js.map +1 -0
  466. package/dist/html/markup-text.d.ts +5 -0
  467. package/dist/html/markup-text.d.ts.map +1 -0
  468. package/dist/html/markup-text.js +32 -0
  469. package/dist/html/markup-text.js.map +1 -0
  470. package/dist/html/page-document.d.ts +9 -0
  471. package/dist/html/page-document.d.ts.map +1 -0
  472. package/dist/html/page-document.js +19 -0
  473. package/dist/html/page-document.js.map +1 -0
  474. package/dist/inline-count.d.ts +19 -0
  475. package/dist/inline-count.d.ts.map +1 -0
  476. package/dist/inline-count.js +109 -0
  477. package/dist/inline-count.js.map +1 -0
  478. package/dist/kana-spelling.d.ts +5 -0
  479. package/dist/kana-spelling.d.ts.map +1 -1
  480. package/dist/kana-spelling.js +5 -0
  481. package/dist/kana-spelling.js.map +1 -1
  482. package/dist/location-part.d.ts +13 -0
  483. package/dist/location-part.d.ts.map +1 -0
  484. package/dist/location-part.js +24 -0
  485. package/dist/location-part.js.map +1 -0
  486. package/dist/nado-closed-list.d.ts +20 -0
  487. package/dist/nado-closed-list.d.ts.map +1 -0
  488. package/dist/nado-closed-list.js +72 -0
  489. package/dist/nado-closed-list.js.map +1 -0
  490. package/dist/name-cue.d.ts +17 -0
  491. package/dist/name-cue.d.ts.map +1 -0
  492. package/dist/name-cue.js +29 -0
  493. package/dist/name-cue.js.map +1 -0
  494. package/dist/name-variants.d.ts +41 -5
  495. package/dist/name-variants.d.ts.map +1 -1
  496. package/dist/name-variants.js +93 -8
  497. package/dist/name-variants.js.map +1 -1
  498. package/dist/paragraph-runs.d.ts +6 -1
  499. package/dist/paragraph-runs.d.ts.map +1 -1
  500. package/dist/paragraph-runs.js +9 -2
  501. package/dist/paragraph-runs.js.map +1 -1
  502. package/dist/parameter-table.d.ts +19 -0
  503. package/dist/parameter-table.d.ts.map +1 -0
  504. package/dist/parameter-table.js +191 -0
  505. package/dist/parameter-table.js.map +1 -0
  506. package/dist/phone-numbers.d.ts +23 -0
  507. package/dist/phone-numbers.d.ts.map +1 -0
  508. package/dist/phone-numbers.js +83 -0
  509. package/dist/phone-numbers.js.map +1 -0
  510. package/dist/place-names.d.ts +55 -0
  511. package/dist/place-names.d.ts.map +1 -0
  512. package/dist/place-names.js +196 -0
  513. package/dist/place-names.js.map +1 -0
  514. package/dist/plugin.d.ts +4 -0
  515. package/dist/plugin.d.ts.map +1 -1
  516. package/dist/prerequisite-order.d.ts +16 -0
  517. package/dist/prerequisite-order.d.ts.map +1 -0
  518. package/dist/prerequisite-order.js +29 -0
  519. package/dist/prerequisite-order.js.map +1 -0
  520. package/dist/profile/parse.d.ts.map +1 -1
  521. package/dist/profile/parse.js +10 -1
  522. package/dist/profile/parse.js.map +1 -1
  523. package/dist/reasons.d.ts +2 -0
  524. package/dist/reasons.d.ts.map +1 -1
  525. package/dist/reasons.js +2 -0
  526. package/dist/reasons.js.map +1 -1
  527. package/dist/render/rules-json.d.ts.map +1 -1
  528. package/dist/render/rules-json.js +4 -0
  529. package/dist/render/rules-json.js.map +1 -1
  530. package/dist/render/rules-table.d.ts.map +1 -1
  531. package/dist/render/rules-table.js +6 -2
  532. package/dist/render/rules-table.js.map +1 -1
  533. package/dist/rule-genres.d.ts +5 -2
  534. package/dist/rule-genres.d.ts.map +1 -1
  535. package/dist/rule-genres.js +2 -0
  536. package/dist/rule-genres.js.map +1 -1
  537. package/dist/rule-load.d.ts.map +1 -1
  538. package/dist/rule-load.js +2 -1
  539. package/dist/rule-load.js.map +1 -1
  540. package/dist/run.d.ts.map +1 -1
  541. package/dist/run.js +5 -1
  542. package/dist/run.js.map +1 -1
  543. package/dist/spelling.d.ts +2 -0
  544. package/dist/spelling.d.ts.map +1 -1
  545. package/dist/spelling.js +6 -0
  546. package/dist/spelling.js.map +1 -1
  547. package/dist/structure/action-due.d.ts +21 -0
  548. package/dist/structure/action-due.d.ts.map +1 -0
  549. package/dist/structure/action-due.js +126 -0
  550. package/dist/structure/action-due.js.map +1 -0
  551. package/dist/structure/amount-range.d.ts +30 -0
  552. package/dist/structure/amount-range.d.ts.map +1 -0
  553. package/dist/structure/amount-range.js +153 -0
  554. package/dist/structure/amount-range.js.map +1 -0
  555. package/dist/structure/amount-scale.d.ts +35 -0
  556. package/dist/structure/amount-scale.d.ts.map +1 -0
  557. package/dist/structure/amount-scale.js +83 -0
  558. package/dist/structure/amount-scale.js.map +1 -0
  559. package/dist/structure/cite.d.ts +5 -2
  560. package/dist/structure/cite.d.ts.map +1 -1
  561. package/dist/structure/cite.js +20 -1
  562. package/dist/structure/cite.js.map +1 -1
  563. package/dist/structure/counted-amounts.d.ts +12 -0
  564. package/dist/structure/counted-amounts.d.ts.map +1 -0
  565. package/dist/structure/counted-amounts.js +30 -0
  566. package/dist/structure/counted-amounts.js.map +1 -0
  567. package/dist/structure/date-order.d.ts +24 -3
  568. package/dist/structure/date-order.d.ts.map +1 -1
  569. package/dist/structure/date-order.js +49 -17
  570. package/dist/structure/date-order.js.map +1 -1
  571. package/dist/structure/date-outside-period.d.ts +27 -0
  572. package/dist/structure/date-outside-period.d.ts.map +1 -0
  573. package/dist/structure/date-outside-period.js +86 -0
  574. package/dist/structure/date-outside-period.js.map +1 -0
  575. package/dist/structure/definition-use.d.ts +5 -2
  576. package/dist/structure/definition-use.d.ts.map +1 -1
  577. package/dist/structure/definition-use.js +11 -3
  578. package/dist/structure/definition-use.js.map +1 -1
  579. package/dist/structure/due-date.d.ts +19 -0
  580. package/dist/structure/due-date.d.ts.map +1 -0
  581. package/dist/structure/due-date.js +30 -0
  582. package/dist/structure/due-date.js.map +1 -0
  583. package/dist/structure/heading-runs.d.ts +9 -0
  584. package/dist/structure/heading-runs.d.ts.map +1 -0
  585. package/dist/structure/heading-runs.js +23 -0
  586. package/dist/structure/heading-runs.js.map +1 -0
  587. package/dist/structure/install-pin.d.ts +46 -0
  588. package/dist/structure/install-pin.d.ts.map +1 -0
  589. package/dist/structure/install-pin.js +85 -0
  590. package/dist/structure/install-pin.js.map +1 -0
  591. package/dist/structure/leg-times.d.ts +34 -0
  592. package/dist/structure/leg-times.d.ts.map +1 -0
  593. package/dist/structure/leg-times.js +135 -0
  594. package/dist/structure/leg-times.js.map +1 -0
  595. package/dist/structure/line-amount-unit.d.ts +24 -0
  596. package/dist/structure/line-amount-unit.d.ts.map +1 -0
  597. package/dist/structure/line-amount-unit.js +24 -0
  598. package/dist/structure/line-amount-unit.js.map +1 -0
  599. package/dist/structure/line-amount.d.ts +40 -0
  600. package/dist/structure/line-amount.d.ts.map +1 -0
  601. package/dist/structure/line-amount.js +118 -0
  602. package/dist/structure/line-amount.js.map +1 -0
  603. package/dist/structure/number-word-figure.d.ts +37 -0
  604. package/dist/structure/number-word-figure.d.ts.map +1 -0
  605. package/dist/structure/number-word-figure.js +151 -0
  606. package/dist/structure/number-word-figure.js.map +1 -0
  607. package/dist/structure/numbering.d.ts +1 -0
  608. package/dist/structure/numbering.d.ts.map +1 -1
  609. package/dist/structure/numbering.js +3 -0
  610. package/dist/structure/numbering.js.map +1 -1
  611. package/dist/structure/ordinal-runs.d.ts +45 -0
  612. package/dist/structure/ordinal-runs.d.ts.map +1 -0
  613. package/dist/structure/ordinal-runs.js +78 -0
  614. package/dist/structure/ordinal-runs.js.map +1 -0
  615. package/dist/structure/percent-sum-prose.d.ts +1 -1
  616. package/dist/structure/percent-sum-prose.d.ts.map +1 -1
  617. package/dist/structure/percent-sum-prose.js +45 -3
  618. package/dist/structure/percent-sum-prose.js.map +1 -1
  619. package/dist/structure/percent-sum.d.ts +8 -0
  620. package/dist/structure/percent-sum.d.ts.map +1 -1
  621. package/dist/structure/percent-sum.js +8 -1
  622. package/dist/structure/percent-sum.js.map +1 -1
  623. package/dist/structure/release-list.d.ts +9 -0
  624. package/dist/structure/release-list.d.ts.map +1 -0
  625. package/dist/structure/release-list.js +46 -0
  626. package/dist/structure/release-list.js.map +1 -0
  627. package/dist/structure/share-column.d.ts +7 -0
  628. package/dist/structure/share-column.d.ts.map +1 -0
  629. package/dist/structure/share-column.js +22 -0
  630. package/dist/structure/share-column.js.map +1 -0
  631. package/dist/structure/stated-period.d.ts +31 -0
  632. package/dist/structure/stated-period.d.ts.map +1 -0
  633. package/dist/structure/stated-period.js +127 -0
  634. package/dist/structure/stated-period.js.map +1 -0
  635. package/dist/structure/subject-change.d.ts +8 -0
  636. package/dist/structure/subject-change.d.ts.map +1 -0
  637. package/dist/structure/subject-change.js +31 -0
  638. package/dist/structure/subject-change.js.map +1 -0
  639. package/dist/structure/tax.d.ts +25 -0
  640. package/dist/structure/tax.d.ts.map +1 -0
  641. package/dist/structure/tax.js +86 -0
  642. package/dist/structure/tax.js.map +1 -0
  643. package/dist/structure/time-marks.d.ts +58 -0
  644. package/dist/structure/time-marks.d.ts.map +1 -0
  645. package/dist/structure/time-marks.js +74 -0
  646. package/dist/structure/time-marks.js.map +1 -0
  647. package/dist/structure/time-order.d.ts +21 -0
  648. package/dist/structure/time-order.d.ts.map +1 -0
  649. package/dist/structure/time-order.js +108 -0
  650. package/dist/structure/time-order.js.map +1 -0
  651. package/dist/structure/title-lines.d.ts +8 -0
  652. package/dist/structure/title-lines.d.ts.map +1 -0
  653. package/dist/structure/title-lines.js +27 -0
  654. package/dist/structure/title-lines.js.map +1 -0
  655. package/dist/structure/total.d.ts.map +1 -1
  656. package/dist/structure/total.js +3 -1
  657. package/dist/structure/total.js.map +1 -1
  658. package/dist/structure/version-mismatch.d.ts +1 -5
  659. package/dist/structure/version-mismatch.d.ts.map +1 -1
  660. package/dist/structure/version-mismatch.js +65 -12
  661. package/dist/structure/version-mismatch.js.map +1 -1
  662. package/dist/structure/version-order.d.ts +23 -0
  663. package/dist/structure/version-order.d.ts.map +1 -0
  664. package/dist/structure/version-order.js +67 -0
  665. package/dist/structure/version-order.js.map +1 -0
  666. package/dist/table-text.d.ts +9 -0
  667. package/dist/table-text.d.ts.map +1 -0
  668. package/dist/table-text.js +36 -0
  669. package/dist/table-text.js.map +1 -0
  670. package/dist/ui-labels.d.ts +16 -0
  671. package/dist/ui-labels.d.ts.map +1 -0
  672. package/dist/ui-labels.js +42 -0
  673. package/dist/ui-labels.js.map +1 -0
  674. package/dist/undefined-call.d.ts +13 -0
  675. package/dist/undefined-call.d.ts.map +1 -0
  676. package/dist/undefined-call.js +55 -0
  677. package/dist/undefined-call.js.map +1 -0
  678. package/dist/unnamed-speaker.d.ts +23 -0
  679. package/dist/unnamed-speaker.d.ts.map +1 -0
  680. package/dist/unnamed-speaker.js +176 -0
  681. package/dist/unnamed-speaker.js.map +1 -0
  682. package/dist/warning-action.d.ts +22 -0
  683. package/dist/warning-action.d.ts.map +1 -0
  684. package/dist/warning-action.js +58 -0
  685. package/dist/warning-action.js.map +1 -0
  686. package/genres.yaml +2 -0
  687. package/package.json +4 -3
  688. package/profiles/statute.yaml +8 -0
  689. package/rules/agreement-slip.yaml +2 -2
  690. package/rules/amount-range-reversed.yaml +52 -0
  691. package/rules/amount-scale-consistency.yaml +74 -0
  692. package/rules/announced-count-mismatch.yaml +9 -4
  693. package/rules/arrival-before-departure.yaml +48 -0
  694. package/rules/change-rate-mismatch.yaml +5 -4
  695. package/rules/connective-hierarchy.yaml +3 -3
  696. package/rules/currency-notation-consistency.yaml +2 -2
  697. package/rules/date-order.yaml +9 -4
  698. package/rules/date-outside-period.yaml +64 -0
  699. package/rules/default-value-mismatch.yaml +79 -0
  700. package/rules/defined-term-form.yaml +9 -7
  701. package/rules/deprecated-option-used.yaml +78 -0
  702. package/rules/doubled-nado.yaml +28 -12
  703. package/rules/due-before-issue.yaml +68 -0
  704. package/rules/duplicate-definition.yaml +2 -2
  705. package/rules/duration-mismatch.yaml +12 -4
  706. package/rules/elapsed-years-mismatch.yaml +2 -2
  707. package/rules/heading-echo.yaml +2 -2
  708. package/rules/hyphen-as-dash.yaml +2 -2
  709. package/rules/kana-function-word.yaml +58 -0
  710. package/rules/latin-spacing.yaml +6 -5
  711. package/rules/line-amount-mismatch.yaml +58 -0
  712. package/rules/nado-closed-list.yaml +77 -0
  713. package/rules/name-variant.yaml +17 -2
  714. package/rules/number-word-figure-mismatch.yaml +76 -0
  715. package/rules/numbering-gap.yaml +2 -2
  716. package/rules/obligation-without-deadline.yaml +95 -0
  717. package/rules/one-sentence-paragraph-run.yaml +2 -3
  718. package/rules/parameter-table-mismatch.yaml +90 -0
  719. package/rules/percent-sum-mismatch.yaml +2 -2
  720. package/rules/phone-number-variant.yaml +68 -0
  721. package/rules/prerequisite-after-step.yaml +78 -0
  722. package/rules/quote-unnamed-speaker.yaml +67 -0
  723. package/rules/quote-without-source.yaml +6 -6
  724. package/rules/requirement-smell.yaml +3 -3
  725. package/rules/sentence-initial-conjunction-run.yaml +13 -7
  726. package/rules/summary-fact-mismatch.yaml +4 -4
  727. package/rules/tax-mismatch.yaml +71 -0
  728. package/rules/time-order.yaml +65 -0
  729. package/rules/title-length.yaml +2 -2
  730. package/rules/ui-label-variant.yaml +70 -0
  731. package/rules/unbalanced-bracket.yaml +4 -4
  732. package/rules/uncomparable-graded.yaml +29 -10
  733. package/rules/undefined-function-call.yaml +77 -0
  734. package/rules/undefined-term.yaml +72 -0
  735. package/rules/unknown-word.yaml +2 -2
  736. package/rules/unqualified-superlative.yaml +2 -2
  737. package/rules/use-before-definition.yaml +2 -2
  738. package/rules/version-mismatch.yaml +12 -4
  739. package/rules/version-order.yaml +85 -0
  740. package/rules/very-adjective.yaml +31 -13
  741. package/rules/warning-without-action.yaml +64 -0
  742. package/rules/wordy-phrase.yaml +27 -9
  743. package/src/ai-score/of-document.ts +19 -9
  744. package/src/ai-score/render.ts +24 -4
  745. package/src/ai-score/score.ts +24 -3
  746. package/src/ai-score/signals.ts +12 -2
  747. package/src/ai-score/text.ts +7 -2
  748. package/src/announced-count.ts +19 -12
  749. package/src/check-source.ts +11 -2
  750. package/src/cli-text.ts +42 -18
  751. package/src/cli.ts +2 -1
  752. package/src/commands/cite-claims.ts +103 -0
  753. package/src/commands/cite-page.ts +61 -0
  754. package/src/commands/cite-scaffold.ts +27 -0
  755. package/src/commands/cite.ts +127 -58
  756. package/src/company-names.ts +202 -0
  757. package/src/default-values.ts +158 -0
  758. package/src/deprecated-use.ts +122 -0
  759. package/src/derived/number-word-counts.ts +28 -0
  760. package/src/derived/stays.ts +145 -0
  761. package/src/detectors/acronym-context.ts +10 -2
  762. package/src/detectors/address-word.ts +9 -0
  763. package/src/detectors/agreement-slip.ts +7 -1
  764. package/src/detectors/ai-phrasing.ts +6 -1
  765. package/src/detectors/amount-range.ts +54 -0
  766. package/src/detectors/amount-scale.ts +96 -0
  767. package/src/detectors/announced-count.ts +29 -11
  768. package/src/detectors/bare-comparative.ts +7 -2
  769. package/src/detectors/block-quotation.ts +95 -0
  770. package/src/detectors/bracket-label.ts +58 -0
  771. package/src/detectors/change-rate.ts +15 -2
  772. package/src/detectors/citation-entry.ts +20 -5
  773. package/src/detectors/code-before.ts +14 -0
  774. package/src/detectors/connective-hierarchy.ts +39 -11
  775. package/src/detectors/currency-notation.ts +4 -3
  776. package/src/detectors/date-outside-period.ts +38 -0
  777. package/src/detectors/default-values.ts +17 -0
  778. package/src/detectors/defined-term-form.ts +84 -15
  779. package/src/detectors/definition-use.ts +10 -2
  780. package/src/detectors/deprecated-use.ts +17 -0
  781. package/src/detectors/derived-numbers.ts +115 -17
  782. package/src/detectors/document-shape.ts +6 -1
  783. package/src/detectors/due-date.ts +47 -0
  784. package/src/detectors/en-shape.ts +27 -11
  785. package/src/detectors/fact-consistency.ts +110 -2
  786. package/src/detectors/heading-echo.ts +11 -1
  787. package/src/detectors/kana-function-word.ts +71 -0
  788. package/src/detectors/line-amount.ts +33 -0
  789. package/src/detectors/location-pointer.ts +30 -0
  790. package/src/detectors/mark-shape.ts +18 -1
  791. package/src/detectors/nado-closed-list.ts +25 -0
  792. package/src/detectors/name-variant.ts +114 -11
  793. package/src/detectors/next-word.ts +56 -9
  794. package/src/detectors/number-word-figure.ts +43 -0
  795. package/src/detectors/obligation-without-deadline.ts +192 -0
  796. package/src/detectors/open-end-names.ts +140 -0
  797. package/src/detectors/ordinal-run-gaps.ts +101 -0
  798. package/src/detectors/orthographic-variant.ts +39 -14
  799. package/src/detectors/orthography.ts +6 -1
  800. package/src/detectors/parameter-table.ts +17 -0
  801. package/src/detectors/phone-number-variant.ts +18 -0
  802. package/src/detectors/prerequisite-order.ts +35 -0
  803. package/src/detectors/quote-unnamed-speaker.ts +19 -0
  804. package/src/detectors/quote-without-source.ts +57 -10
  805. package/src/detectors/registry/amount-range.ts +4 -0
  806. package/src/detectors/registry/amount-scale.ts +4 -0
  807. package/src/detectors/registry/arrival-before-departure.ts +4 -0
  808. package/src/detectors/registry/date-outside-period.ts +4 -0
  809. package/src/detectors/registry/default-values.ts +4 -0
  810. package/src/detectors/registry/deprecated-use.ts +4 -0
  811. package/src/detectors/registry/due-date.ts +4 -0
  812. package/src/detectors/registry/kana-function-word.ts +4 -0
  813. package/src/detectors/registry/line-amount.ts +4 -0
  814. package/src/detectors/registry/nado-closed-list.ts +4 -0
  815. package/src/detectors/registry/number-word-figure.ts +4 -0
  816. package/src/detectors/registry/obligation-without-deadline.ts +4 -0
  817. package/src/detectors/registry/parameter-table.ts +4 -0
  818. package/src/detectors/registry/phone-number-variant.ts +4 -0
  819. package/src/detectors/registry/prerequisite-order.ts +4 -0
  820. package/src/detectors/registry/quote-unnamed-speaker.ts +4 -0
  821. package/src/detectors/registry/tax-amount.ts +4 -0
  822. package/src/detectors/registry/time-order.ts +4 -0
  823. package/src/detectors/registry/ui-label.ts +4 -0
  824. package/src/detectors/registry/undefined-call.ts +4 -0
  825. package/src/detectors/registry/undefined-term.ts +4 -0
  826. package/src/detectors/registry/version-order.ts +4 -0
  827. package/src/detectors/registry/warning-action.ts +4 -0
  828. package/src/detectors/requirement-smell.ts +29 -9
  829. package/src/detectors/structure-tree.ts +43 -21
  830. package/src/detectors/superlative-scope.ts +13 -1
  831. package/src/detectors/tax-amount.ts +25 -0
  832. package/src/detectors/technical-docs.ts +7 -1
  833. package/src/detectors/term-extension.ts +67 -0
  834. package/src/detectors/time-order.ts +49 -0
  835. package/src/detectors/ui-label.ts +17 -0
  836. package/src/detectors/unbalanced-bracket.ts +7 -14
  837. package/src/detectors/undefined-call.ts +19 -0
  838. package/src/detectors/undefined-term.ts +103 -0
  839. package/src/detectors/unknown-word.ts +3 -3
  840. package/src/detectors/vague-deadline.ts +3 -3
  841. package/src/detectors/version-mismatch.ts +26 -5
  842. package/src/detectors/version-order.ts +50 -0
  843. package/src/detectors/warning-action.ts +49 -0
  844. package/src/facts/condition-pairs.ts +289 -0
  845. package/src/facts/counted-facts.ts +59 -0
  846. package/src/facts/event-dates.ts +63 -0
  847. package/src/facts/fact-scope.ts +6 -0
  848. package/src/facts/labelled-facts.ts +13 -1
  849. package/src/facts/table-facts.ts +3 -3
  850. package/src/grade/ai-score.ts +1 -1
  851. package/src/grade/text.ts +2 -2
  852. package/src/heading-numbering.ts +2 -2
  853. package/src/html/fetch-page.ts +64 -0
  854. package/src/html/fetched-text.ts +32 -0
  855. package/src/html/html-content-block.ts +107 -0
  856. package/src/html/html-elements.ts +127 -0
  857. package/src/html/html-footnote-marks.ts +20 -0
  858. package/src/html/html-heading-links.ts +93 -0
  859. package/src/html/html-lost-tags.ts +14 -0
  860. package/src/html/html-markdown.ts +481 -0
  861. package/src/html/html-preformatted.ts +110 -0
  862. package/src/html/html-reader-only.ts +82 -0
  863. package/src/html/html-run-in-headings.ts +43 -0
  864. package/src/html/html-tables.ts +76 -0
  865. package/src/html/html-widgets.ts +114 -0
  866. package/src/html/markup-text.ts +35 -0
  867. package/src/html/page-document.ts +22 -0
  868. package/src/inline-count.ts +146 -0
  869. package/src/kana-spelling.ts +7 -0
  870. package/src/location-part.ts +30 -0
  871. package/src/nado-closed-list.ts +106 -0
  872. package/src/name-cue.ts +35 -0
  873. package/src/name-variants.ts +152 -11
  874. package/src/paragraph-runs.ts +12 -2
  875. package/src/parameter-table.ts +208 -0
  876. package/src/phone-numbers.ts +98 -0
  877. package/src/place-names.ts +248 -0
  878. package/src/plugin.ts +4 -0
  879. package/src/prerequisite-order.ts +39 -0
  880. package/src/profile/parse.ts +10 -1
  881. package/src/reasons.ts +4 -0
  882. package/src/render/rules-json.ts +4 -0
  883. package/src/render/rules-table.ts +6 -3
  884. package/src/rule-genres.ts +5 -2
  885. package/src/rule-load.ts +3 -2
  886. package/src/run.ts +3 -1
  887. package/src/spelling.ts +8 -0
  888. package/src/structure/action-due.ts +179 -0
  889. package/src/structure/amount-range.ts +219 -0
  890. package/src/structure/amount-scale.ts +115 -0
  891. package/src/structure/cite.ts +21 -2
  892. package/src/structure/counted-amounts.ts +42 -0
  893. package/src/structure/date-order.ts +72 -22
  894. package/src/structure/date-outside-period.ts +127 -0
  895. package/src/structure/definition-use.ts +24 -3
  896. package/src/structure/due-date.ts +46 -0
  897. package/src/structure/heading-runs.ts +24 -0
  898. package/src/structure/install-pin.ts +115 -0
  899. package/src/structure/leg-times.ts +198 -0
  900. package/src/structure/line-amount-unit.ts +35 -0
  901. package/src/structure/line-amount.ts +162 -0
  902. package/src/structure/number-word-figure.ts +199 -0
  903. package/src/structure/numbering.ts +3 -0
  904. package/src/structure/ordinal-runs.ts +107 -0
  905. package/src/structure/percent-sum-prose.ts +46 -3
  906. package/src/structure/percent-sum.ts +16 -2
  907. package/src/structure/release-list.ts +69 -0
  908. package/src/structure/share-column.ts +25 -0
  909. package/src/structure/stated-period.ts +161 -0
  910. package/src/structure/subject-change.ts +35 -0
  911. package/src/structure/tax.ts +114 -0
  912. package/src/structure/time-marks.ts +127 -0
  913. package/src/structure/time-order.ts +140 -0
  914. package/src/structure/title-lines.ts +33 -0
  915. package/src/structure/total.ts +5 -1
  916. package/src/structure/version-mismatch.ts +67 -13
  917. package/src/structure/version-order.ts +84 -0
  918. package/src/table-text.ts +39 -0
  919. package/src/ui-labels.ts +55 -0
  920. package/src/undefined-call.ts +65 -0
  921. package/src/unnamed-speaker.ts +224 -0
  922. package/src/warning-action.ts +73 -0
  923. package/styles/koyobun.yaml +7 -4
@@ -0,0 +1,68 @@
1
+ id: due-before-issue
2
+ layer: L3
3
+ status: stable
4
+ how_to_find: due-date
5
+ # The issue-date and due-date words come from the language's issue-date-label and due-date-label lexicons; the words of
6
+ # minutes from minutes-title-word, meeting-date-label, action-section-heading, earlier-section-word, action-due-label and item-done-word.
7
+ requires: [dates]
8
+ languages: [ja, en]
9
+ severity: error
10
+
11
+ name:
12
+ ja: 期限が発行日より前
13
+ en: A due date before the issue date
14
+
15
+ why:
16
+ ja: 請求書の「お支払期限」や見積書の「有効期限」が「発行日」より前だと、受け取った時点で期限が過ぎていることになり、読み手はどちらの日付が正しいのかを問い合わせることになります。前の月の請求書を使い回して、片方の日付だけ直したときに起きます。発行日の語で始まる行と期限の語で始まる行の日付を比べ、期限が発行日より前なら指します。議事録の宿題も同じで、会議の日(日時)より前の期限は、会議の時点で過ぎています。宿題の節の、期限の列の日付や「(期限 11月2日)」を、頭の方の「日時」の日付と比べます。
17
+ en: When the payment due date of an invoice or the expiry of a quote is before its issue date, the document is overdue on arrival and the reader has to ask which date is right. It happens when last month's invoice is reused and only one date is changed. The date on a line starting with an issue word (Issued, Invoice date) is compared with the date on a line starting with a due word (Payment due, Valid until), and an earlier due date is pointed out. Minutes are read the same way. An action item due before the meeting it was set in is overdue when it is written down. The dates in the due column, or after "due" in a list item, of an action-items section are compared with the date on the "Date" line near the top.
18
+
19
+ message:
20
+ ja: 期限 {due} が、発行日 {issued} より前です
21
+ en: "The due date {due} is before the issue date {issued}"
22
+
23
+ messages:
24
+ meeting:
25
+ ja: 宿題の期限 {due} が、会議の日 {meeting} より前です
26
+ en: "The action item's due date {due} is before the meeting date {meeting}"
27
+
28
+ how_to_fix:
29
+ ja: 発行日と期限のどちらが正しいかを確かめて、片方を直してください。
30
+ en: Check which is right, the issue date or the due date, and correct the other.
31
+
32
+ levels: { normal: error, relaxed: warning }
33
+
34
+ use_for: [business, technical, blog, legal, docs, academic, literature, speech]
35
+ off_for:
36
+ legal: "An invoice or a quote sets an issue date and a deadline; in other genres a past deadline is something reported on, not this document's own."
37
+ docs: "An invoice or a quote sets an issue date and a deadline; in other genres a past deadline is something reported on, not this document's own."
38
+ academic: "An invoice or a quote sets an issue date and a deadline; in other genres a past deadline is something reported on, not this document's own."
39
+ literature: "An invoice or a quote sets an issue date and a deadline; in other genres a past deadline is something reported on, not this document's own."
40
+ speech: "An invoice or a quote sets an issue date and a deadline; in other genres a past deadline is something reported on, not this document's own."
41
+
42
+ group: facts
43
+ summary:
44
+ ja: 請求書や見積書で、支払期限や有効期限が発行日より前の所。議事録で、宿題の期限が会議の日より前の所
45
+ en: A payment due date or an expiry before the issue date of an invoice or a quote, or an action item in minutes due before the meeting
46
+ example:
47
+ ja:
48
+ before: |
49
+ 発行日:2026年11月30日
50
+
51
+ お支払期限:2026年11月25日
52
+ after: |
53
+ 発行日:2026年11月30日
54
+
55
+ お支払期限:2026年12月25日
56
+ en:
57
+ before: |
58
+ Issued: November 30, 2026
59
+
60
+ Payment due: November 25, 2026
61
+ after: |
62
+ Issued: November 30, 2026
63
+
64
+ Payment due: December 25, 2026
65
+
66
+ not_flagged:
67
+ ja: 行の頭に発行日や期限の語が無い日付(文の中の「12月25日までにお支払いください」)、年の無い日付、一行に日付が二つある行は比べません。発行日が二つあれば、最初のものと比べます。発行日から8行以上離れた期限と、期限が過ぎたことを書いた行(「期限切れ」「延滞」)は、この文書の期限ではなく報告している期限と読んで比べません。議事録として読むのは題に「議事録」などのある文書だけです。議事録では、宿題の節(見出しに「宿題」など)の外の日付、済んだ印のある宿題(升だけの「済」、括弧の中や行末の「完了」、チェック済みの箱)、前回の宿題を振り返る節、年の無い日付で年を越す期限(12月の会議の「1月10日」)は比べません。法令・規約、手引き、論文、文学、スピーチのジャンルでは止めています。
68
+ en: A date without a word at the head of its line (a due date in a sentence), a date without its year, and a line with two dates are not compared. With two issue dates, the first is used. A due date eight lines or more from the issue date, and a line that says the deadline has passed (overdue, expired), are read as reporting on a deadline rather than setting this document's own, and are not compared. Only a document whose title names it as minutes (Minutes, Meeting notes) is read as minutes. In minutes, a date outside an action-items section (a heading with Action items or the like), an item marked done (a Done cell, done in brackets or at the end of the line, a checked box), a section reviewing the previous meeting's items, and a deadline without a year that falls early in the next year (Jan 10 at a December meeting) are not compared. It is off in the legal, docs, academic, literature and speech genres.
@@ -82,5 +82,5 @@ example:
82
82
  Users may use the Service free of charge.
83
83
 
84
84
  not_flagged:
85
- ja: 二つの定義が食い違っているかは決めません。二つ目を指すだけです。語を名前にした見出しは定義に数えません。
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.
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.'
@@ -10,13 +10,21 @@ name:
10
10
  en: A start plus a length of time that does not reach the stated end
11
11
 
12
12
  why:
13
- ja: 「4月1日から3か月間(7月31日まで)」のように、始まりと期間と終わりを一緒に書くと、読み手は三つのうちどれが正しいのか分かりません。期間か日付の片方だけを直したときに起きます。一つの文に日付が二つと期間が一つあるとき、始まりに期間を足した日を終わりと比べます。終わりの日を含めて数える書き方(4月1日から3か月間は6月30日まで)、含めない書き方(7月1日まで)、初日を数えずに期間が過ぎた日(「4月1日から2週間が経過した日(4月16日)」)のどれとも合わないときだけ指します。
14
- en: 'When a start, a length and an end are written together ("for 3 months from April 1, 2026, until July 31, 2026"), the reader cannot tell which of the three is right. It happens when the length or one date is changed and not the other. In a sentence with two dates and one length of time, the start plus the length is compared with the end. Three ways of counting are accepted: with the last day included (April 1 plus 3 months is June 30), without it (July 1), and the day after the period has passed when the first day is not counted (July 2); it is pointed out only when the end matches none.'
13
+ ja: 「4月1日から3か月間(7月31日まで)」のように、始まりと期間と終わりを一緒に書くと、読み手は三つのうちどれが正しいのか分かりません。期間か日付の片方だけを直したときに起きます。一つの文に日付が二つと期間が一つあるとき、始まりに期間を足した日を終わりと比べます。終わりの日を含めて数える書き方(4月1日から3か月間は6月30日まで)、含めない書き方(7月1日まで)、初日を数えずに期間が過ぎた日(「4月1日から2週間が経過した日(4月16日)」)のどれとも合わないときだけ指します。泊数は二つの日付の差の日数と比べます(10月12日から10月14日までは2泊)。一つの文に日付が二つと泊数が一つある所と、チェックイン・チェックアウト・泊数の列がそろった表の行を見ます。「2泊3日」のように泊数と日数を並べたら、日数は泊数より一つ多いはずです。
14
+ en: 'When a start, a length and an end are written together ("for 3 months from April 1, 2026, until July 31, 2026"), the reader cannot tell which of the three is right. It happens when the length or one date is changed and not the other. In a sentence with two dates and one length of time, the start plus the length is compared with the end. Three ways of counting are accepted: with the last day included (April 1 plus 3 months is June 30), without it (July 1), and the day after the period has passed when the first day is not counted (July 2); it is pointed out only when the end matches none. A number of nights is compared with the days between two dates (Oct 12 to Oct 14 is 2 nights), in a sentence with two dates and one number of nights, and in each row of a table with check-in, check-out and nights columns. Where nights and days are written together ("2 days, 1 night"), the days must be one more than the nights.'
15
15
 
16
16
  message:
17
17
  ja: "{start}から{duration}なら、終わりは{expected}ごろのはずですが、{end}と書かれています"
18
18
  en: "{start} plus {duration} ends around {expected}, but the end is given as {end}"
19
19
 
20
+ messages:
21
+ nights:
22
+ ja: "{start}から{end}までなら{expected}泊のはずですが、{nights}と書かれています"
23
+ en: "{start} to {end} makes {expected} as the number of nights, but {nights} is written"
24
+ nights-days:
25
+ ja: "{nights}なら日数は{expected}日のはずですが、{days}と書かれています"
26
+ en: "{nights} makes {expected} days, but {days} is written"
27
+
20
28
  how_to_fix:
21
29
  ja: 期間と終わりの日付のどちらが正しいかを確かめて、もう一方を直してください。
22
30
  en: Check whether the length or the end date is right and correct the other.
@@ -42,8 +50,8 @@ example:
42
50
  The trial runs for 3 months from April 1, 2026 (until June 30, 2026).
43
51
 
44
52
  not_flagged:
45
- ja: 三通りの数え方(終わりを含める、含めない、初日を数えずに過ぎた日)のどれとも合わないときだけ指します。「約3か月」「3か月程度」のような目安の期間、日付が三つ以上か期間が二つ以上ある文、年を書いた日付と書かない日付の組は見ません。
46
- 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.
53
+ ja: 三通りの数え方(終わりを含める、含めない、初日を数えずに過ぎた日)のどれとも合わないときだけ指します。「約3か月」「3か月程度」のような目安の期間、日付が三つ以上か期間が二つ以上ある文、年を書いた日付と書かない日付の組は見ません。「最大3泊」のような目安の泊数と、日付の無い泊数も見ません。
54
+ 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.
47
55
  rewrite:
48
56
  depth: light
49
57
  ja:
@@ -10,8 +10,8 @@ name:
10
10
  en: A count of years that does not match its starting year
11
11
 
12
12
  why:
13
- ja: 「2015年創業」と書いた文書の「創業5年」や、「1980年生まれ(30歳)」は、どちらかが古いままです。去年の文書を写して日付だけ直したときによく起きます。文書の日付(日付だけの段落や「更新日:」の段落)の年から起点の年を引き、書いた年数と比べます。誕生日の前後や「10年目」の数え方があるので、一年までの違いは指しません。
14
- en: 'A document that says "founded in 2015" and "5 years since its founding", or "born in 1980 (aged 30)", has kept one figure from an older version. It happens when last year''s document is copied and only the date is changed. The starting year is taken from the document''s own date (a paragraph holding only a date, or "Updated:") and compared with the count of years. A difference of one year is not pointed out, because of birthdays and of counting the tenth year as 10.'
13
+ ja: 「2015年創業」と書いた文書の「創業5年」や、「1980年生まれ(30歳)」は、どちらかが古いままです。去年の文書を写して日付だけ直したときによく起きます。文書の日付(日付だけの段落や「更新日:」の段落)の年から起点の年を引き、書いた年数と比べます。誕生日の前後や「10年目」の数え方があるので、一年までの違いは指しません。英語の文書で語で書いた年数(ten years since its founding)も読みます。
14
+ en: 'A document that says "founded in 2015" and "5 years since its founding", or "born in 1980 (aged 30)", has kept one figure from an older version. It happens when last year''s document is copied and only the date is changed. The starting year is taken from the document''s own date (a paragraph holding only a date, or "Updated:") and compared with the count of years. A difference of one year is not pointed out, because of birthdays and of counting the tenth year as 10. A count written as a word ("ten years since its founding") is read as well.'
15
15
 
16
16
  message:
17
17
  ja: "{origin}から{reference}年までは{expected}年ですが、「{written}」と書かれています"
@@ -60,8 +60,8 @@ example:
60
60
  Attach the receipt and submit it by the end of the month.
61
61
 
62
62
  not_flagged:
63
- ja: 短い見出し(言葉が少なく、重なりを測れないもの)は見ません。見出しの頭の番号の札(例 3:、Step 3:、1.、第2章)は重なりに数えません。
64
- en: Headings too short to measure an overlap are not checked. A number label at the head of a heading (Step 3:, Example 4:, 1., Chapter 2:) is not counted in the overlap.
63
+ ja: 短い見出し(言葉が少なく、重なりを測れないもの)は見ません。見出しの頭の番号の札(例 3:、Step 3:、1.、第2章)は重なりに数えません。中身の置き場所(リンク、URL、コードで書いたファイルのパス)へ読者を渡す文(詳しくは `docs/api.md` にあります。)は繰り返しではありません。
64
+ en: Headings too short to measure an overlap are not checked. A number label at the head of a heading (Step 3:, Example 4:, 1., Chapter 2:) is not counted in the overlap. A sentence that sends the reader to where the content lives (a link, a web address, a file path in code, as in The full reference is in `docs/api.md`.) is not an echo.
65
65
  level_meaning:
66
66
  ja: 見出しと直後の文の重なりが {limit}% 以上なら指摘
67
67
  en: reported when the first sentence overlaps the heading by {limit}% or more
@@ -39,8 +39,8 @@ example:
39
39
  The release is late — very late.
40
40
 
41
41
  not_flagged:
42
- ja: 語と語のあいだのものだけを見ます。箇条書きの印の「- 」、数の範囲(1 - 2)、語の中のハイフン(well-known)、コードは見ません。文学の文書では既定で止めています(古い版がダッシュを「--」で組むため)。
43
- en: Only between words. A list marker ("- "), a number range ("1 - 2"), a hyphen inside a word ("well-known") and code are not reported. The literature presets turn it off, since older printed texts set the dash as "--".
42
+ ja: 語と語のあいだのものだけを見ます。箇条書きの印の「- 」、数の範囲(1 - 2)、語の中のハイフン(well-known)、コードは見ません。ダッシュの字(— や –)を一つも使わない文書の「--」は、その文書のダッシュの打ち方(文字だけの規格文書、Markdown で -- をダッシュにする書き方)なので見ません。文学の文書では既定で止めています(古い版がダッシュを「--」で組むため)。
43
+ en: Only between words. A list marker ("- "), a number range ("1 - 2"), a hyphen inside a word ("well-known") and code are not reported. Nor is "--" in a document that sets no dash as a character (— or –), where it is how the document types its dash, as plain-text standards and Markdown typographers do. The literature presets turn it off, since older printed texts set the dash as "--".
44
44
  level_meaning:
45
45
  ja: "{limit} 箇所あれば指摘"
46
46
  en: reported once there are {limit}
@@ -0,0 +1,58 @@
1
+ id: kana-function-word
2
+ layer: L3
3
+ status: stable
4
+ how_to_find: kana-function-word
5
+ word_list: kana-function-word
6
+ requires: [pos]
7
+ languages: [ja]
8
+ severity: info
9
+ # 公用文の決まりなので、chaff.yaml の style: koyobun(か rules: に書いたとき)だけで動く。ほかの文書では漢字で書いてかまわない。
10
+ opt_in: true
11
+
12
+ name:
13
+ ja: 公用文でかなで書く補助動詞・形式名詞
14
+ en: Japanese helper verbs and formal nouns in kana (公用文)
15
+
16
+ why:
17
+ ja: 公用文では、補助動詞(〜てください、〜ていただく、〜ておく)と形式名詞(〜すること、〜のように、〜のため、〜するときは)をかなで書きます。漢字で書くのは本来の意味で使うときだけです(資料を下さい、本を置く、事が起きる)。漢字とかなを使い分けると、読み手は語が本来の意味か補助の意味かを字で見分けられます。文化審議会「公用文作成の考え方」(令和 4 年)が引く「公用文における漢字使用等について」の決まりです。chaff.yaml の style を koyobun にしたときだけ動きます。
18
+ en: A rule of Japanese official writing (公用文). Japanese government style writes helper verbs (〜てください "please", 〜ていただく, 〜ておく "in advance") and formal nouns (〜すること, 〜のように, 〜のため, 〜するときは) in kana, keeping the kanji for the full meaning (資料を下さい "give me the papers", 本を置く "put the book down", 事が起きる "something happens"). The split lets a reader see from the script which use is meant. It comes from 公用文における漢字使用等について, which 公用文作成の考え方 (Council for Cultural Affairs, 2022) follows. It runs only when chaff.yaml sets the style to koyobun.
19
+
20
+ message:
21
+ ja: 「{matched}」は公用文ではかなで「{preferred}」と書きます
22
+ en: 'Official Japanese style writes "{matched}" in kana: "{preferred}"'
23
+
24
+ how_to_fix:
25
+ ja: かなに直してください(見て下さい → 見てください、確認する事 → 確認すること)。本来の意味(物をくれる、物を置く、出来事)で使っているなら漢字のままです。
26
+ en: Write it in kana (見て下さい → 見てください, 確認する事 → 確認すること). Keep the kanji where the word has its full meaning (giving, putting something down, an event).
27
+
28
+ placeholders:
29
+ matched:
30
+ ja: 見つけた語
31
+ en: the word found
32
+ preferred:
33
+ ja: かなで書いた形
34
+ en: the word in kana
35
+
36
+ levels: { strict: 1, normal: 1, relaxed: 3 }
37
+
38
+ use_for: [business, technical, legal, docs, academic, blog, speech, literature]
39
+ sources: [koyobun-2022]
40
+
41
+ group: wording
42
+ summary:
43
+ ja: 公用文でかなで書く補助動詞・形式名詞(〜て下さい、〜て置く、〜する事)を漢字で書いた所。style が koyobun のときだけ
44
+ en: A Japanese helper verb or formal noun written in kanji where official style writes kana (〜て下さい, 〜て置く, 〜する事); only with the koyobun style
45
+ example:
46
+ ja:
47
+ config: { style: koyobun }
48
+ before: |
49
+ 申請書を確認する事が必要です。不明な点は担当者に聞いて下さい。
50
+ after: |
51
+ 申請書を確認することが必要です。不明な点は担当者に聞いてください。
52
+
53
+ not_flagged:
54
+ ja: 本来の意味で使った語(資料を下さい、本を置いて帰る、事が起きた、時が経つ)は指しません。「時」は「〜時は」「〜時には」のように条件を言うときだけ指し、「達した時から」のように時点を言う「時」は漢字のままです。「〜て行く」「〜て来る」「〜て見る」「所」「物」は、本来の意味(持って行く、開いて見る、家を建てる所)と品詞で分けられないので見ません。style が koyobun でない文書では動きません。
55
+ en: Words in their full meaning (資料を下さい, 本を置いて帰る, 事が起きた, 時が経つ) are not reported. 時 is reported only as a condition (〜時は, 〜時には); 時 for a point in time (達した時から) stays in kanji. 〜て行く, 〜て来る, 〜て見る, 所 and 物 are not checked, since the tagger cannot tell them from their full meaning (持って行く, 開いて見る "open and read", 家を建てる所). Without the koyobun style the rule does not run.
56
+ level_meaning:
57
+ ja: 当てはまる語が {limit} 箇所あれば指摘
58
+ en: reported once there are {limit}
@@ -9,15 +9,16 @@ uses: [pos]
9
9
  # 番地(千代田区紀尾井町1-3)を、都道府県までの地名の後ろの範囲(東京都2-3 営業日)と分ける。
10
10
  # 日付・時刻(9月、2026年、令和8年、10時5分)を、長さ(3ヶ月、3 時間)と分ける。
11
11
  # 番号と組んで名前を付ける語(問3、第1節)を見分ける。
12
- extra_word_lists: [prefecture-unit, date-time-unit, calendar-unit, calendar-year-unit, calendar-era, numbered-label, item-number]
12
+ # 建物の名前の後ろに空白で区切った階・部屋の番号(本社 5階)を見分ける。
13
+ extra_word_lists: [prefecture-unit, date-time-unit, calendar-unit, calendar-year-unit, calendar-era, numbered-label, item-number, floor-unit, floor-level]
13
14
 
14
15
  name:
15
16
  ja: 英数字の前後の空白がそろっていない
16
17
  en: Spacing around Latin text is inconsistent
17
18
 
18
19
  why:
19
- ja: 日本語と英字・数字のあいだを空けるか詰めるかは、どちらでも読めます。困るのは一つの文書の中で混ざることで、読み手には違いに意味があるように見えます。chaff はどちらが正しいかを決めず、文書の中で少ないほうを指摘します。英字と、数字の前、数字の後ろは別々に数えます。「を 3回」のように、数字の前は空けて助数詞とは詰める書き方がふつうにあるからです。「3GBの」のように数字に続く単位は、英字ではなく数字の側として数えます。逆に「H30 等」「EC2 で」「Phase 1 は」のように英字で始まって数字で終わる名前は、英字の側として数えます。「073-489-5909」「2026-06-02」のような番号や、「1.0.0」のような版番号は数量ではないので数えません。日付・時刻(「9月」「2026年」「令和8年」「10月1日」「3時」「10時5分」)も、数と単位を詰めて書く決まりなので、その中の境目も、前の境目(「は 9月」「午後3時」)も数えません。長さ(「3ヶ月」「3 時間」「5日で」「3年」)は数量として数えます。題や注の番号として書かれた数(「3.1 リサーチの原則」の節番号、※1 の注番号、行の頭に続き番号で並べた注の番号、番号が増えていく箇条書きの頭の番号、「問3」「図2」のように語のすぐ後ろに書いた番号)、0 で始まる組を含む番号(102-0094)、〒の後ろの郵便番号(〒100-8916)、市・区・町まで下りた地名のすぐ後ろの番地(千代田区紀尾井町1-3)も、後ろの空白が番号と題・項目の区切りなので数えません。「第1節 AI の…」の「第1節」の後ろの空白も同じです。鉤括弧(「」『』)で引いた題名や発言の中も、リンクの文字の中も、空け方は引いた元のものなので数えません。
20
- en: Whether to put a space between Japanese and Latin letters or digits is a choice either way. What reads badly is mixing both in one document, which suggests the difference means something. chaff does not decide which is right; it points at whichever the document uses less. Letters, the space before a digit and the space after one are counted separately, since spacing before a number but not before its counter is common. A unit after a number (3GB) counts with the number; a name that starts with a letter and ends in a digit (H30, EC2, Phase 1) counts with the letters. A code such as a phone number, a date or a version (073-489-5909, 2026-06-02, 1.0.0) is not a quantity and is not counted. Nor is a date or a time written with units (9月, 2026年, 令和8年, 10月1日, 3時, 10時5分), which is packed by convention; neither its inside nor the space before it (は 9月, 午後3時) counts. A length of time (3ヶ月, 3 時間, 5日で, 3年) is a quantity and counts. Neither is a number written as the label of a title or a note (a section number such as 3.1 before its title, a note number after ※, the numbers of notes listed one per line in sequence, numbers opening the items of a list that go up, a number written right after a word such as 問 or 図), a code with a part starting with 0 (102-0094), a postal code after 〒 (〒100-8916), or a hyphenated address number right after a city, ward or town (千代田区紀尾井町1-3), since the space after it separates the label from its title or the next item. The same goes for the space after a division such as 第1節. Nor is the spacing inside a title or a quotation in 「」 or 『』, or inside the text of a link, which is the source's, not the writer's.
20
+ ja: 日本語と英字・数字のあいだを空けるか詰めるかは、どちらでも読めます。困るのは一つの文書の中で混ざることで、読み手には違いに意味があるように見えます。chaff はどちらが正しいかを決めず、文書の中で少ないほうを指摘します。英字と、数字の前、数字の後ろは別々に数えます。「を 3回」のように、数字の前は空けて助数詞とは詰める書き方がふつうにあるからです。「3GBの」のように数字に続く単位は、英字ではなく数字の側として数えます。逆に「H30 等」「EC2 で」「Phase 1 は」のように英字で始まって数字で終わる名前は、英字の側として数えます。「073-489-5909」「2026-06-02」のような番号や、「1.0.0」のような版番号は数量ではないので数えません。日付・時刻(「9月」「2026年」「令和8年」「10月1日」「3時」「10時5分」)も、数と単位を詰めて書く決まりなので、その中の境目も、前の境目(「は 9月」「午後3時」)も数えません。長さ(「3ヶ月」「3 時間」「5日で」「3年」)は数量として数えます。題や注の番号として書かれた数(「3.1 リサーチの原則」の節番号、※1 の注番号、行の頭に続き番号で並べた注の番号、番号が増えていく箇条書きの頭の番号、「問3」「図2」のように語のすぐ後ろに書いた番号)、0 で始まる組を含む番号(102-0094)、〒の後ろの郵便番号(〒100-8916)、市・区・町まで下りた地名のすぐ後ろの番地(千代田区紀尾井町1-3)も、後ろの空白が番号と題・項目の区切りなので数えません。建物の名前の後ろに空白で区切って書いた階や部屋の番号(「本社 5階 第2会議室」「研究所 3階 セミナー室」)の前の空白も、所在の組の区切りなので数えません。「第1節 AI の…」の「第1節」の後ろの空白も同じです。鉤括弧(「」『』)で引いた題名や発言の中も、リンクの文字の中も、空け方は引いた元のものなので数えません。
21
+ en: Whether to put a space between Japanese and Latin letters or digits is a choice either way. What reads badly is mixing both in one document, which suggests the difference means something. chaff does not decide which is right; it points at whichever the document uses less. Letters, the space before a digit and the space after one are counted separately, since spacing before a number but not before its counter is common. A unit after a number (3GB) counts with the number; a name that starts with a letter and ends in a digit (H30, EC2, Phase 1) counts with the letters. A code such as a phone number, a date or a version (073-489-5909, 2026-06-02, 1.0.0) is not a quantity and is not counted. Nor is a date or a time written with units (9月, 2026年, 令和8年, 10月1日, 3時, 10時5分), which is packed by convention; neither its inside nor the space before it (は 9月, 午後3時) counts. A length of time (3ヶ月, 3 時間, 5日で, 3年) is a quantity and counts. Neither is a number written as the label of a title or a note (a section number such as 3.1 before its title, a note number after ※, the numbers of notes listed one per line in sequence, numbers opening the items of a list that go up, a number written right after a word such as 問 or 図), a code with a part starting with 0 (102-0094), a postal code after 〒 (〒100-8916), or a hyphenated address number right after a city, ward or town (千代田区紀尾井町1-3), since the space after it separates the label from its title or the next item. Nor is the space before a floor or room number written after the name of a building (本社 5階 第2会議室), which separates the parts of a location. The same goes for the space after a division such as 第1節. Nor is the spacing inside a title or a quotation in 「」 or 『』, or inside the text of a link, which is the source's, not the writer's.
21
22
 
22
23
  message:
23
24
  ja: "日本語と{kind}のあいだを{style}(この文書はふつう{usual}。{of} 箇所のうち {count} 箇所が違う)"
@@ -55,8 +56,8 @@ example:
55
56
  表は Excel で作り、Word に貼ります。図は PowerPoint で描きます。最後に PDF にします。
56
57
 
57
58
  not_flagged:
58
- ja: 電話番号や日付のような番号、版番号(1.0.0)、単位つきの日付や時刻(9月、10時5分)、見出しの番号、行の頭の項目の番号(「一 JIS…」の一、イ)の後ろ、「」の中、リンクの文字の中は数えません。どちらの空け方が正しいかは決めません。少ないほうが全体の 2 割を超えるほど多ければ(5 箇所以上)、1 箇所ずつではなく、書き方が二通りあることを 1 件で言います。
59
- en: Codes such as phone numbers, dates and version numbers (1.0.0), dates and times with units (9月, 10時5分), heading numbers, the space after an item number at the head of a line (一 JIS…), quotations and the text of links are not counted. Neither way is called right. When the less common way is more than a fifth of the places (and at least five), it is reported once, as a document written two ways, rather than place by place.
59
+ ja: 電話番号や日付のような番号、版番号(1.0.0)、単位つきの日付や時刻(9月、10時5分)、建物の名前の後ろに空白で区切った階や部屋の番号(本社 5階)の前、見出しの番号、行の頭の項目の番号(「一 JIS…」の一、イ)の後ろ、「」の中、リンクの文字の中は数えません。どちらの空け方が正しいかは決めません。少ないほうが全体の 2 割を超えるほど多ければ(5 箇所以上)、1 箇所ずつではなく、書き方が二通りあることを 1 件で言います。
60
+ en: Codes such as phone numbers, dates and version numbers (1.0.0), dates and times with units (9月, 10時5分), the space before a floor or room number after the name of a building (本社 5階), heading numbers, the space after an item number at the head of a line (一 JIS…), quotations and the text of links are not counted. Neither way is called right. When the less common way is more than a fifth of the places (and at least five), it is reported once, as a document written two ways, rather than place by place.
60
61
  level_meaning:
61
62
  ja: 少ないほうの空け方が {limit} 箇所あれば指摘
62
63
  en: reported once {limit} places go against the document's habit
@@ -0,0 +1,58 @@
1
+ id: line-amount-mismatch
2
+ layer: L3
3
+ status: stable
4
+ how_to_find: line-amount
5
+ # The column names come from the language's quantity-column, unit-price-column and line-amount-column lexicons; the units
6
+ # of a quantity and of a per-unit price from rate-unit and per-unit-mark.
7
+ languages: [ja, en]
8
+ severity: error
9
+
10
+ name:
11
+ ja: 数量×単価が金額と合わない
12
+ en: Quantity times unit price is not the line amount
13
+
14
+ why:
15
+ ja: 見積書や請求書の明細で、数量と単価を掛けた額がその行の金額と合わないと、読み手はどれが正しいのかを問い合わせることになります。数量か単価だけを直して金額を直し忘れたときに起きます。見出しに数量・単価・金額の列がある表で、行ごとに数量の升の頭の数と単価を掛け、金額の升と比べます。
16
+ en: When quantity times unit price in a line of a quote or an invoice is not the line's amount, the reader has to ask which one is right. It happens when the quantity or the price is changed and the amount is not. In a table with quantity, unit price and amount columns, each row's quantity (the number its cell starts with) times its unit price is compared with its amount.
17
+
18
+ message:
19
+ ja: 金額「{written}」が、数量×単価({quantity} × {price} = {expected})と合いません
20
+ en: "The amount {written} is not quantity × unit price ({quantity} × {price} = {expected})"
21
+
22
+ how_to_fix:
23
+ ja: 数量・単価・金額のどれが正しいかを確かめて直してください。小計と合計も一緒に直します。
24
+ en: Check which of the quantity, the price and the amount is right and correct the others. Correct the subtotal and the total with them.
25
+
26
+ levels: { normal: error, relaxed: warning }
27
+
28
+ use_for: [business, technical, blog, legal, docs, academic, literature, speech]
29
+ off_for:
30
+ literature: "Length, rhythm, repetition and register are the author's choices in literature, and dialogue mixes styles. Only what one work can hold itself to runs: consistent spacing and commas, and numbering without gaps."
31
+
32
+ group: facts
33
+ summary:
34
+ ja: 見積書や請求書の明細で、数量×単価がその行の金額と合わない所
35
+ en: A line of a quote or an invoice whose quantity times unit price is not its amount
36
+ example:
37
+ ja:
38
+ before: |
39
+ | 品目 | 数量 | 単価 | 金額 |
40
+ | --- | --- | --- | --- |
41
+ | 画面開発 | 4画面 | 160,000円 | 600,000円 |
42
+ after: |
43
+ | 品目 | 数量 | 単価 | 金額 |
44
+ | --- | --- | --- | --- |
45
+ | 画面開発 | 4画面 | 150,000円 | 600,000円 |
46
+ en:
47
+ before: |
48
+ | Item | Quantity | Unit price | Amount |
49
+ | --- | --- | --- | --- |
50
+ | Screens | 4 | $1,600 | $6,000 |
51
+ after: |
52
+ | Item | Quantity | Unit price | Amount |
53
+ | --- | --- | --- | --- |
54
+ | Screens | 4 | $1,500 | $6,000 |
55
+
56
+ not_flagged:
57
+ ja: 端数は切り捨て・四捨五入・切り上げのどれでも合っていると読みます。単価と金額の書き方(円、万円、$)が違う行、単価が何かあたり(10,000円/時、月額、英語の Rate の列)で数量が別の単位で書かれた行(「2日」と月額)、ほかの列にも数のある行(値引き、税率)、升に数が二つ以上あるか負の印のある行、数量の升が数で始まらない行(「1式」は 1 と読みます)は比べません。見出しに三つの列がそろわない表と、コードの中は読みません。
58
+ en: Rounding down, to the nearest or up are all read as right. A row whose price and amount are written with different marks ($ and USD, 円 and 万円), a row whose price is per a unit ($100/hour, $300 per month, a Rate column) and whose quantity is written in another unit (2 days at $100/hour), a row with a number in another column (a discount, a tax rate), a cell with two numbers or a negative sign, and a quantity cell that does not start with a number are not compared. A table without all three columns, and code, are not read.
@@ -0,0 +1,77 @@
1
+ id: nado-closed-list
2
+ layer: L2
3
+ status: stable
4
+ how_to_find: nado-closed-list
5
+ word_list: nado-closed-list
6
+ # The open words, the limits and the phrases that look like a limit come from the language's nado-closed-list lexicon. The
7
+ # parts of speech tell 等 from 同等 and 1等, and an English list from a clause ("Only members may use the gym, pool, etc.").
8
+ requires: [pos]
9
+ languages: [ja, en]
10
+ severity: warning
11
+
12
+ name:
13
+ ja: 「等」で開いた一覧を限っている
14
+ en: Open list that a limit closes
15
+
16
+ why:
17
+ ja: 「家具、寝具及び自転車等に限ります」は、「等」で一覧を開いたまま(ほかにもある)、「限ります」で閉じています(ここに挙げたものだけ)。読み手は、挙げていないものが対象に入るのかを決められません。お知らせや募集要項では、申し込めるか・受け付けてもらえるかがそこで分かれます。「等」「など」のすぐ後ろに「に限り」「のみ」「だけ」が来た所を指します。
18
+ en: '"Collection covers furniture, bedding, bicycles, etc. only" leaves the list open (etc.: there are others) and closes it (only: nothing else) in the same breath. The reader cannot tell whether something not named is covered, and in a notice or an application guide that decides whether a request is accepted. chaff reports "etc.", "and so on" and "and the like" right before "only", or at the end of a list that "only" or "limited to" governs.'
19
+
20
+ message:
21
+ ja: 「{open}」で一覧を開いたまま、「{limit}」で限っています
22
+ en: '"{open}" leaves the list open, but "{limit}" closes it'
23
+
24
+ how_to_fix:
25
+ ja: 対象が挙げたものだけなら「等」「など」を消してください。ほかにもあるなら、それを書き足すか、限る言い方をやめてください(「〜などが対象です」)。
26
+ en: If only the items named are covered, delete "etc.". If others are too, name them, or drop the limit ("Collection covers furniture, bedding, bicycles and similar items").
27
+
28
+ levels: { strict: warning, normal: warning, relaxed: info }
29
+
30
+ use_for: [business, technical, blog, legal, docs, academic, literature, speech]
31
+ off_for:
32
+ literature: Fiction and essays use 等 and etc. loosely, and a limit there governs a story, not who may apply.
33
+ speech: Spoken Japanese and English say など and "and so on" as filler, also next to だけ and only.
34
+
35
+ group: wording
36
+ summary:
37
+ ja: 「自転車等に限ります」のように、「等」「など」で開いた一覧を「限り」「のみ」で閉じている所
38
+ en: An open list (etc., and so on) that "only" or "limited to" closes
39
+ example:
40
+ ja:
41
+ before: |
42
+ 収集の対象は、家具、寝具及び自転車等に限ります。
43
+ after: |
44
+ 収集の対象は、家具、寝具及び自転車に限ります。
45
+ en:
46
+ before: |
47
+ Collection covers furniture, bedding, bicycles, etc. only.
48
+ after: |
49
+ Collection covers furniture, bedding and bicycles only.
50
+
51
+ not_flagged:
52
+ ja: 「等」「など」「等々」のすぐ後ろ(読点や閉じ括弧を挟んでもよい)に「に限り」「に限る」「に限定」「のみ」「だけ」が来た所だけを見ます。「に限らず」「のみならず」「だけでなく」のように限らない言い方、「同等」「平等」のように「等」が語の一部のもの、「1等」のような等級は指しません。
53
+ en: 'Only "etc.", "and so on" and "and the like" right before "only", or at the end of a comma-separated list that "only", "limited to", "restricted to", "solely" or "exclusively" governs. A list with a verb between the limit and the open word ("Only members may use the gym, the pool, etc.": only governs members) is not reported, nor is "not only", "not limited to" or "including but not limited to".'
54
+ rewrite:
55
+ depth: light
56
+ ja:
57
+ direction: 対象を挙げたものに限るなら「等」「など」を消します。ほかにも対象があるなら、限る言い方をやめるか、対象を書き足します。どちらかは書き手が決めます。
58
+ pairs:
59
+ - before: 収集の対象は、家具、寝具及び自転車等に限ります。
60
+ after: 収集の対象は、家具、寝具及び自転車に限ります。
61
+ - before: 本人確認の書類は、運転免許証及び健康保険証等のみ受け付けます。
62
+ after: 本人確認の書類は、運転免許証及び健康保険証のみ受け付けます。
63
+ keep:
64
+ - 挙げた項目とその順
65
+ avoid:
66
+ - 書かれていない項目を書き足す
67
+ en:
68
+ direction: If the list is closed, delete the open word; if others are covered, drop the limit or name them. The writer decides which.
69
+ pairs:
70
+ - before: Collection covers furniture, bedding, bicycles, etc. only.
71
+ after: Collection covers furniture, bedding and bicycles only.
72
+ - before: We accept only a driving licence, a health insurance card, etc. as proof of identity.
73
+ after: We accept only a driving licence or a health insurance card as proof of identity.
74
+ keep:
75
+ - the items named and their order
76
+ avoid:
77
+ - adding items the text does not name
@@ -24,9 +24,24 @@ messages:
24
24
  reading:
25
25
  ja: 「{name}」は、ほかの所では同じ読みの「{usual}」と書いています
26
26
  en: '"{name}" is written "{usual}", read the same, elsewhere in the document'
27
+ character:
28
+ ja: 「{name}」は、ほかの所では字体の違う同じ字で「{usual}」と書いています
29
+ en: '"{name}" is written "{usual}", with another form of the same character, elsewhere in the document'
27
30
  near:
28
31
  ja: 「{name}」は、ほかの所で何度も書いた「{usual}」と一字違いです
29
32
  en: '"{name}" is one letter away from "{usual}", which the document uses more than once'
33
+ place-word:
34
+ ja: 「{name}」は、ほかの所では場所の語を別の形にして「{usual}」と書いています
35
+ en: '"{name}" is written "{usual}", with the place word in another form, elsewhere in the document'
36
+ company-form:
37
+ ja: 「{name}」は、ほかの所では会社の種類の違う「{usual}」と書いています
38
+ en: '"{name}" is written "{usual}", with another company form, elsewhere in the document'
39
+ company-position:
40
+ ja: 「{name}」は、ほかの所では会社の種類を名前の反対側に置いて「{usual}」と書いています
41
+ en: '"{name}" is written "{usual}", with the company form on the other side, elsewhere in the document'
42
+ company-near:
43
+ ja: 「{name}」は、ほかの所で書いた会社名「{usual}」と一字違いです
44
+ en: '"{name}" is one letter away from the company name "{usual}" written elsewhere in the document'
30
45
 
31
46
  how_to_fix:
32
47
  ja: 正しい形を確かめ、一つに揃えてください。本当に別の人や会社なら、そのままで構いません。
@@ -61,8 +76,8 @@ example:
61
76
  The code lives on GitHub. Reviews happen on GitHub, and releases are tagged on GitHub.
62
77
 
63
78
  not_flagged:
64
- ja: 品詞解析が固有名詞と読んだ語だけを見ます。大文字だけの名前(ACME INC、NASA)は見ません。一字違いの英字の名前は、6 字以上で、多いほうが二度以上、少ないほうが一度だけのときに限ります(Iran と Iraq は別の名前)。
65
- en: Only words the tagger reads as proper nouns are checked. Names in capitals only (ACME INC, NASA) are left out. Names one letter apart are reported only when six letters or longer, with the usual form used at least twice and the other once (Iran and Iraq are different names).
79
+ ja: 品詞解析が固有名詞と読んだ語だけを見ます。大文字だけの名前(ACME INC、NASA)は見ません。一字違いの英字の名前は、6 字以上で、多いほうが二度以上、少ないほうが一度だけのときに限ります(Iran と Iraq は別の名前)。人の名前どうしは、字体の違う同じ字(斎藤 と 斉藤、渡辺 と 渡邊)か、読みが同じで一字だけ違い、多いほうが二度以上、少ないほうが一度だけのとき(松本 と 松元)に限ります(伊藤 と 伊東 は別の人のことがある)。人の名前とは、品詞解析が人名と読んだ語か、「様」「さん」「氏」の付いた名前です(解析器が名前と読めない字体の字を含む名前は、敬称の前の 2〜4 字の漢字を名前と読みます)。敬称の無い名前も、前後に漢字が続かない 2〜4 字の漢字で、片方の書き方に「担当の」「私、」などの前置きか敬称が付き、もう片方が「です」「が」「までご連絡」などの前にあれば比べます(担当の斎藤です と 斉藤までご連絡ください)。地名にも同じ組がある(鹿島 と 鹿嶋)ので、どちらにも前置きも敬称も無いときは比べません。会社の名前は、語彙表の会社の種類の語(株式会社、(株)、有限会社)の隣にあるものを、品詞と関係なく比べます。名前が同じで種類の語が違うもの(株式会社 と 有限会社)、種類の語を名前の反対側に置いたもの(株式会社アオバ と アオバ株式会社)、記号・幅だけが違うものを指します。同じ種類の語の略した形(株式会社 と (株))、種類の語を省いた呼び名(アオバシステム、以下「アオバ」)は指しません。名前の一字違いは、7 字以上の名前で、違う字が漢字でないときに限ります(日本電気 と 日本電機 は別の会社のことがある)。漢字だけの名前は、品詞解析が固有名詞と読んだときだけ会社の名前と見ます(清算株式会社、当該株式会社)。場所の名前は、語彙表の場所の語(口、駅、センター、ホール)で終わる名前を、品詞と関係なく比べます。記号・幅だけが違うもの(コンベンションセンター と コンベンション・センター)を指し、名前の読みが同じかかなで書いた読みのもの(筑紫口 と ちくし口)と、固有名詞の字の一字違い(八重洲中央口 と 八重州中央口)は、多いほうが二度以上、少ないほうが一度だけのときに限ります。方角や数字の違い(北口 と 南口、第1会議室 と 第2会議室)は別の所なので指しません。
80
+ en: Only words the tagger reads as proper nouns are checked. Names in capitals only (ACME INC, NASA) are left out. Names one letter apart are reported only when six letters or longer, with the usual form used at least twice and the other once (Iran and Iraq are different names). Two Japanese person names are compared only when written with another form of the same character (斎藤 and 斉藤), or read the same with one character different, the usual form used at least twice and the other once (松本 and 松元); 伊藤 and 伊東 can be two people. A person's name is one the tagger reads as such, or one followed by 様, さん or 氏 (when a name holds a character form the tagger cannot read, the two to four kanji before the honorific are taken as the name). A name without an honorific is compared too when it is two to four kanji standing alone, one form has a lead such as 担当の or 私、 or an honorific, and the other stands before a word such as です, が or までご連絡 (担当の斎藤です and 斉藤までご連絡ください). Places have such pairs as well (鹿島 and 鹿嶋), so two forms with neither a lead nor an honorific are not compared. A company name is one next to a company form from the lexicon (Inc., Ltd., Co., Ltd., LLC), whatever the tagger reads it as. The same name with forms of two kinds (Inc. and Ltd.), and the same name written with other punctuation or width, are reported. The short and long spelling of one form (Inc and Incorporated) and a name written without its form (Aoba Systems, the "Company") are not. Two names one letter apart are reported only when seven letters or longer, with the same form, and the letter is not a kanji. A place name is one ending in a place word from the lexicon (Street, St., Avenue, Station, Center), whatever the tagger reads it as. The same place written with other punctuation (King's Cross and Kings Cross) or with the place word short and long (11th Street and 11th St.) is reported; a place whose name is one letter away (Union Station and Unoin Station) only when the usual form is used at least twice and the other once. Other numbers and other names (1st Street and 2nd Street, North Hall and South Hall) are different places.
66
81
  rewrite:
67
82
  depth: light
68
83
  ja:
@@ -0,0 +1,76 @@
1
+ id: number-word-figure-mismatch
2
+ layer: L1
3
+ status: stable
4
+ how_to_find: number-word-figure
5
+ # The number words and how they join (digit, place, scale, and, 金) come from the number-word lexicon; the marks around
6
+ # the figure from currency-notation and number-word's unit words; a word of scale inside the bracket from amount-multiplier.
7
+ severity: warning
8
+
9
+ name:
10
+ ja: 文字で書いた数と括弧の数字が違う
11
+ en: Number in words differs from its figure
12
+
13
+ why:
14
+ ja: 契約書や公式の文書は、読み違いや書き換えを防ぐために数を「三(3)か月」「金参拾万円(300,000円)」のように文字と数字の二通りで書きます。二つが「三(4)か月」「金参拾万円(30,000円)」のように食い違うと、どちらが正しいか文書からは決まらず、後で争いの種になります。片方だけを書き換えたときや、ひな形の数字だけを差し替えたときに起きます。漢数字(大字の壱・弐・参・拾・萬も)と英語の数の語(forty-five、one hundred and five、Fifty Thousand)を数に直し、すぐ後ろの括弧の数字と比べます。
15
+ en: Contracts and formal documents write a number twice, in words and in figures ("thirty (30) days", "Fifty Thousand Dollars ($50,000)"), so that it cannot be misread or altered. When the two disagree ("thirty (13) days", "Fifty Thousand Dollars ($5,000)"), the document does not say which one holds, and the difference becomes a dispute. It happens when one of the two is edited, or when a template's figures are replaced and its words are not. The number words (forty-five, one hundred and five, Fifty Thousand; Japanese numerals, formal ones such as 壱 弐 参 拾 萬 included) are read as a number and compared with the figure in the brackets right after them.
16
+
17
+ message:
18
+ ja: 「{written}」は、文字では{words}、括弧の数字では{figure}です
19
+ en: '"{written}" says {words} in words and {figure} in figures'
20
+
21
+ how_to_fix:
22
+ ja: どちらの数が正しいかを確かめ、文字と数字を同じ数にそろえてください。
23
+ en: Check which number is meant, and make the words and the figure say the same number.
24
+
25
+ levels: { strict: error, normal: warning, relaxed: warning }
26
+
27
+ use_for: [business, technical, blog, legal, docs, academic, literature, speech]
28
+
29
+ group: facts
30
+ summary:
31
+ ja: 「三(4)か月」「金参拾万円(30,000円)」のように、文字で書いた数と後ろの括弧の数字が違う所
32
+ en: A number written in words followed by a figure in brackets that says another number, such as "six (7) months"
33
+ example:
34
+ ja:
35
+ config: { genre: legal/contract }
36
+ before: |
37
+ 乙は、甲に対し、本件業務の対価として金参拾万円(30,000円)を、業務の完了から三(4)か月以内に支払う。
38
+ after: |
39
+ 乙は、甲に対し、本件業務の対価として金参拾万円(300,000円)を、業務の完了から三(3)か月以内に支払う。
40
+ en:
41
+ config: { genre: legal/contract }
42
+ before: |
43
+ The Buyer shall pay Fifty Thousand Dollars ($5,000) within thirty (13) days of delivery.
44
+ after: |
45
+ The Buyer shall pay Fifty Thousand Dollars ($50,000) within thirty (30) days of delivery.
46
+
47
+ not_flagged:
48
+ ja: 文字と数字が同じ数のもの(「三(3)か月」「金参拾万円(300,000円)」)は指しません。括弧の中が数字だけでないもの(「三(第6条)」「三(甲)」)、数字の前が数の語でないもの(「第(6)号」)、ほかの字に続く漢数字(「統一(2)」「唯一(1)」)、万や億で始まる語(「万一(1)」)、二〇二六のように数字を並べただけの漢数字、小さな数の後の西暦らしい四桁(「二(2026)」)は読みません。分数(「百分の三」)の分母は読みません。
49
+ en: Words and a figure that agree ("six (6) months", "Fifty Thousand Dollars ($50,000)") are not reported. A bracket holding anything but a figure ("(Section 6)", "(the Term)"), a figure after a word that is not a number ("Section (6)"), a number word inside another word ("often (2)"), words that are not one well-formed number ("five five (55)", "thousand (1,000)") and a year in brackets after a small number ("two (2026)") are not read. A cheque-style amount ("Fifty Thousand and 00/100 Dollars") and fractions ("one-half (1/2)") are not read.
50
+ level_meaning:
51
+ ja: 文字で書いた数と括弧の数字が違うとき指摘
52
+ en: reported when a number in words and its figure in brackets disagree
53
+
54
+ rewrite:
55
+ ja:
56
+ direction: 正しいほうの数に、文字と数字の両方をそろえてください。どちらが正しいかは文書の外で確かめます。
57
+ pairs:
58
+ - before: 金参拾万円(30,000円)
59
+ after: 金参拾万円(300,000円)
60
+ - before: 三(4)か月
61
+ after: 三(3)か月
62
+ keep:
63
+ - 文字と数字の二通りで書く書き方
64
+ avoid:
65
+ - どちらが正しいかを確かめずに片方へ合わせる
66
+ en:
67
+ direction: Make the words and the figure say the number that is meant. Which one is right has to be checked outside the document.
68
+ pairs:
69
+ - before: Fifty Thousand Dollars ($5,000)
70
+ after: Fifty Thousand Dollars ($50,000)
71
+ - before: thirty (13) days
72
+ after: thirty (30) days
73
+ keep:
74
+ - writing the number both in words and in figures
75
+ avoid:
76
+ - matching one to the other without checking which is meant
@@ -74,5 +74,5 @@ example:
74
74
  Working hours are from nine to six.
75
75
 
76
76
  not_flagged:
77
- ja: 同じ親の下で隣り合う番号だけを比べます。別の章の番号どうしは比べません。どの項目にも同じ番号(「1.」)を書いた箇条書きと、引用の中の箇条書きは見ません。
78
- en: Only numbers side by side under the same parent are compared. A list that writes the same number on every item ("1." on each) and a list inside a quotation are not checked.
77
+ ja: 同じ親の下で隣り合う番号だけを比べます。別の章の番号どうしは比べません。どの項目にも同じ番号(「1.」)を書いた箇条書きと、引用の中の箇条書きは見ません。日程の番号(第N週、Week N)は、表の最初の欄、箇条書きの頭、行の頭に並べば比べます。三つに満たない並び、見出しか表の見出し行が「抜粋」「主な」のように一部だけと言うもの、番号の多くが飛ぶもの(選んだ週だけの表)を比べません。
78
+ en: Only numbers side by side under the same parent are compared. A list that writes the same number on every item ("1." on each) and a list inside a quotation are not checked. A schedule's numbers (Week N, Session N) are compared when they lead table rows, list items or lines; a run shorter than three, one whose heading or header row says it shows only some ("Selected weeks", "Highlights"), and one where most numbers skip (a table of chosen weeks) are not compared.