chaffjs 0.16.0 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/announced-count.d.ts +26 -0
- package/dist/announced-count.d.ts.map +1 -0
- package/dist/announced-count.js +104 -0
- package/dist/announced-count.js.map +1 -0
- package/dist/bare-url.d.ts +14 -0
- package/dist/bare-url.d.ts.map +1 -0
- package/dist/bare-url.js +28 -0
- package/dist/bare-url.js.map +1 -0
- package/dist/baseline.d.ts +5 -0
- package/dist/baseline.d.ts.map +1 -1
- package/dist/baseline.js +16 -1
- package/dist/baseline.js.map +1 -1
- package/dist/body-section.d.ts +7 -0
- package/dist/body-section.d.ts.map +1 -0
- package/dist/body-section.js +6 -0
- package/dist/body-section.js.map +1 -0
- package/dist/calendar-number.d.ts +9 -2
- package/dist/calendar-number.d.ts.map +1 -1
- package/dist/calendar-number.js +18 -4
- package/dist/calendar-number.js.map +1 -1
- package/dist/cli-args.d.ts +4 -0
- package/dist/cli-args.d.ts.map +1 -1
- package/dist/cli-args.js +5 -0
- package/dist/cli-args.js.map +1 -1
- package/dist/cli-text.d.ts.map +1 -1
- package/dist/cli-text.js +8 -4
- package/dist/cli-text.js.map +1 -1
- package/dist/cli.js +33 -30
- package/dist/cli.js.map +1 -1
- package/dist/closing-numbers.d.ts +20 -0
- package/dist/closing-numbers.d.ts.map +1 -0
- package/dist/closing-numbers.js +56 -0
- package/dist/closing-numbers.js.map +1 -0
- package/dist/commands/compare.d.ts +8 -0
- package/dist/commands/compare.d.ts.map +1 -0
- package/dist/commands/compare.js +72 -0
- package/dist/commands/compare.js.map +1 -0
- package/dist/commands/eval.d.ts.map +1 -1
- package/dist/commands/eval.js +17 -9
- package/dist/commands/eval.js.map +1 -1
- package/dist/commands/feedback.d.ts +5 -2
- package/dist/commands/feedback.d.ts.map +1 -1
- package/dist/commands/feedback.js +11 -5
- package/dist/commands/feedback.js.map +1 -1
- package/dist/commands/test.d.ts.map +1 -1
- package/dist/commands/test.js +13 -13
- package/dist/commands/test.js.map +1 -1
- package/dist/commands/tree.d.ts +13 -0
- package/dist/commands/tree.d.ts.map +1 -1
- package/dist/commands/tree.js +35 -5
- package/dist/commands/tree.js.map +1 -1
- package/dist/compare/atom.d.ts +31 -0
- package/dist/compare/atom.d.ts.map +1 -0
- package/dist/compare/atom.js +4 -0
- package/dist/compare/atom.js.map +1 -0
- package/dist/compare/clock-time.d.ts +8 -0
- package/dist/compare/clock-time.d.ts.map +1 -0
- package/dist/compare/clock-time.js +65 -0
- package/dist/compare/clock-time.js.map +1 -0
- package/dist/compare/extract.d.ts +15 -0
- package/dist/compare/extract.d.ts.map +1 -0
- package/dist/compare/extract.js +58 -0
- package/dist/compare/extract.js.map +1 -0
- package/dist/compare/fact-text.d.ts +23 -0
- package/dist/compare/fact-text.d.ts.map +1 -0
- package/dist/compare/fact-text.js +47 -0
- package/dist/compare/fact-text.js.map +1 -0
- package/dist/compare/markup-atoms.d.ts +11 -0
- package/dist/compare/markup-atoms.d.ts.map +1 -0
- package/dist/compare/markup-atoms.js +23 -0
- package/dist/compare/markup-atoms.js.map +1 -0
- package/dist/compare/match.d.ts +19 -0
- package/dist/compare/match.d.ts.map +1 -0
- package/dist/compare/match.js +84 -0
- package/dist/compare/match.js.map +1 -0
- package/dist/compare/outcome.d.ts +33 -0
- package/dist/compare/outcome.d.ts.map +1 -0
- package/dist/compare/outcome.js +40 -0
- package/dist/compare/outcome.js.map +1 -0
- package/dist/compare/proper-nouns.d.ts +19 -0
- package/dist/compare/proper-nouns.d.ts.map +1 -0
- package/dist/compare/proper-nouns.js +44 -0
- package/dist/compare/proper-nouns.js.map +1 -0
- package/dist/compare/render.d.ts +9 -0
- package/dist/compare/render.d.ts.map +1 -0
- package/dist/compare/render.js +64 -0
- package/dist/compare/render.js.map +1 -0
- package/dist/compare/spans.d.ts +9 -0
- package/dist/compare/spans.d.ts.map +1 -0
- package/dist/compare/spans.js +11 -0
- package/dist/compare/spans.js.map +1 -0
- package/dist/compare/text-atoms.d.ts +24 -0
- package/dist/compare/text-atoms.d.ts.map +1 -0
- package/dist/compare/text-atoms.js +67 -0
- package/dist/compare/text-atoms.js.map +1 -0
- package/dist/compare/text.d.ts +24 -0
- package/dist/compare/text.d.ts.map +1 -0
- package/dist/compare/text.js +90 -0
- package/dist/compare/text.js.map +1 -0
- package/dist/compare/tree-atoms.d.ts +20 -0
- package/dist/compare/tree-atoms.d.ts.map +1 -0
- package/dist/compare/tree-atoms.js +58 -0
- package/dist/compare/tree-atoms.js.map +1 -0
- package/dist/compare/written-names.d.ts +8 -0
- package/dist/compare/written-names.d.ts.map +1 -0
- package/dist/compare/written-names.js +24 -0
- package/dist/compare/written-names.js.map +1 -0
- package/dist/config/load.d.ts +15 -0
- package/dist/config/load.d.ts.map +1 -1
- package/dist/config/load.js +5 -0
- package/dist/config/load.js.map +1 -1
- package/dist/config/option-problems.d.ts +16 -0
- package/dist/config/option-problems.d.ts.map +1 -0
- package/dist/config/option-problems.js +58 -0
- package/dist/config/option-problems.js.map +1 -0
- package/dist/config/read.d.ts +4 -0
- package/dist/config/read.d.ts.map +1 -0
- package/dist/config/read.js +8 -0
- package/dist/config/read.js.map +1 -0
- package/dist/config/rule-problems.d.ts +2 -4
- package/dist/config/rule-problems.d.ts.map +1 -1
- package/dist/config/rule-problems.js +7 -1
- package/dist/config/rule-problems.js.map +1 -1
- package/dist/config/style.d.ts +16 -0
- package/dist/config/style.d.ts.map +1 -0
- package/dist/config/style.js +36 -0
- package/dist/config/style.js.map +1 -0
- package/dist/config/warnings.d.ts +6 -0
- package/dist/config/warnings.d.ts.map +1 -0
- package/dist/config/warnings.js +10 -0
- package/dist/config/warnings.js.map +1 -0
- package/dist/config/write.d.ts.map +1 -1
- package/dist/config/write.js +17 -4
- package/dist/config/write.js.map +1 -1
- package/dist/custom/bounded-match.d.ts +15 -0
- package/dist/custom/bounded-match.d.ts.map +1 -0
- package/dist/custom/bounded-match.js +43 -0
- package/dist/custom/bounded-match.js.map +1 -0
- package/dist/custom/load.d.ts +8 -0
- package/dist/custom/load.d.ts.map +1 -0
- package/dist/custom/load.js +11 -0
- package/dist/custom/load.js.map +1 -0
- package/dist/custom/parse.d.ts +70 -0
- package/dist/custom/parse.d.ts.map +1 -0
- package/dist/custom/parse.js +215 -0
- package/dist/custom/parse.js.map +1 -0
- package/dist/custom/problems.d.ts +5 -0
- package/dist/custom/problems.d.ts.map +1 -0
- package/dist/custom/problems.js +78 -0
- package/dist/custom/problems.js.map +1 -0
- package/dist/custom/regex-safety.d.ts +11 -0
- package/dist/custom/regex-safety.d.ts.map +1 -0
- package/dist/custom/regex-safety.js +110 -0
- package/dist/custom/regex-safety.js.map +1 -0
- package/dist/custom/token-pattern.d.ts +8 -0
- package/dist/custom/token-pattern.d.ts.map +1 -0
- package/dist/custom/token-pattern.js +75 -0
- package/dist/custom/token-pattern.js.map +1 -0
- package/dist/detect.d.ts.map +1 -1
- package/dist/detect.js +24 -2
- package/dist/detect.js.map +1 -1
- package/dist/detectors/acronym-context.d.ts +4 -0
- package/dist/detectors/acronym-context.d.ts.map +1 -1
- package/dist/detectors/acronym-context.js +25 -4
- package/dist/detectors/acronym-context.js.map +1 -1
- package/dist/detectors/acronym-expansion.d.ts +2 -0
- package/dist/detectors/acronym-expansion.d.ts.map +1 -1
- package/dist/detectors/acronym-expansion.js +104 -1
- package/dist/detectors/acronym-expansion.js.map +1 -1
- package/dist/detectors/agreement-slip.d.ts +32 -0
- package/dist/detectors/agreement-slip.d.ts.map +1 -0
- package/dist/detectors/agreement-slip.js +137 -0
- package/dist/detectors/agreement-slip.js.map +1 -0
- package/dist/detectors/ai-phrasing.d.ts +20 -0
- package/dist/detectors/ai-phrasing.d.ts.map +1 -0
- package/dist/detectors/ai-phrasing.js +112 -0
- package/dist/detectors/ai-phrasing.js.map +1 -0
- package/dist/detectors/announced-count.d.ts +4 -0
- package/dist/detectors/announced-count.d.ts.map +1 -0
- package/dist/detectors/announced-count.js +20 -0
- package/dist/detectors/announced-count.js.map +1 -0
- package/dist/detectors/broken-link.d.ts +17 -0
- package/dist/detectors/broken-link.d.ts.map +1 -0
- package/dist/detectors/broken-link.js +66 -0
- package/dist/detectors/broken-link.js.map +1 -0
- package/dist/detectors/cited-name.d.ts.map +1 -1
- package/dist/detectors/cited-name.js +4 -4
- package/dist/detectors/cited-name.js.map +1 -1
- package/dist/detectors/cited-title.d.ts +11 -0
- package/dist/detectors/cited-title.d.ts.map +1 -0
- package/dist/detectors/cited-title.js +75 -0
- package/dist/detectors/cited-title.js.map +1 -0
- package/dist/detectors/concrete-evidence.d.ts +1 -1
- package/dist/detectors/concrete-evidence.d.ts.map +1 -1
- package/dist/detectors/concrete-evidence.js +2 -1
- package/dist/detectors/concrete-evidence.js.map +1 -1
- package/dist/detectors/content-morphemes.d.ts +4 -0
- package/dist/detectors/content-morphemes.d.ts.map +1 -0
- package/dist/detectors/content-morphemes.js +12 -0
- package/dist/detectors/content-morphemes.js.map +1 -0
- package/dist/detectors/contrast-frame.d.ts +17 -0
- package/dist/detectors/contrast-frame.d.ts.map +1 -0
- package/dist/detectors/contrast-frame.js +32 -0
- package/dist/detectors/contrast-frame.js.map +1 -0
- package/dist/detectors/custom.d.ts +8 -0
- package/dist/detectors/custom.d.ts.map +1 -0
- package/dist/detectors/custom.js +71 -0
- package/dist/detectors/custom.js.map +1 -0
- package/dist/detectors/dangling-figure.d.ts +4 -0
- package/dist/detectors/dangling-figure.d.ts.map +1 -0
- package/dist/detectors/dangling-figure.js +18 -0
- package/dist/detectors/dangling-figure.js.map +1 -0
- package/dist/detectors/doubled-punctuation.d.ts +9 -0
- package/dist/detectors/doubled-punctuation.d.ts.map +1 -0
- package/dist/detectors/doubled-punctuation.js +33 -0
- package/dist/detectors/doubled-punctuation.js.map +1 -0
- package/dist/detectors/doubled-word.d.ts +5 -0
- package/dist/detectors/doubled-word.d.ts.map +1 -1
- package/dist/detectors/doubled-word.js +24 -11
- package/dist/detectors/doubled-word.js.map +1 -1
- package/dist/detectors/en-shape.d.ts +0 -1
- package/dist/detectors/en-shape.d.ts.map +1 -1
- package/dist/detectors/en-shape.js +0 -235
- package/dist/detectors/en-shape.js.map +1 -1
- package/dist/detectors/enumerated-runs.d.ts +1 -1
- package/dist/detectors/enumerated-runs.d.ts.map +1 -1
- package/dist/detectors/enumerated-runs.js +15 -4
- package/dist/detectors/enumerated-runs.js.map +1 -1
- package/dist/detectors/gram-furniture.d.ts +6 -0
- package/dist/detectors/gram-furniture.d.ts.map +1 -0
- package/dist/detectors/gram-furniture.js +21 -0
- package/dist/detectors/gram-furniture.js.map +1 -0
- package/dist/detectors/gram-place.d.ts +2 -0
- package/dist/detectors/gram-place.d.ts.map +1 -1
- package/dist/detectors/gram-place.js +9 -7
- package/dist/detectors/gram-place.js.map +1 -1
- package/dist/detectors/gram-windows.d.ts +9 -0
- package/dist/detectors/gram-windows.d.ts.map +1 -0
- package/dist/detectors/gram-windows.js +27 -0
- package/dist/detectors/gram-windows.js.map +1 -0
- package/dist/detectors/heading-case.d.ts +2 -0
- package/dist/detectors/heading-case.d.ts.map +1 -1
- package/dist/detectors/heading-case.js +29 -2
- package/dist/detectors/heading-case.js.map +1 -1
- package/dist/detectors/heading-code-words.d.ts +6 -0
- package/dist/detectors/heading-code-words.d.ts.map +1 -0
- package/dist/detectors/heading-code-words.js +29 -0
- package/dist/detectors/heading-code-words.js.map +1 -0
- package/dist/detectors/heading-echo.d.ts.map +1 -1
- package/dist/detectors/heading-echo.js +17 -20
- package/dist/detectors/heading-echo.js.map +1 -1
- package/dist/detectors/heading-level-skip.d.ts +12 -0
- package/dist/detectors/heading-level-skip.d.ts.map +1 -0
- package/dist/detectors/heading-level-skip.js +11 -0
- package/dist/detectors/heading-level-skip.js.map +1 -0
- package/dist/detectors/heading-overlap.d.ts +13 -0
- package/dist/detectors/heading-overlap.d.ts.map +1 -0
- package/dist/detectors/heading-overlap.js +52 -0
- package/dist/detectors/heading-overlap.js.map +1 -0
- package/dist/detectors/image-alt-text.d.ts +3 -0
- package/dist/detectors/image-alt-text.d.ts.map +1 -0
- package/dist/detectors/image-alt-text.js +9 -0
- package/dist/detectors/image-alt-text.js.map +1 -0
- package/dist/detectors/index.d.ts.map +1 -1
- package/dist/detectors/index.js +40 -2
- package/dist/detectors/index.js.map +1 -1
- package/dist/detectors/kutoten-consistency.d.ts +24 -0
- package/dist/detectors/kutoten-consistency.d.ts.map +1 -0
- package/dist/detectors/kutoten-consistency.js +77 -0
- package/dist/detectors/kutoten-consistency.js.map +1 -0
- package/dist/detectors/lead-in.d.ts +1 -0
- package/dist/detectors/lead-in.d.ts.map +1 -1
- package/dist/detectors/lead-in.js +2 -1
- package/dist/detectors/lead-in.js.map +1 -1
- package/dist/detectors/letter-joined-name.d.ts +13 -0
- package/dist/detectors/letter-joined-name.d.ts.map +1 -0
- package/dist/detectors/letter-joined-name.js +11 -0
- package/dist/detectors/letter-joined-name.js.map +1 -0
- package/dist/detectors/lexicon-match.d.ts +4 -0
- package/dist/detectors/lexicon-match.d.ts.map +1 -1
- package/dist/detectors/lexicon-match.js +7 -2
- package/dist/detectors/lexicon-match.js.map +1 -1
- package/dist/detectors/lexicon.d.ts.map +1 -1
- package/dist/detectors/lexicon.js +5 -2
- package/dist/detectors/lexicon.js.map +1 -1
- package/dist/detectors/list-item.d.ts +45 -0
- package/dist/detectors/list-item.d.ts.map +1 -0
- package/dist/detectors/list-item.js +88 -0
- package/dist/detectors/list-item.js.map +1 -0
- package/dist/detectors/list-items.d.ts +31 -0
- package/dist/detectors/list-items.d.ts.map +1 -0
- package/dist/detectors/list-items.js +113 -0
- package/dist/detectors/list-items.js.map +1 -0
- package/dist/detectors/list-lead-in.d.ts +7 -0
- package/dist/detectors/list-lead-in.d.ts.map +1 -0
- package/dist/detectors/list-lead-in.js +28 -0
- package/dist/detectors/list-lead-in.js.map +1 -0
- package/dist/detectors/list-sentence.d.ts +65 -0
- package/dist/detectors/list-sentence.d.ts.map +1 -0
- package/dist/detectors/list-sentence.js +105 -0
- package/dist/detectors/list-sentence.js.map +1 -0
- package/dist/detectors/list-view.d.ts +34 -0
- package/dist/detectors/list-view.d.ts.map +1 -0
- package/dist/detectors/list-view.js +137 -0
- package/dist/detectors/list-view.js.map +1 -0
- package/dist/detectors/long-vowel.d.ts +7 -0
- package/dist/detectors/long-vowel.d.ts.map +1 -0
- package/dist/detectors/long-vowel.js +57 -0
- package/dist/detectors/long-vowel.js.map +1 -0
- package/dist/detectors/markup-finding.d.ts +6 -0
- package/dist/detectors/markup-finding.d.ts.map +1 -0
- package/dist/detectors/markup-finding.js +19 -0
- package/dist/detectors/markup-finding.js.map +1 -0
- package/dist/detectors/name-numeral.d.ts +1 -1
- package/dist/detectors/name-numeral.d.ts.map +1 -1
- package/dist/detectors/name-numeral.js +2 -7
- package/dist/detectors/name-numeral.js.map +1 -1
- package/dist/detectors/orthography.d.ts.map +1 -1
- package/dist/detectors/orthography.js +16 -12
- package/dist/detectors/orthography.js.map +1 -1
- package/dist/detectors/oxford-comma.d.ts +9 -0
- package/dist/detectors/oxford-comma.d.ts.map +1 -0
- package/dist/detectors/oxford-comma.js +246 -0
- package/dist/detectors/oxford-comma.js.map +1 -0
- package/dist/detectors/place-run.d.ts.map +1 -1
- package/dist/detectors/place-run.js +10 -6
- package/dist/detectors/place-run.js.map +1 -1
- package/dist/detectors/placeholder-text.d.ts +9 -0
- package/dist/detectors/placeholder-text.d.ts.map +1 -0
- package/dist/detectors/placeholder-text.js +18 -0
- package/dist/detectors/placeholder-text.js.map +1 -0
- package/dist/detectors/quote-around.d.ts +3 -0
- package/dist/detectors/quote-around.d.ts.map +1 -0
- package/dist/detectors/quote-around.js +8 -0
- package/dist/detectors/quote-around.js.map +1 -0
- package/dist/detectors/register.d.ts +11 -3
- package/dist/detectors/register.d.ts.map +1 -1
- package/dist/detectors/register.js +28 -9
- package/dist/detectors/register.js.map +1 -1
- package/dist/detectors/roman-numeral.d.ts +2 -0
- package/dist/detectors/roman-numeral.d.ts.map +1 -1
- package/dist/detectors/roman-numeral.js +2 -0
- package/dist/detectors/roman-numeral.js.map +1 -1
- package/dist/detectors/sentence-ending.d.ts +17 -1
- package/dist/detectors/sentence-ending.d.ts.map +1 -1
- package/dist/detectors/sentence-ending.js +13 -7
- package/dist/detectors/sentence-ending.js.map +1 -1
- package/dist/detectors/sentence-length.d.ts.map +1 -1
- package/dist/detectors/sentence-length.js +13 -4
- package/dist/detectors/sentence-length.js.map +1 -1
- package/dist/detectors/signals.d.ts +8 -0
- package/dist/detectors/signals.d.ts.map +1 -1
- package/dist/detectors/signals.js +94 -54
- package/dist/detectors/signals.js.map +1 -1
- package/dist/detectors/stacked-hedge.d.ts +0 -7
- package/dist/detectors/stacked-hedge.d.ts.map +1 -1
- package/dist/detectors/stacked-hedge.js +6 -3
- package/dist/detectors/stacked-hedge.js.map +1 -1
- package/dist/detectors/stray-space.d.ts +7 -0
- package/dist/detectors/stray-space.d.ts.map +1 -0
- package/dist/detectors/stray-space.js +34 -0
- package/dist/detectors/stray-space.js.map +1 -0
- package/dist/detectors/structure-tree.d.ts +6 -0
- package/dist/detectors/structure-tree.d.ts.map +1 -1
- package/dist/detectors/structure-tree.js +37 -1
- package/dist/detectors/structure-tree.js.map +1 -1
- package/dist/detectors/structure.d.ts +4 -4
- package/dist/detectors/structure.d.ts.map +1 -1
- package/dist/detectors/structure.js +7 -6
- package/dist/detectors/structure.js.map +1 -1
- package/dist/detectors/superlative-name.d.ts.map +1 -1
- package/dist/detectors/superlative-name.js +8 -5
- package/dist/detectors/superlative-name.js.map +1 -1
- package/dist/detectors/superlative-scope.d.ts.map +1 -1
- package/dist/detectors/superlative-scope.js +9 -4
- package/dist/detectors/superlative-scope.js.map +1 -1
- package/dist/detectors/token-column.d.ts +46 -0
- package/dist/detectors/token-column.d.ts.map +1 -0
- package/dist/detectors/token-column.js +95 -0
- package/dist/detectors/token-column.js.map +1 -0
- package/dist/detectors/unbalanced-bracket.d.ts +22 -0
- package/dist/detectors/unbalanced-bracket.d.ts.map +1 -0
- package/dist/detectors/unbalanced-bracket.js +119 -0
- package/dist/detectors/unbalanced-bracket.js.map +1 -0
- package/dist/detectors/url-run-on.d.ts +9 -0
- package/dist/detectors/url-run-on.d.ts.map +1 -0
- package/dist/detectors/url-run-on.js +19 -0
- package/dist/detectors/url-run-on.js.map +1 -0
- package/dist/document-sections.d.ts +13 -0
- package/dist/document-sections.d.ts.map +1 -0
- package/dist/document-sections.js +32 -0
- package/dist/document-sections.js.map +1 -0
- package/dist/document.d.ts +11 -4
- package/dist/document.d.ts.map +1 -1
- package/dist/document.js +99 -95
- package/dist/document.js.map +1 -1
- package/dist/email-parts.d.ts +28 -0
- package/dist/email-parts.d.ts.map +1 -0
- package/dist/email-parts.js +230 -0
- package/dist/email-parts.js.map +1 -0
- package/dist/eval.d.ts +2 -1
- package/dist/eval.d.ts.map +1 -1
- package/dist/eval.js +16 -4
- package/dist/eval.js.map +1 -1
- package/dist/figure-references.d.ts +30 -0
- package/dist/figure-references.d.ts.map +1 -0
- package/dist/figure-references.js +76 -0
- package/dist/figure-references.js.map +1 -0
- package/dist/files.d.ts +2 -0
- package/dist/files.d.ts.map +1 -1
- package/dist/files.js +4 -0
- package/dist/files.js.map +1 -1
- package/dist/genre-parse.d.ts +5 -1
- package/dist/genre-parse.d.ts.map +1 -1
- package/dist/genre-parse.js +16 -3
- package/dist/genre-parse.js.map +1 -1
- package/dist/genre-suggest.d.ts.map +1 -1
- package/dist/genre-suggest.js +15 -1
- package/dist/genre-suggest.js.map +1 -1
- package/dist/heading-label.d.ts +22 -0
- package/dist/heading-label.d.ts.map +1 -0
- package/dist/heading-label.js +50 -0
- package/dist/heading-label.js.map +1 -0
- package/dist/in-page-nav.d.ts +4 -1
- package/dist/in-page-nav.d.ts.map +1 -1
- package/dist/in-page-nav.js +53 -18
- package/dist/in-page-nav.js.map +1 -1
- package/dist/joined-view.d.ts.map +1 -1
- package/dist/joined-view.js +1 -0
- package/dist/joined-view.js.map +1 -1
- package/dist/levels.d.ts +5 -1
- package/dist/levels.d.ts.map +1 -1
- package/dist/levels.js +9 -0
- package/dist/levels.js.map +1 -1
- package/dist/line-paragraphs.d.ts +8 -0
- package/dist/line-paragraphs.d.ts.map +1 -1
- package/dist/line-paragraphs.js +36 -11
- package/dist/line-paragraphs.js.map +1 -1
- package/dist/long-vowel.d.ts +35 -0
- package/dist/long-vowel.d.ts.map +1 -0
- package/dist/long-vowel.js +71 -0
- package/dist/long-vowel.js.map +1 -0
- package/dist/markdown-node.d.ts +19 -0
- package/dist/markdown-node.d.ts.map +1 -0
- package/dist/markdown-node.js +6 -0
- package/dist/markdown-node.js.map +1 -0
- package/dist/markdown-read.d.ts +17 -0
- package/dist/markdown-read.d.ts.map +1 -0
- package/dist/markdown-read.js +37 -0
- package/dist/markdown-read.js.map +1 -0
- package/dist/markup.d.ts +22 -0
- package/dist/markup.d.ts.map +1 -0
- package/dist/markup.js +180 -0
- package/dist/markup.js.map +1 -0
- package/dist/mask.d.ts.map +1 -1
- package/dist/mask.js +10 -16
- package/dist/mask.js.map +1 -1
- package/dist/number-name.d.ts +21 -5
- package/dist/number-name.d.ts.map +1 -1
- package/dist/number-name.js +120 -18
- package/dist/number-name.js.map +1 -1
- package/dist/opening-line.d.ts +3 -0
- package/dist/opening-line.d.ts.map +1 -0
- package/dist/opening-line.js +14 -0
- package/dist/opening-line.js.map +1 -0
- package/dist/orthography.d.ts +7 -1
- package/dist/orthography.d.ts.map +1 -1
- package/dist/orthography.js +16 -5
- package/dist/orthography.js.map +1 -1
- package/dist/page-furniture.d.ts +5 -2
- package/dist/page-furniture.d.ts.map +1 -1
- package/dist/page-furniture.js +8 -2
- package/dist/page-furniture.js.map +1 -1
- package/dist/paragraph-length.d.ts +7 -0
- package/dist/paragraph-length.d.ts.map +1 -0
- package/dist/paragraph-length.js +10 -0
- package/dist/paragraph-length.js.map +1 -0
- package/dist/plain-source.d.ts +1 -0
- package/dist/plain-source.d.ts.map +1 -1
- package/dist/plain-source.js +2 -1
- package/dist/plain-source.js.map +1 -1
- package/dist/plugin.d.ts +121 -0
- package/dist/plugin.d.ts.map +1 -1
- package/dist/profile/for-file.d.ts.map +1 -1
- package/dist/profile/for-file.js +3 -1
- package/dist/profile/for-file.js.map +1 -1
- package/dist/quoted-span.d.ts +0 -2
- package/dist/quoted-span.d.ts.map +1 -1
- package/dist/quoted-span.js +9 -4
- package/dist/quoted-span.js.map +1 -1
- package/dist/reasons.d.ts +3 -0
- package/dist/reasons.d.ts.map +1 -1
- package/dist/reasons.js +6 -0
- package/dist/reasons.js.map +1 -1
- package/dist/reference-lists.d.ts +3 -0
- package/dist/reference-lists.d.ts.map +1 -0
- package/dist/reference-lists.js +75 -0
- package/dist/reference-lists.js.map +1 -0
- package/dist/render/explain.d.ts +7 -1
- package/dist/render/explain.d.ts.map +1 -1
- package/dist/render/explain.js +36 -12
- package/dist/render/explain.js.map +1 -1
- package/dist/render/friendly.d.ts.map +1 -1
- package/dist/render/friendly.js +19 -9
- package/dist/render/friendly.js.map +1 -1
- package/dist/render/options.d.ts +7 -0
- package/dist/render/options.d.ts.map +1 -0
- package/dist/render/options.js +50 -0
- package/dist/render/options.js.map +1 -0
- package/dist/render/rules-json.d.ts +4 -1
- package/dist/render/rules-json.d.ts.map +1 -1
- package/dist/render/rules-json.js +102 -12
- package/dist/render/rules-json.js.map +1 -1
- package/dist/render/rules-table.d.ts +4 -0
- package/dist/render/rules-table.d.ts.map +1 -0
- package/dist/render/rules-table.js +70 -0
- package/dist/render/rules-table.js.map +1 -0
- package/dist/render/sarif.js +4 -4
- package/dist/render/sarif.js.map +1 -1
- package/dist/render/semantic.js +3 -3
- package/dist/render/semantic.js.map +1 -1
- package/dist/render/severity-name.d.ts +6 -0
- package/dist/render/severity-name.d.ts.map +1 -0
- package/dist/render/severity-name.js +7 -0
- package/dist/render/severity-name.js.map +1 -0
- package/dist/render/text.d.ts +7 -2
- package/dist/render/text.d.ts.map +1 -1
- package/dist/render/text.js +15 -4
- package/dist/render/text.js.map +1 -1
- package/dist/resolve-genre.d.ts +1 -1
- package/dist/resolve-genre.d.ts.map +1 -1
- package/dist/resolve-genre.js +4 -1
- package/dist/resolve-genre.js.map +1 -1
- package/dist/rule-genres.d.ts +24 -0
- package/dist/rule-genres.d.ts.map +1 -0
- package/dist/rule-genres.js +11 -0
- package/dist/rule-genres.js.map +1 -0
- package/dist/rule-guide.d.ts +54 -0
- package/dist/rule-guide.d.ts.map +1 -0
- package/dist/rule-guide.js +81 -0
- package/dist/rule-guide.js.map +1 -0
- package/dist/rule-load.d.ts.map +1 -1
- package/dist/rule-load.js +94 -32
- package/dist/rule-load.js.map +1 -1
- package/dist/rule-options.d.ts +50 -0
- package/dist/rule-options.d.ts.map +1 -0
- package/dist/rule-options.js +106 -0
- package/dist/rule-options.js.map +1 -0
- package/dist/run-semantic.d.ts +3 -1
- package/dist/run-semantic.d.ts.map +1 -1
- package/dist/run-semantic.js +8 -3
- package/dist/run-semantic.js.map +1 -1
- package/dist/run.d.ts +15 -0
- package/dist/run.d.ts.map +1 -1
- package/dist/run.js +57 -10
- package/dist/run.js.map +1 -1
- package/dist/semantic.d.ts +1 -1
- package/dist/semantic.d.ts.map +1 -1
- package/dist/semantic.js +10 -3
- package/dist/semantic.js.map +1 -1
- package/dist/sentence-shape.d.ts.map +1 -1
- package/dist/sentence-shape.js +4 -4
- package/dist/sentence-shape.js.map +1 -1
- package/dist/setting-problems.d.ts +2 -1
- package/dist/setting-problems.d.ts.map +1 -1
- package/dist/setting-problems.js +6 -1
- package/dist/setting-problems.js.map +1 -1
- package/dist/span-cut.d.ts +6 -0
- package/dist/span-cut.d.ts.map +1 -0
- package/dist/span-cut.js +22 -0
- package/dist/span-cut.js.map +1 -0
- package/dist/span-merge.d.ts +4 -0
- package/dist/span-merge.d.ts.map +1 -0
- package/dist/span-merge.js +12 -0
- package/dist/span-merge.js.map +1 -0
- package/dist/speaker-labels.d.ts +4 -0
- package/dist/speaker-labels.d.ts.map +1 -0
- package/dist/speaker-labels.js +106 -0
- package/dist/speaker-labels.js.map +1 -0
- package/dist/stray-space.d.ts +17 -0
- package/dist/stray-space.d.ts.map +1 -0
- package/dist/stray-space.js +66 -0
- package/dist/stray-space.js.map +1 -0
- package/dist/structure/aside-depth.d.ts +21 -0
- package/dist/structure/aside-depth.d.ts.map +1 -0
- package/dist/structure/aside-depth.js +65 -0
- package/dist/structure/aside-depth.js.map +1 -0
- package/dist/structure/build.d.ts +5 -1
- package/dist/structure/build.d.ts.map +1 -1
- package/dist/structure/build.js +29 -17
- package/dist/structure/build.js.map +1 -1
- package/dist/structure/closed-pairs.d.ts +8 -0
- package/dist/structure/closed-pairs.d.ts.map +1 -0
- package/dist/structure/closed-pairs.js +22 -0
- package/dist/structure/closed-pairs.js.map +1 -0
- package/dist/structure/date-range.d.ts +21 -0
- package/dist/structure/date-range.d.ts.map +1 -0
- package/dist/structure/date-range.js +45 -0
- package/dist/structure/date-range.js.map +1 -0
- package/dist/structure/known-mentions.d.ts +18 -0
- package/dist/structure/known-mentions.d.ts.map +1 -0
- package/dist/structure/known-mentions.js +78 -0
- package/dist/structure/known-mentions.js.map +1 -0
- package/dist/structure/numbering.d.ts +1 -0
- package/dist/structure/numbering.d.ts.map +1 -1
- package/dist/structure/numbering.js +11 -6
- package/dist/structure/numbering.js.map +1 -1
- package/dist/structure/of.d.ts +3 -1
- package/dist/structure/of.d.ts.map +1 -1
- package/dist/structure/of.js +5 -1
- package/dist/structure/of.js.map +1 -1
- package/dist/structure/percent-sum.d.ts +16 -0
- package/dist/structure/percent-sum.d.ts.map +1 -0
- package/dist/structure/percent-sum.js +104 -0
- package/dist/structure/percent-sum.js.map +1 -0
- package/dist/structure/quoted-number.d.ts +8 -0
- package/dist/structure/quoted-number.d.ts.map +1 -0
- package/dist/structure/quoted-number.js +34 -0
- package/dist/structure/quoted-number.js.map +1 -0
- package/dist/structure/relative-find.d.ts.map +1 -1
- package/dist/structure/relative-find.js +34 -46
- package/dist/structure/relative-find.js.map +1 -1
- package/dist/structure/relative-resolve.d.ts.map +1 -1
- package/dist/structure/relative-resolve.js +94 -42
- package/dist/structure/relative-resolve.js.map +1 -1
- package/dist/structure/runs.d.ts +2 -0
- package/dist/structure/runs.d.ts.map +1 -1
- package/dist/structure/runs.js +2 -2
- package/dist/structure/runs.js.map +1 -1
- package/dist/structure/sexp.d.ts +1 -1
- package/dist/structure/sexp.d.ts.map +1 -1
- package/dist/structure/sexp.js +18 -6
- package/dist/structure/sexp.js.map +1 -1
- package/dist/structure/total.d.ts +3 -0
- package/dist/structure/total.d.ts.map +1 -1
- package/dist/structure/total.js +2 -2
- package/dist/structure/total.js.map +1 -1
- package/dist/structure/universal.d.ts +14 -2
- package/dist/structure/universal.d.ts.map +1 -1
- package/dist/structure/universal.js +17 -2
- package/dist/structure/universal.js.map +1 -1
- package/dist/structure/wrapped-tail.d.ts +14 -7
- package/dist/structure/wrapped-tail.d.ts.map +1 -1
- package/dist/structure/wrapped-tail.js +33 -8
- package/dist/structure/wrapped-tail.js.map +1 -1
- package/dist/style-load.d.ts +4 -0
- package/dist/style-load.d.ts.map +1 -0
- package/dist/style-load.js +28 -0
- package/dist/style-load.js.map +1 -0
- package/dist/style-parse.d.ts +19 -0
- package/dist/style-parse.d.ts.map +1 -0
- package/dist/style-parse.js +60 -0
- package/dist/style-parse.js.map +1 -0
- package/dist/subheading-line.d.ts +6 -0
- package/dist/subheading-line.d.ts.map +1 -0
- package/dist/subheading-line.js +57 -0
- package/dist/subheading-line.js.map +1 -0
- package/dist/team-names.d.ts.map +1 -1
- package/dist/team-names.js +11 -14
- package/dist/team-names.js.map +1 -1
- package/dist/template-syntax.d.ts +17 -0
- package/dist/template-syntax.d.ts.map +1 -0
- package/dist/template-syntax.js +140 -0
- package/dist/template-syntax.js.map +1 -0
- package/dist/text-above.d.ts +19 -0
- package/dist/text-above.d.ts.map +1 -0
- package/dist/text-above.js +43 -0
- package/dist/text-above.js.map +1 -0
- package/dist/text-figures.d.ts +10 -0
- package/dist/text-figures.d.ts.map +1 -0
- package/dist/text-figures.js +131 -0
- package/dist/text-figures.js.map +1 -0
- package/dist/trailing-aside.d.ts +2 -0
- package/dist/trailing-aside.d.ts.map +1 -0
- package/dist/trailing-aside.js +53 -0
- package/dist/trailing-aside.js.map +1 -0
- package/dist/tree-walk.d.ts +18 -0
- package/dist/tree-walk.d.ts.map +1 -0
- package/dist/tree-walk.js +45 -0
- package/dist/tree-walk.js.map +1 -0
- package/genres.yaml +60 -2
- package/package.json +5 -3
- package/reference-headings.yaml +17 -0
- package/rules/adverb-overuse.yaml +19 -0
- package/rules/agentless-passive.yaml +19 -0
- package/rules/agreement-slip.yaml +49 -0
- package/rules/ai-generated-composite.yaml +102 -0
- package/rules/ai-tell.yaml +23 -0
- package/rules/announced-count-mismatch.yaml +57 -0
- package/rules/announcing-opener.yaml +51 -0
- package/rules/assistant-residue.yaml +52 -0
- package/rules/bold-density.yaml +31 -0
- package/rules/broken-link.yaml +65 -0
- package/rules/closing-cliche.yaml +33 -0
- package/rules/colon-lead-in.yaml +59 -0
- package/rules/concrete-evidence-density.yaml +41 -0
- package/rules/contraction-consistency.yaml +18 -0
- package/rules/contrast-framing.yaml +57 -0
- package/rules/cushion-phrase-density.yaml +25 -0
- package/rules/dangling-figure-reference.yaml +61 -0
- package/rules/dangling-reference.yaml +53 -1
- package/rules/date-order.yaml +33 -1
- package/rules/date-range-reversed.yaml +46 -0
- package/rules/date-weekday-mismatch.yaml +17 -1
- package/rules/double-keigo.yaml +16 -0
- package/rules/doubled-punctuation.yaml +45 -0
- package/rules/doubled-word.yaml +17 -1
- package/rules/duplicate-definition.yaml +59 -1
- package/rules/emoji-density.yaml +25 -0
- package/rules/empty-conclusion.yaml +29 -0
- package/rules/empty-intensifier.yaml +19 -0
- package/rules/excessive-hedging.yaml +19 -0
- package/rules/expletive-construction.yaml +19 -0
- package/rules/heading-echo.yaml +32 -0
- package/rules/heading-level-skip.yaml +78 -0
- package/rules/hiragana-fukushi.yaml +16 -0
- package/rules/image-alt-text.yaml +54 -0
- package/rules/internal-jargon.yaml +21 -0
- package/rules/katakana-long-vowel.yaml +98 -0
- package/rules/kutoten-consistency.yaml +53 -0
- package/rules/latin-spacing.yaml +23 -4
- package/rules/max-kanji-continuous.yaml +16 -0
- package/rules/max-paragraph-length.yaml +42 -2
- package/rules/max-sentence-length.yaml +36 -0
- package/rules/ngram-repetition.yaml +29 -2
- package/rules/no-doubled-joshi.yaml +16 -0
- package/rules/no-em-dash.yaml +25 -0
- package/rules/no-mixed-desumasu.yaml +27 -2
- package/rules/no-nakaguro-parallel.yaml +20 -0
- package/rules/numbering-gap.yaml +53 -1
- package/rules/oxford-comma-consistency.yaml +19 -1
- package/rules/padded-intro.yaml +19 -0
- package/rules/paragraph-length-variance.yaml +49 -0
- package/rules/percent-sum-mismatch.yaml +58 -0
- package/rules/preamble-length.yaml +56 -0
- package/rules/preferred-term.yaml +27 -0
- package/rules/proper-noun-density.yaml +26 -0
- package/rules/repeated-conjunction.yaml +47 -0
- package/rules/repeated-sentence-head.yaml +23 -0
- package/rules/required-sections.yaml +49 -0
- package/rules/risk-disclosure.yaml +22 -0
- package/rules/rule-of-three.yaml +97 -0
- package/rules/sasete-itadaku.yaml +18 -0
- package/rules/section-length-uniformity.yaml +89 -0
- package/rules/sentence-initial-conjunction-run.yaml +18 -0
- package/rules/sentence-rhythm.yaml +25 -0
- package/rules/stock-transition.yaml +55 -0
- package/rules/stray-space.yaml +56 -0
- package/rules/taigen-dome-in-prose.yaml +19 -0
- package/rules/title-case-consistency.yaml +42 -0
- package/rules/total-mismatch.yaml +37 -1
- package/rules/unbalanced-bracket.yaml +56 -0
- package/rules/undefined-acronym.yaml +23 -0
- package/rules/unfilled-placeholder.yaml +50 -0
- package/rules/unqualified-superlative.yaml +19 -0
- package/rules/unsourced-number.yaml +16 -0
- package/rules/url-run-on.yaml +45 -0
- package/skills/chaff/SKILL.md +70 -0
- package/src/announced-count.ts +148 -0
- package/src/bare-url.ts +35 -0
- package/src/baseline.ts +17 -1
- package/src/body-section.ts +7 -0
- package/src/calendar-number.ts +33 -10
- package/src/cli-args.ts +6 -0
- package/src/cli-text.ts +8 -4
- package/src/cli.ts +37 -37
- package/src/closing-numbers.ts +72 -0
- package/src/commands/compare.ts +80 -0
- package/src/commands/eval.ts +19 -8
- package/src/commands/feedback.ts +12 -6
- package/src/commands/test.ts +20 -17
- package/src/commands/tree.ts +41 -5
- package/src/compare/atom.ts +33 -0
- package/src/compare/clock-time.ts +86 -0
- package/src/compare/extract.ts +78 -0
- package/src/compare/fact-text.ts +68 -0
- package/src/compare/markup-atoms.ts +29 -0
- package/src/compare/match.ts +105 -0
- package/src/compare/outcome.ts +70 -0
- package/src/compare/proper-nouns.ts +65 -0
- package/src/compare/render.ts +102 -0
- package/src/compare/spans.ts +17 -0
- package/src/compare/text-atoms.ts +95 -0
- package/src/compare/text.ts +120 -0
- package/src/compare/tree-atoms.ts +80 -0
- package/src/compare/written-names.ts +26 -0
- package/src/config/load.ts +21 -0
- package/src/config/option-problems.ts +70 -0
- package/src/config/read.ts +8 -0
- package/src/config/rule-problems.ts +12 -2
- package/src/config/style.ts +42 -0
- package/src/config/warnings.ts +13 -0
- package/src/config/write.ts +18 -4
- package/src/custom/bounded-match.ts +58 -0
- package/src/custom/load.ts +15 -0
- package/src/custom/parse.ts +274 -0
- package/src/custom/problems.ts +89 -0
- package/src/custom/regex-safety.ts +118 -0
- package/src/custom/token-pattern.ts +84 -0
- package/src/detect.ts +28 -2
- package/src/detectors/acronym-context.ts +32 -4
- package/src/detectors/acronym-expansion.ts +132 -1
- package/src/detectors/agreement-slip.ts +191 -0
- package/src/detectors/ai-phrasing.ts +137 -0
- package/src/detectors/announced-count.ts +25 -0
- package/src/detectors/broken-link.ts +90 -0
- package/src/detectors/cited-name.ts +6 -5
- package/src/detectors/cited-title.ts +96 -0
- package/src/detectors/concrete-evidence.ts +3 -2
- package/src/detectors/content-morphemes.ts +19 -0
- package/src/detectors/contrast-frame.ts +54 -0
- package/src/detectors/custom.ts +89 -0
- package/src/detectors/dangling-figure.ts +22 -0
- package/src/detectors/doubled-punctuation.ts +49 -0
- package/src/detectors/doubled-word.ts +19 -4
- package/src/detectors/en-shape.ts +0 -269
- package/src/detectors/enumerated-runs.ts +13 -4
- package/src/detectors/gram-furniture.ts +30 -0
- package/src/detectors/gram-place.ts +9 -5
- package/src/detectors/gram-windows.ts +31 -0
- package/src/detectors/heading-case.ts +30 -2
- package/src/detectors/heading-code-words.ts +35 -0
- package/src/detectors/heading-echo.ts +18 -22
- package/src/detectors/heading-level-skip.ts +19 -0
- package/src/detectors/heading-overlap.ts +65 -0
- package/src/detectors/image-alt-text.ts +11 -0
- package/src/detectors/index.ts +49 -2
- package/src/detectors/kutoten-consistency.ts +96 -0
- package/src/detectors/lead-in.ts +3 -1
- package/src/detectors/letter-joined-name.ts +15 -0
- package/src/detectors/lexicon-match.ts +9 -2
- package/src/detectors/lexicon.ts +6 -2
- package/src/detectors/list-item.ts +122 -0
- package/src/detectors/list-items.ts +163 -0
- package/src/detectors/list-lead-in.ts +33 -0
- package/src/detectors/list-sentence.ts +157 -0
- package/src/detectors/list-view.ts +157 -0
- package/src/detectors/long-vowel.ts +66 -0
- package/src/detectors/markup-finding.ts +24 -0
- package/src/detectors/name-numeral.ts +4 -2
- package/src/detectors/orthography.ts +24 -18
- package/src/detectors/oxford-comma.ts +297 -0
- package/src/detectors/place-run.ts +7 -4
- package/src/detectors/placeholder-text.ts +27 -0
- package/src/detectors/quote-around.ts +9 -0
- package/src/detectors/register.ts +37 -10
- package/src/detectors/roman-numeral.ts +3 -0
- package/src/detectors/sentence-ending.ts +14 -7
- package/src/detectors/sentence-length.ts +16 -5
- package/src/detectors/signals.ts +110 -53
- package/src/detectors/stacked-hedge.ts +6 -3
- package/src/detectors/stray-space.ts +40 -0
- package/src/detectors/structure-tree.ts +45 -1
- package/src/detectors/structure.ts +13 -6
- package/src/detectors/superlative-name.ts +7 -4
- package/src/detectors/superlative-scope.ts +8 -3
- package/src/detectors/token-column.ts +149 -0
- package/src/detectors/unbalanced-bracket.ts +153 -0
- package/src/detectors/url-run-on.ts +27 -0
- package/src/document-sections.ts +46 -0
- package/src/document.ts +116 -127
- package/src/email-parts.ts +269 -0
- package/src/eval.ts +14 -4
- package/src/figure-references.ts +112 -0
- package/src/files.ts +5 -0
- package/src/genre-parse.ts +30 -5
- package/src/genre-suggest.ts +15 -2
- package/src/heading-label.ts +55 -0
- package/src/in-page-nav.ts +48 -19
- package/src/joined-view.ts +1 -0
- package/src/levels.ts +14 -1
- package/src/line-paragraphs.ts +56 -10
- package/src/long-vowel.ts +99 -0
- package/src/markdown-node.ts +19 -0
- package/src/markdown-read.ts +44 -0
- package/src/markup.ts +210 -0
- package/src/mask.ts +10 -19
- package/src/number-name.ts +152 -25
- package/src/opening-line.ts +17 -0
- package/src/orthography.ts +20 -5
- package/src/page-furniture.ts +11 -2
- package/src/paragraph-length.ts +9 -0
- package/src/plain-source.ts +2 -1
- package/src/plugin.ts +107 -1
- package/src/profile/for-file.ts +3 -1
- package/src/quoted-span.ts +10 -4
- package/src/reasons.ts +9 -0
- package/src/reference-lists.ts +91 -0
- package/src/render/explain.ts +47 -13
- package/src/render/friendly.ts +20 -9
- package/src/render/options.ts +58 -0
- package/src/render/rules-json.ts +130 -14
- package/src/render/rules-table.ts +91 -0
- package/src/render/sarif.ts +4 -4
- package/src/render/semantic.ts +3 -3
- package/src/render/severity-name.ts +10 -0
- package/src/render/text.ts +21 -7
- package/src/resolve-genre.ts +4 -1
- package/src/rule-genres.ts +25 -0
- package/src/rule-guide.ts +135 -0
- package/src/rule-load.ts +98 -33
- package/src/rule-options.ts +131 -0
- package/src/run-semantic.ts +28 -20
- package/src/run.ts +78 -11
- package/src/semantic.ts +11 -3
- package/src/sentence-shape.ts +4 -5
- package/src/setting-problems.ts +7 -1
- package/src/span-cut.ts +28 -0
- package/src/span-merge.ts +13 -0
- package/src/speaker-labels.ts +129 -0
- package/src/stray-space.ts +81 -0
- package/src/structure/aside-depth.ts +67 -0
- package/src/structure/build.ts +38 -19
- package/src/structure/closed-pairs.ts +20 -0
- package/src/structure/date-range.ts +69 -0
- package/src/structure/known-mentions.ts +96 -0
- package/src/structure/numbering.ts +9 -5
- package/src/structure/of.ts +11 -3
- package/src/structure/percent-sum.ts +135 -0
- package/src/structure/quoted-number.ts +36 -0
- package/src/structure/relative-find.ts +34 -47
- package/src/structure/relative-resolve.ts +104 -42
- package/src/structure/runs.ts +2 -2
- package/src/structure/sexp.ts +17 -5
- package/src/structure/total.ts +2 -2
- package/src/structure/universal.ts +24 -4
- package/src/structure/wrapped-tail.ts +38 -13
- package/src/style-load.ts +28 -0
- package/src/style-parse.ts +77 -0
- package/src/subheading-line.ts +68 -0
- package/src/team-names.ts +13 -13
- package/src/template-syntax.ts +164 -0
- package/src/text-above.ts +49 -0
- package/src/text-figures.ts +147 -0
- package/src/trailing-aside.ts +50 -0
- package/src/tree-walk.ts +48 -0
- package/styles/bunkacho.yaml +25 -0
- package/styles/ieice.yaml +29 -0
- package/styles/jis-z8301-2011.yaml +25 -0
package/genres.yaml
CHANGED
|
@@ -5,6 +5,10 @@
|
|
|
5
5
|
# A group's rules apply to every genre in it; a genre's own rules win over its group's.
|
|
6
6
|
# A rule turned off here is listed under "did not run" with the genre as the reason.
|
|
7
7
|
# profile: the document profile (profiles/*.yaml) this genre reads with, when chaff.yaml names none.
|
|
8
|
+
# suggest: when no genre is set, what makes a file look like this genre, strongest first:
|
|
9
|
+
# paths (the file's path), then per language an opening (the body's first line, past front matter and
|
|
10
|
+
# headings) or a line with min_lines (how many lines must have that shape). A wrong suggestion misleads
|
|
11
|
+
# more than none, so a cue is added only where the corpus shows it does not fire on other kinds.
|
|
8
12
|
# Which genres a rule applies to at all is the rule's use_for; the numbers behind a level are the rule's by_genre.
|
|
9
13
|
|
|
10
14
|
groups:
|
|
@@ -43,6 +47,10 @@ groups:
|
|
|
43
47
|
paragraph-length-variance: off
|
|
44
48
|
ai-tell: off
|
|
45
49
|
ai-generated-composite: off
|
|
50
|
+
contrast-framing: off
|
|
51
|
+
stock-transition: off
|
|
52
|
+
announcing-opener: off
|
|
53
|
+
colon-lead-in: off
|
|
46
54
|
# A help page repeats its heading in its first line (To upload a file, ...) and states no claims to back up.
|
|
47
55
|
- id: docs
|
|
48
56
|
name: { ja: 説明書, en: Documentation }
|
|
@@ -67,6 +75,10 @@ groups:
|
|
|
67
75
|
paragraph-length-variance: off
|
|
68
76
|
ai-tell: off
|
|
69
77
|
ai-generated-composite: off
|
|
78
|
+
contrast-framing: off
|
|
79
|
+
stock-transition: off
|
|
80
|
+
announcing-opener: off
|
|
81
|
+
colon-lead-in: off
|
|
70
82
|
# Science writes in the passive, hedges its claims on purpose (may, suggest) and cites numbers as its evidence.
|
|
71
83
|
- id: academic
|
|
72
84
|
name: { ja: 学術, en: Academic }
|
|
@@ -87,6 +99,7 @@ groups:
|
|
|
87
99
|
rule-of-three: off
|
|
88
100
|
section-length-uniformity: off
|
|
89
101
|
paragraph-length-variance: off
|
|
102
|
+
stock-transition: off
|
|
90
103
|
# Length, rhythm, repetition and register are the author's choices in literature, and dialogue mixes styles.
|
|
91
104
|
# Only what one work can hold itself to runs: consistent spacing and commas, and numbering without gaps.
|
|
92
105
|
- id: literature
|
|
@@ -106,6 +119,7 @@ groups:
|
|
|
106
119
|
no-mixed-desumasu: off
|
|
107
120
|
contraction-consistency: off
|
|
108
121
|
doubled-word: off
|
|
122
|
+
agreement-slip: off
|
|
109
123
|
agentless-passive: off
|
|
110
124
|
expletive-construction: off
|
|
111
125
|
excessive-hedging: off
|
|
@@ -130,11 +144,19 @@ groups:
|
|
|
130
144
|
paragraph-length-variance: off
|
|
131
145
|
ai-tell: off
|
|
132
146
|
ai-generated-composite: off
|
|
147
|
+
contrast-framing: off
|
|
148
|
+
stock-transition: off
|
|
149
|
+
announcing-opener: off
|
|
150
|
+
colon-lead-in: off
|
|
133
151
|
dangling-reference: off
|
|
134
152
|
duplicate-definition: off
|
|
135
153
|
date-order: off
|
|
136
154
|
date-weekday-mismatch: off
|
|
137
155
|
total-mismatch: off
|
|
156
|
+
announced-count-mismatch: off
|
|
157
|
+
dangling-figure-reference: off
|
|
158
|
+
date-range-reversed: off
|
|
159
|
+
percent-sum-mismatch: off
|
|
138
160
|
# A speech opens with greetings and closes with thanks: that is its form, not padding.
|
|
139
161
|
- id: speech
|
|
140
162
|
name: { ja: 話し言葉, en: Speech }
|
|
@@ -149,6 +171,10 @@ groups:
|
|
|
149
171
|
rule-of-three: off
|
|
150
172
|
section-length-uniformity: off
|
|
151
173
|
paragraph-length-variance: off
|
|
174
|
+
contrast-framing: off
|
|
175
|
+
stock-transition: off
|
|
176
|
+
announcing-opener: off
|
|
177
|
+
colon-lead-in: off
|
|
152
178
|
|
|
153
179
|
genres:
|
|
154
180
|
- id: technical/spec
|
|
@@ -191,6 +217,11 @@ genres:
|
|
|
191
217
|
summary:
|
|
192
218
|
ja: 仕事のメールと手紙
|
|
193
219
|
en: Work email and letters
|
|
220
|
+
# A letter is a letter even when it encloses an agreement (an offer letter), so it goes by how it opens.
|
|
221
|
+
# Not by an addressee line (〇〇御中, To: ...): quotes and proposals open with one too.
|
|
222
|
+
suggest:
|
|
223
|
+
ja: { opening: "^(?:拝啓|謹啓|前略)(?:\\s|$)|^件名\\s*[::]" }
|
|
224
|
+
en: { opening: "^(?:Dear [^\\n]{1,60}|To whom it may concern)[,:]?$|^Subject\\s*:" }
|
|
194
225
|
- id: business/press-release
|
|
195
226
|
name: { ja: プレスリリース・お知らせ, en: Press release and notice }
|
|
196
227
|
summary:
|
|
@@ -221,6 +252,8 @@ genres:
|
|
|
221
252
|
dangling-reference: normal
|
|
222
253
|
date-weekday-mismatch: normal
|
|
223
254
|
total-mismatch: normal
|
|
255
|
+
dangling-figure-reference: normal
|
|
256
|
+
date-range-reversed: normal
|
|
224
257
|
- id: legal/statute
|
|
225
258
|
name: { ja: 法令・規程, en: Statute and regulation }
|
|
226
259
|
summary:
|
|
@@ -232,6 +265,16 @@ genres:
|
|
|
232
265
|
paths: ["(^|/)(laws?|statutes?|regulations?|kitei|kisoku)(/|[-_.])"]
|
|
233
266
|
ja: { line: "(?:この|本)(?:法律|政令|省令|府令|規則|規程|条例|定款|通達)", min_lines: 2 }
|
|
234
267
|
en: { line: "\\b(?:[Tt]his (?:Act|[Pp]art|[Ss]ubpart|[Rr]egulation)|[Tt]hese [Rr]egulations)\\b|^§\\s?\\d", min_lines: 3 }
|
|
268
|
+
# A statute or an internal rule is read article by article against its own numbers, like a contract.
|
|
269
|
+
# The statutes in the corpus (yarn corpus) give these no findings, deleted articles (第三条 削除) and 第十条の二 included.
|
|
270
|
+
rules:
|
|
271
|
+
numbering-gap: normal
|
|
272
|
+
duplicate-definition: normal
|
|
273
|
+
dangling-reference: normal
|
|
274
|
+
date-weekday-mismatch: normal
|
|
275
|
+
total-mismatch: normal
|
|
276
|
+
dangling-figure-reference: normal
|
|
277
|
+
date-range-reversed: normal
|
|
235
278
|
- id: legal/judgment
|
|
236
279
|
name: { ja: 判決, en: Court decision }
|
|
237
280
|
summary:
|
|
@@ -253,10 +296,9 @@ genres:
|
|
|
253
296
|
summary:
|
|
254
297
|
ja: 使い方の説明・手順書・ヘルプ
|
|
255
298
|
en: User guides, how-to pages and help
|
|
299
|
+
# Path only: step and procedure headings are as common in tech blogs and specifications as in manuals.
|
|
256
300
|
suggest:
|
|
257
301
|
paths: ["(^|/)(manuals?|guides?|how-?tos?|help|tutorials?|user-?guides?)(/|[-_.])"]
|
|
258
|
-
ja: { line: "^#{1,6}\\s.*(?:手順|操作方法|設定方法)", min_lines: 2 }
|
|
259
|
-
en: { line: "^#{1,6}\\s*(?:Steps?\\b|Step \\d|Prerequisites|Before you begin|Troubleshooting)", min_lines: 2 }
|
|
260
302
|
- id: docs/faq
|
|
261
303
|
name: { ja: よくある質問, en: FAQ }
|
|
262
304
|
summary:
|
|
@@ -275,6 +317,11 @@ genres:
|
|
|
275
317
|
paths: ["(^|/)(glossary|glossaries|yogo|用語集)(/|[-_.])"]
|
|
276
318
|
ja: { line: "^#{1,6}\\s*用語集", min_lines: 1 }
|
|
277
319
|
en: { line: "^#{1,6}\\s*Glossary\\b", min_lines: 1 }
|
|
320
|
+
# A reader looks up one entry and reads only that. A definition is a noun phrase (風の吹いてくる方向。), and sibling
|
|
321
|
+
# entries share one wording on purpose (Portion of labor productivity change attributed to …), which no reader sees twice.
|
|
322
|
+
rules:
|
|
323
|
+
taigen-dome-in-prose: off
|
|
324
|
+
ngram-repetition: off
|
|
278
325
|
- id: academic/paper
|
|
279
326
|
name: { ja: 論文, en: Academic paper }
|
|
280
327
|
summary:
|
|
@@ -293,8 +340,11 @@ genres:
|
|
|
293
340
|
summary:
|
|
294
341
|
ja: 小説・物語
|
|
295
342
|
en: Novels and stories
|
|
343
|
+
# A line that is a spoken line (「…」, or 「…」と云った): a sentence in quotes, not a term being defined
|
|
344
|
+
# (「…」とは, 「…」という, 「…」とする, 「…」と定める, 「…」と称する, 「…」と呼ぶ).
|
|
296
345
|
suggest:
|
|
297
346
|
paths: ["(^|/)(novels?|fiction|stories|shosetsu)(/|[-_.])"]
|
|
347
|
+
ja: { line: "^「[^」]+」と(?!は|い[うい]|する|定め|称|呼)|^「[^」]*[、。?!…―][^」]*」$", min_lines: 10 }
|
|
298
348
|
- id: literature/essay
|
|
299
349
|
name: { ja: 随筆, en: Literary essay }
|
|
300
350
|
summary:
|
|
@@ -305,15 +355,21 @@ genres:
|
|
|
305
355
|
summary:
|
|
306
356
|
ja: 詩・短歌・俳句
|
|
307
357
|
en: Poems and verse
|
|
358
|
+
# Verse lines: short lines with no sentence punctuation (a tanka's three lines; a capitalised line of English verse).
|
|
359
|
+
# A glossary or a list of names has short lines too, so it takes many of them.
|
|
308
360
|
suggest:
|
|
309
361
|
paths: ["(^|/)(poems?|poetry|tanka|haiku)(/|[-_.])"]
|
|
362
|
+
ja: { line: "^(?=.*[ぁ-ゖ])[ぁ-ゖゝゞァ-ヺー-ヾ一-鿿々〆]{3,20}$", min_lines: 40 }
|
|
363
|
+
en: { line: "^\\s{0,8}[A-Z][a-z’']*,? [^.#|*\\[\\]()<>:0-9]{6,50}[a-z,;!?’—-]$", min_lines: 80 }
|
|
310
364
|
- id: literature/play
|
|
311
365
|
name: { ja: 戯曲・脚本, en: Play and script }
|
|
312
366
|
summary:
|
|
313
367
|
ja: 戯曲・脚本
|
|
314
368
|
en: Plays and scripts
|
|
369
|
+
# A speaker's name before the line: 妻 あたしは… (two ideographic spaces; a statute's 第一条 has one), ALGERNON.
|
|
315
370
|
suggest:
|
|
316
371
|
paths: ["(^|/)(plays?|screenplays?|kyakuhon)(/|[-_.])"]
|
|
372
|
+
ja: { line: "^[^\\s○◯●※・]{1,6} \\S", min_lines: 20 }
|
|
317
373
|
en: { line: "^[A-Z][A-Z '-]{2,}\\.$", min_lines: 10 }
|
|
318
374
|
- id: speech/address
|
|
319
375
|
name: { ja: スピーチ・挨拶, en: Speech }
|
|
@@ -349,6 +405,7 @@ genres:
|
|
|
349
405
|
no-mixed-desumasu: off
|
|
350
406
|
contraction-consistency: off
|
|
351
407
|
doubled-word: off
|
|
408
|
+
agreement-slip: off
|
|
352
409
|
sasete-itadaku: off
|
|
353
410
|
double-keigo: off
|
|
354
411
|
cushion-phrase-density: off
|
|
@@ -361,3 +418,4 @@ genres:
|
|
|
361
418
|
undefined-acronym: off
|
|
362
419
|
ai-tell: off
|
|
363
420
|
ai-generated-composite: off
|
|
421
|
+
assistant-residue: off
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "chaffjs",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.18.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",
|
|
@@ -42,8 +42,10 @@
|
|
|
42
42
|
"dist",
|
|
43
43
|
"genres.yaml",
|
|
44
44
|
"profiles",
|
|
45
|
+
"reference-headings.yaml",
|
|
45
46
|
"rules",
|
|
46
47
|
"skills",
|
|
48
|
+
"styles",
|
|
47
49
|
"src"
|
|
48
50
|
],
|
|
49
51
|
"engines": {
|
|
@@ -55,8 +57,8 @@
|
|
|
55
57
|
},
|
|
56
58
|
"dependencies": {
|
|
57
59
|
"@anthropic-ai/sdk": "^0.125.0",
|
|
58
|
-
"@chaffjs/lang-en": "0.
|
|
59
|
-
"@chaffjs/lang-ja": "0.
|
|
60
|
+
"@chaffjs/lang-en": "0.16.0",
|
|
61
|
+
"@chaffjs/lang-ja": "0.17.0",
|
|
60
62
|
"mdast-util-from-markdown": "^2.0.3",
|
|
61
63
|
"mdast-util-frontmatter": "^2.0.1",
|
|
62
64
|
"mdast-util-gfm-table": "^2.0.0",
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# 文献一覧の見出し。言語の見当付け(どの言語パッケージを読むか)は、この見出しの下の一覧を数えない。
|
|
2
|
+
# 文献一覧は本文の言語ではなく、引いた文献の言語で書かれる。日本語の論文の英語の文献が多いと、文書が英語に見える。
|
|
3
|
+
# 見当付けは言語パッケージを読む前に動くので、どちらの言語の見出しもここに置く。大文字と小文字は区別しない。
|
|
4
|
+
headings:
|
|
5
|
+
- 参考文献
|
|
6
|
+
- 引用文献
|
|
7
|
+
- 参照文献
|
|
8
|
+
- 文献
|
|
9
|
+
- 文献一覧
|
|
10
|
+
- 引用・参考文献
|
|
11
|
+
- 参考・引用文献
|
|
12
|
+
- References
|
|
13
|
+
- Reference
|
|
14
|
+
- Bibliography
|
|
15
|
+
- Works Cited
|
|
16
|
+
- Literature Cited
|
|
17
|
+
- Cited Literature
|
|
@@ -26,3 +26,22 @@ how_to_fix:
|
|
|
26
26
|
levels: { strict: 10, normal: 15, relaxed: 25 }
|
|
27
27
|
|
|
28
28
|
use_for: [blog, business, legal, docs, academic, literature, speech]
|
|
29
|
+
|
|
30
|
+
group: readability
|
|
31
|
+
summary:
|
|
32
|
+
ja: 英語で、-ly の副詞が多すぎる所(弱い動詞の印になりやすい)
|
|
33
|
+
en: Too many -ly adverbs, which usually prop up a weak verb
|
|
34
|
+
example:
|
|
35
|
+
en:
|
|
36
|
+
pad: true
|
|
37
|
+
before: |
|
|
38
|
+
She quickly walked to the room and quietly opened the door. He really badly needed the report and angrily asked for it.
|
|
39
|
+
after: |
|
|
40
|
+
She hurried to the room and eased the door open. He needed the report and demanded it.
|
|
41
|
+
|
|
42
|
+
not_flagged:
|
|
43
|
+
ja: 短い文書(200 語より短いもの)は測りません。
|
|
44
|
+
en: Documents under 200 words are not measured.
|
|
45
|
+
level_meaning:
|
|
46
|
+
ja: 1000 語あたり {limit} 個まで
|
|
47
|
+
en: up to {limit} per 1000 words
|
|
@@ -26,3 +26,22 @@ how_to_fix:
|
|
|
26
26
|
levels: { strict: 1, normal: 1, relaxed: 2 }
|
|
27
27
|
|
|
28
28
|
use_for: [business, legal, docs, academic, literature, speech]
|
|
29
|
+
|
|
30
|
+
group: wording
|
|
31
|
+
summary:
|
|
32
|
+
ja: 「〜が決定されました」のように、受け身で書いて、誰がしたのかが書かれていない所
|
|
33
|
+
en: A passive sentence ("the budget was approved") that never says who did it
|
|
34
|
+
example:
|
|
35
|
+
ja:
|
|
36
|
+
before: 来期の予算が承認されました。
|
|
37
|
+
after: 取締役会が、来期の予算を承認しました。
|
|
38
|
+
en:
|
|
39
|
+
before: The budget for next year was approved.
|
|
40
|
+
after: The board approved the budget for next year.
|
|
41
|
+
|
|
42
|
+
not_flagged:
|
|
43
|
+
ja: 「〜によって」のように、した人が同じ文に書いてある受け身は指しません。法務のジャンルは、受け身が書き方そのものなので見ません。
|
|
44
|
+
en: A passive that names the actor in the same sentence ("by the board") is not reported. Legal genres, where the passive is the form, do not run this rule.
|
|
45
|
+
level_meaning:
|
|
46
|
+
ja: 一文に受け身が {limit} 個あれば指摘
|
|
47
|
+
en: reported when a sentence has {limit} passives with no actor
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
id: agreement-slip
|
|
2
|
+
layer: L3
|
|
3
|
+
status: experimental
|
|
4
|
+
how_to_find: agreement-slip
|
|
5
|
+
requires: [pos]
|
|
6
|
+
languages: [en]
|
|
7
|
+
extra_word_lists: [singular-determiner, plural-determiner, invariant-noun, count-adjective, dependent-possessive, finite-auxiliary, misnumbered-phrase]
|
|
8
|
+
severity: warning
|
|
9
|
+
|
|
10
|
+
name:
|
|
11
|
+
ja: 語の形が合っていない
|
|
12
|
+
en: Words that do not agree
|
|
13
|
+
|
|
14
|
+
why:
|
|
15
|
+
ja: 「a significant changes」「these new version」のように限定詞と名詞の単数・複数が食い違う文や、「Your can check」のように所有の語が主語の位置にある文は、書き換えの途中で片方だけ直した跡です。読み手はつまずき、急いで書いた文書に見えます。解析器の読みが一通りに決まる形だけを数え、単数と複数が同じ綴りの語(series / data)、代名詞にも読める this / these の直後の語、名詞を重ねた語(a sales team)は数えていません。
|
|
16
|
+
en: A determiner and a noun that differ in number ("a significant changes", "these new version"), or a possessive where the subject belongs ("Your can check"), is left over from an edit that fixed one word and not the other. The reader stumbles, and the document looks rushed. Only forms with one reading are counted; nouns spelled alike in both numbers ("series", "data"), a word right after "this" or "these" (which can stand alone), and nouns that modify another noun ("a sales team") are not.
|
|
17
|
+
|
|
18
|
+
message:
|
|
19
|
+
ja: 「{word}」で単数と複数が合っていません
|
|
20
|
+
en: '"{word}" mixes singular and plural'
|
|
21
|
+
|
|
22
|
+
messages:
|
|
23
|
+
number:
|
|
24
|
+
ja: 「{word}」で単数と複数が合っていません
|
|
25
|
+
en: '"{word}" mixes singular and plural'
|
|
26
|
+
possessive:
|
|
27
|
+
ja: 「{word}」で、所有の語が主語の位置にあります
|
|
28
|
+
en: '"{word}" puts a possessive where the subject belongs'
|
|
29
|
+
|
|
30
|
+
how_to_fix:
|
|
31
|
+
ja: 限定詞か名詞のどちらかに揃えてください(a significant change / significant changes)。所有の語なら、主語の語に直してください(Your can → You can、their is → there is)。
|
|
32
|
+
en: Make the determiner and the noun agree ("a significant change" or "significant changes"). For a possessive, write the subject you meant ("Your can" becomes "You can", "their is" becomes "there is").
|
|
33
|
+
|
|
34
|
+
levels: { strict: error, normal: warning, relaxed: info }
|
|
35
|
+
|
|
36
|
+
use_for: [blog, business, technical, legal, docs, academic, literature, speech]
|
|
37
|
+
|
|
38
|
+
group: slips
|
|
39
|
+
summary:
|
|
40
|
+
ja: 英語で、「these new version」のように単数と複数が合っていない所
|
|
41
|
+
en: Words that no longer agree after an edit, as in "these new version"
|
|
42
|
+
example:
|
|
43
|
+
en:
|
|
44
|
+
before: These new version will ship in May.
|
|
45
|
+
after: This new version will ship in May.
|
|
46
|
+
|
|
47
|
+
not_flagged:
|
|
48
|
+
ja: 単数と複数で形が同じ名詞(series、data)、this や these の直後の語、名詞を修飾する名詞(a sales team)は指しません。
|
|
49
|
+
en: Nouns spelled alike in both numbers ("series", "data"), a word right after "this" or "these", and nouns that modify another noun ("a sales team") are not reported.
|
|
@@ -13,6 +13,11 @@ from:
|
|
|
13
13
|
- padded-intro
|
|
14
14
|
- closing-cliche
|
|
15
15
|
- no-em-dash
|
|
16
|
+
- contrast-framing
|
|
17
|
+
- stock-transition
|
|
18
|
+
- assistant-residue
|
|
19
|
+
- announcing-opener
|
|
20
|
+
- colon-lead-in
|
|
16
21
|
|
|
17
22
|
name:
|
|
18
23
|
ja: 生成文の特徴がそろっている
|
|
@@ -34,3 +39,100 @@ how_to_fix:
|
|
|
34
39
|
levels: { strict: 2, normal: 3, relaxed: 5 }
|
|
35
40
|
|
|
36
41
|
use_for: [blog, business, legal, docs, academic, literature, speech]
|
|
42
|
+
|
|
43
|
+
group: ai-tells
|
|
44
|
+
summary:
|
|
45
|
+
ja: 生成された文章の特徴がいくつも一つの文書にそろっている所(生成だと決めつけはしません)
|
|
46
|
+
en: Several signals of generated text together in one document (a place to reread, not a verdict)
|
|
47
|
+
example:
|
|
48
|
+
ja:
|
|
49
|
+
config: { genre: blog/tech, rules: { ai-generated-composite: strict } }
|
|
50
|
+
before: |
|
|
51
|
+
# 在庫管理を見直す
|
|
52
|
+
|
|
53
|
+
現代社会において、データは重要な役割を果たすと言えるでしょう。
|
|
54
|
+
|
|
55
|
+
- 正確さ
|
|
56
|
+
- 速さ
|
|
57
|
+
- 安さ
|
|
58
|
+
|
|
59
|
+
毎日することです。
|
|
60
|
+
|
|
61
|
+
- 数える
|
|
62
|
+
- 記録する
|
|
63
|
+
- 見返す
|
|
64
|
+
|
|
65
|
+
よくある失敗です。
|
|
66
|
+
|
|
67
|
+
- 数え忘れ
|
|
68
|
+
- 記録の漏れ
|
|
69
|
+
- 見返さない
|
|
70
|
+
after: |
|
|
71
|
+
# 在庫管理を見直す
|
|
72
|
+
|
|
73
|
+
当社では、在庫の数を毎朝データで確かめてから発注しています。
|
|
74
|
+
|
|
75
|
+
- 正確さ
|
|
76
|
+
- 速さ
|
|
77
|
+
|
|
78
|
+
毎日することです。
|
|
79
|
+
|
|
80
|
+
- 数える
|
|
81
|
+
- 記録する
|
|
82
|
+
- 見返す
|
|
83
|
+
- 月末の棚卸しと突き合わせる
|
|
84
|
+
|
|
85
|
+
よくある失敗です。
|
|
86
|
+
|
|
87
|
+
- 数え忘れ
|
|
88
|
+
- 記録の漏れ
|
|
89
|
+
- 見返さない
|
|
90
|
+
en:
|
|
91
|
+
config: { genre: blog/tech, rules: { ai-generated-composite: strict } }
|
|
92
|
+
before: |
|
|
93
|
+
# Rethinking stock control
|
|
94
|
+
|
|
95
|
+
In today's fast-paced world, data plays a crucial role. Let us delve into why.
|
|
96
|
+
|
|
97
|
+
- Accuracy
|
|
98
|
+
- Speed
|
|
99
|
+
- Cost
|
|
100
|
+
|
|
101
|
+
Every day we:
|
|
102
|
+
|
|
103
|
+
- Count
|
|
104
|
+
- Record
|
|
105
|
+
- Review
|
|
106
|
+
|
|
107
|
+
Common mistakes:
|
|
108
|
+
|
|
109
|
+
- Missed counts
|
|
110
|
+
- Gaps in the record
|
|
111
|
+
- No review
|
|
112
|
+
after: |
|
|
113
|
+
# Rethinking stock control
|
|
114
|
+
|
|
115
|
+
We check stock levels every morning before placing orders.
|
|
116
|
+
|
|
117
|
+
- Accuracy
|
|
118
|
+
- Speed
|
|
119
|
+
|
|
120
|
+
Every day we:
|
|
121
|
+
|
|
122
|
+
- Count
|
|
123
|
+
- Record
|
|
124
|
+
- Review
|
|
125
|
+
- Match against the month-end count
|
|
126
|
+
|
|
127
|
+
Common mistakes:
|
|
128
|
+
|
|
129
|
+
- Missed counts
|
|
130
|
+
- Gaps in the record
|
|
131
|
+
- No review
|
|
132
|
+
|
|
133
|
+
not_flagged:
|
|
134
|
+
ja: 特徴が一つだけなら何も言いません。そろっても、生成された文章だとは言いません。読み返す場所の目印です。
|
|
135
|
+
en: One signal alone says nothing. Even several together do not say the text was generated; they mark a place to reread.
|
|
136
|
+
level_meaning:
|
|
137
|
+
ja: 特徴が {limit} 種そろえば指摘
|
|
138
|
+
en: reported once {limit} signals occur together
|
package/rules/ai-tell.yaml
CHANGED
|
@@ -26,3 +26,26 @@ how_to_fix:
|
|
|
26
26
|
levels: { strict: 10, normal: 18, relaxed: 30 }
|
|
27
27
|
|
|
28
28
|
use_for: [blog, business, legal, docs, academic, literature, speech]
|
|
29
|
+
|
|
30
|
+
group: ai-tells
|
|
31
|
+
summary:
|
|
32
|
+
ja: 「重要な役割を果たす」「と言えるでしょう」のような、生成された文章にありがちな言い回しが重なった所
|
|
33
|
+
en: Phrases common in generated text ("delve into", "plays a crucial role") piling up
|
|
34
|
+
example:
|
|
35
|
+
ja:
|
|
36
|
+
before: |
|
|
37
|
+
現代社会において、データは重要な役割を果たすと言えるでしょう。
|
|
38
|
+
after: |
|
|
39
|
+
当社では、在庫の数を毎朝データで確かめてから発注しています。
|
|
40
|
+
en:
|
|
41
|
+
before: |
|
|
42
|
+
In today's fast-paced world, data plays a crucial role. Let us delve into why.
|
|
43
|
+
after: |
|
|
44
|
+
We check stock levels every morning before placing orders.
|
|
45
|
+
|
|
46
|
+
not_flagged:
|
|
47
|
+
ja: どの言い回しも、一つだけなら普通の文章にあります。重みの合計が上限を超えるまでは何も言いません。これだけで生成された文章だとは言いません。
|
|
48
|
+
en: Each phrase is ordinary on its own; nothing is said until the weights add up past the limit. This alone never says the text was generated.
|
|
49
|
+
level_meaning:
|
|
50
|
+
ja: 言い回しの重みの合計が {limit} 点まで
|
|
51
|
+
en: up to a score of {limit}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
id: announced-count-mismatch
|
|
2
|
+
layer: L3
|
|
3
|
+
status: experimental
|
|
4
|
+
how_to_find: announced-count
|
|
5
|
+
severity: warning
|
|
6
|
+
|
|
7
|
+
name:
|
|
8
|
+
ja: 予告した数と箇条書きの数が合わない
|
|
9
|
+
en: A list that does not have the number of items announced
|
|
10
|
+
|
|
11
|
+
why:
|
|
12
|
+
ja: 「以下の3点」と書いたのに、すぐ下の箇条書きが2つや4つだと、読み手は抜けた項目があるのか、数え間違いなのかを確かめることになります。項目を足したり消したりしたあとに、予告の数を直し忘れると起きます。箇条書きのすぐ前の文が、「以下の」「次の」のような先を指す語か、終わりのコロン(:)と一緒に数(3点、2つ、4項目)を書いているときだけ、その数を箇条書きのいちばん外側の項目の数と比べます。
|
|
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").
|
|
14
|
+
|
|
15
|
+
message:
|
|
16
|
+
ja: 「{phrase}」と予告していますが、すぐ下の箇条書きは{listed}項目です
|
|
17
|
+
en: '"{phrase}" is announced, but the number of items in the list below is {listed}'
|
|
18
|
+
|
|
19
|
+
how_to_fix:
|
|
20
|
+
ja: 項目が抜けていないか確かめて、足りなければ足し、数が違うなら予告の数を直してください。
|
|
21
|
+
en: Check whether an item is missing. Add it, or correct the number in the announcement.
|
|
22
|
+
|
|
23
|
+
levels: { strict: error, normal: warning, relaxed: info }
|
|
24
|
+
|
|
25
|
+
use_for: [business, technical, blog, legal, docs, academic, literature, speech]
|
|
26
|
+
|
|
27
|
+
group: facts
|
|
28
|
+
summary:
|
|
29
|
+
ja: 「以下の3点」と書いたのに、下の箇条書きの数が違う所
|
|
30
|
+
en: A list whose number of items differs from the number announced just before it
|
|
31
|
+
example:
|
|
32
|
+
ja:
|
|
33
|
+
before: |
|
|
34
|
+
申し込みの前に、次の3点を確認してください。
|
|
35
|
+
|
|
36
|
+
- 本人確認の書類
|
|
37
|
+
- 振込先の口座
|
|
38
|
+
after: |
|
|
39
|
+
申し込みの前に、次の2点を確認してください。
|
|
40
|
+
|
|
41
|
+
- 本人確認の書類
|
|
42
|
+
- 振込先の口座
|
|
43
|
+
en:
|
|
44
|
+
before: |
|
|
45
|
+
Before you apply, check the following three items:
|
|
46
|
+
|
|
47
|
+
- Your ID
|
|
48
|
+
- Your bank account
|
|
49
|
+
after: |
|
|
50
|
+
Before you apply, check the following two items:
|
|
51
|
+
|
|
52
|
+
- Your ID
|
|
53
|
+
- Your bank account
|
|
54
|
+
|
|
55
|
+
not_flagged:
|
|
56
|
+
ja: 目安の数(約3点、3つ以上)、順番(3つ目)、選ぶ数(以下から1つ選ぶ)、見出しや表の前の数、箇条書きがすぐ後ろに無い数は比べません。予告の文に数が二つあるときも比べません。
|
|
57
|
+
en: An estimate (about three, three or more), a rank (the first three), how many to pick (choose two), a number before a heading or a table, and a number with no list right after it are not compared. Nor is a sentence with two numbers in it.
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
id: announcing-opener
|
|
2
|
+
layer: L2
|
|
3
|
+
status: experimental
|
|
4
|
+
how_to_find: opener-pile
|
|
5
|
+
word_list: announcing-opener
|
|
6
|
+
uses: [pos]
|
|
7
|
+
severity: info
|
|
8
|
+
|
|
9
|
+
name:
|
|
10
|
+
ja: 予告で始まる文が多い
|
|
11
|
+
en: Too many sentences that announce before they say
|
|
12
|
+
|
|
13
|
+
why:
|
|
14
|
+
ja: 「重要なのは、」「ポイントは、」「正直に言うと、」は、中身の前に「これから大事なことを言う」と予告します。1 つなら目印ですが、重なるとどの文も同じ重さに見え、予告だけが残ります。生成文によく見られる癖として知られています。
|
|
15
|
+
en: '"The key point is", "Here''s the thing" and "Honestly," announce a point before making it. Once, that is a signpost; piled up, every sentence claims the same weight and the announcements are all that stand out. A habit well known in generated text.'
|
|
16
|
+
|
|
17
|
+
message:
|
|
18
|
+
ja: 「{matched}」など、予告で始まる文が {count} 個あります({limit} 個から)
|
|
19
|
+
en: '"{matched}" and other announcing openers start {count} sentences ({limit} needed)'
|
|
20
|
+
|
|
21
|
+
how_to_fix:
|
|
22
|
+
ja: 予告を消して、中身から書き始めてください。本当に一番大事な一つだけなら、予告を残してもかまいません。
|
|
23
|
+
en: Delete the announcement and start with the point. If it really is the one point that matters most, keep that one.
|
|
24
|
+
|
|
25
|
+
# 指摘に要る数。長さで割らない:人の記事は長くても 1 つ 2 つで、生成文は短くても重ねる。
|
|
26
|
+
levels: { strict: 2, normal: 3, relaxed: 5 }
|
|
27
|
+
|
|
28
|
+
use_for: [blog, business, legal, docs, academic, literature, speech]
|
|
29
|
+
|
|
30
|
+
group: ai-tells
|
|
31
|
+
summary:
|
|
32
|
+
ja: 「重要なのは、」「ポイントは、」「正直に言うと、」のように、中身の前に予告する文頭が重なっている所
|
|
33
|
+
en: 'Openers that announce a point before making it ("The key point is", "Here''s the thing", "Honestly,") piling up'
|
|
34
|
+
example:
|
|
35
|
+
ja:
|
|
36
|
+
before: |
|
|
37
|
+
重要なのは、設定を先に確かめることです。ポイントは、ログを残すことです。正直に言うと、手順書は古くなっています。
|
|
38
|
+
after: |
|
|
39
|
+
まず設定を確かめ、そのときのログを残してください。手順書は去年の版のままなので、画面の名前が違います。
|
|
40
|
+
en:
|
|
41
|
+
before: |
|
|
42
|
+
The key point is that settings come first. Here's the thing: logs matter too. Honestly, the manual is out of date.
|
|
43
|
+
after: |
|
|
44
|
+
Check the settings first and keep the log of that check. The manual is last year's, so the screen names differ.
|
|
45
|
+
|
|
46
|
+
not_flagged:
|
|
47
|
+
ja: 文の途中の「このポイントは」と、指摘に要る数に届かない予告は言いません。「大事なのは」「結論から言うと」は、生成 AI 以前の人の記事にも同じくらいあるので数えません。
|
|
48
|
+
en: An announcing phrase inside a sentence, and fewer than the level needs, are not reported.
|
|
49
|
+
level_meaning:
|
|
50
|
+
ja: 予告で始まる文が {limit} 個あれば指摘
|
|
51
|
+
en: reported once {limit} sentences open with an announcement
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
id: assistant-residue
|
|
2
|
+
layer: L2
|
|
3
|
+
status: experimental
|
|
4
|
+
how_to_find: assistant-residue
|
|
5
|
+
word_list: assistant-residue
|
|
6
|
+
uses: [pos]
|
|
7
|
+
severity: warning
|
|
8
|
+
|
|
9
|
+
name:
|
|
10
|
+
ja: 会話の返事の名残
|
|
11
|
+
en: Chat-reply residue
|
|
12
|
+
|
|
13
|
+
why:
|
|
14
|
+
ja: 「私の知識は」「お役に立てれば幸いです」は、チャットの返事を文書に貼ったときに残る言葉です。知識の期限や AI としての断り書きは 1 つで言い、人も書く礼の言葉は 2 つ重なったときだけ言います。
|
|
15
|
+
en: '"As of my last knowledge update" and "I hope this helps" are what a chat reply leaves behind when pasted into a document. A knowledge-cutoff or AI disclaimer counts on its own; a courtesy people also write counts only when two come together.'
|
|
16
|
+
|
|
17
|
+
message:
|
|
18
|
+
ja: 「{matched}」は会話の返事の言葉です(点 {density}、{limit} から)
|
|
19
|
+
en: '"{matched}" is chat-reply wording (score {density}, from {limit})'
|
|
20
|
+
|
|
21
|
+
how_to_fix:
|
|
22
|
+
ja: 文書の読み手に向けた言葉に書き直すか、消してください。知識の期限を書いた文は、確かめた日付と出典に置き換えてください。
|
|
23
|
+
en: Rewrite it for the document's reader, or delete it. Replace a knowledge-cutoff line with the date you checked and the source.
|
|
24
|
+
|
|
25
|
+
# 語彙表の重みの合計を 10 倍した点。名残そのものは重み 1 で 1 つで届き、人も書く礼は 0.5 で 2 つ重なって届く。
|
|
26
|
+
# strict でも礼 1 つでは言わない。1 つなら人の書き方と区別がつかない。
|
|
27
|
+
levels: { strict: 10, normal: 10, relaxed: 20 }
|
|
28
|
+
|
|
29
|
+
use_for: [blog, business, technical, legal, docs, academic, literature, speech]
|
|
30
|
+
|
|
31
|
+
group: ai-tells
|
|
32
|
+
summary:
|
|
33
|
+
ja: 「私の知識は」「お役に立てれば幸いです」のような、チャットの返事を貼ったときに残る言葉
|
|
34
|
+
en: What a pasted chat reply leaves behind ("As of my last knowledge update", "I hope this helps")
|
|
35
|
+
example:
|
|
36
|
+
ja:
|
|
37
|
+
before: |
|
|
38
|
+
新しい棟の計画は検討中でした。私の知識は2023年時点のものです。
|
|
39
|
+
after: |
|
|
40
|
+
新しい棟の計画は、2026年9月の議会資料では検討中でした。
|
|
41
|
+
en:
|
|
42
|
+
before: |
|
|
43
|
+
As of my last knowledge update, plans for a new wing were under discussion.
|
|
44
|
+
after: |
|
|
45
|
+
The council's minutes of September 2026 say plans for a new wing are under discussion.
|
|
46
|
+
|
|
47
|
+
not_flagged:
|
|
48
|
+
ja: 人も書く礼の言葉(「お役に立てれば幸いです」)が一つだけなら、何度書いてあっても指しません。同じ文の中の二つの言い回しは一つと数えます。
|
|
49
|
+
en: A single courtesy people also write ("I hope this helps"), however often it is repeated, is not reported. Two listed phrases in one sentence count as one.
|
|
50
|
+
level_meaning:
|
|
51
|
+
ja: 重みの合計が {limit} 点で指摘
|
|
52
|
+
en: reported from a score of {limit}
|
package/rules/bold-density.yaml
CHANGED
|
@@ -28,3 +28,34 @@ levels:
|
|
|
28
28
|
relaxed: 40
|
|
29
29
|
|
|
30
30
|
use_for: [blog, business, technical, legal, docs, academic, literature, speech]
|
|
31
|
+
|
|
32
|
+
group: readability
|
|
33
|
+
summary:
|
|
34
|
+
ja: 太字が多すぎて、どこが大事なのか分からなくなった所
|
|
35
|
+
en: So much bold text that nothing stands out any more
|
|
36
|
+
example:
|
|
37
|
+
ja:
|
|
38
|
+
before: |
|
|
39
|
+
## 申し込み
|
|
40
|
+
|
|
41
|
+
**申し込み**は**今月末**までに、**専用の用紙**で**総務部**へ出してください。用紙は社内の共有フォルダにあり、印刷して手で書いても、画面で入力してから印刷してもかまいません。**上長の印**が要るので、締め切りの三日前までには上長に渡してください。**遅れた場合**は、どんな理由でも**受け付けません**。分からないことがあれば、総務部の窓口に電話で問い合わせてください。受付の時間は平日の午前九時から午後五時までです。書き方の見本も、同じ共有フォルダに置いてあります。
|
|
42
|
+
after: |
|
|
43
|
+
## 申し込み
|
|
44
|
+
|
|
45
|
+
申し込みは、専用の用紙で総務部へ出してください。**締め切りは今月末で、遅れた場合はどんな理由でも受け付けません。**用紙は社内の共有フォルダにあり、印刷して手で書いても、画面で入力してから印刷してもかまいません。上長の印が要るので、締め切りの三日前までには上長に渡してください。分からないことがあれば、総務部の窓口に電話で問い合わせてください。受付の時間は平日の午前九時から午後五時までです。書き方の見本も、同じ共有フォルダに置いてあります。
|
|
46
|
+
en:
|
|
47
|
+
before: |
|
|
48
|
+
## How to apply
|
|
49
|
+
|
|
50
|
+
Send the **form** to **HR** by the **end of the month**. The form is in the shared folder. You can print it and fill it in by hand, or type into it on screen and then print it. It needs your **manager's signature**, so give it to your manager at least three days before the deadline. **Late forms** will **not** be **accepted**, whatever the reason. If you have a question, call the HR desk between nine and five on a weekday.
|
|
51
|
+
after: |
|
|
52
|
+
## How to apply
|
|
53
|
+
|
|
54
|
+
Send the form to HR. **The deadline is the end of the month, and late forms will not be accepted, whatever the reason.** The form is in the shared folder. You can print it and fill it in by hand, or type into it on screen and then print it. It needs your manager's signature, so give it to your manager at least three days before the deadline. If you have a question, call the HR desk between nine and five on a weekday.
|
|
55
|
+
|
|
56
|
+
not_flagged:
|
|
57
|
+
ja: 200 字より短い節は、1 箇所で割合が跳ねるので測りません。
|
|
58
|
+
en: Sections under 200 characters are not measured, since one bold span would swing the rate.
|
|
59
|
+
level_meaning:
|
|
60
|
+
ja: 1000 字あたり太字 {limit} 箇所まで
|
|
61
|
+
en: up to {limit} bold spans per 1000 characters
|