chaffjs 0.20.0 → 0.21.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/README.md +5 -4
- package/dist/api.d.ts +16 -1
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js.map +1 -1
- package/dist/cli-text.d.ts +2 -0
- package/dist/cli-text.d.ts.map +1 -1
- package/dist/cli-text.js +14 -5
- package/dist/cli-text.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +4 -0
- package/dist/cli.js.map +1 -1
- package/dist/command-help.d.ts +7 -0
- package/dist/command-help.d.ts.map +1 -0
- package/dist/command-help.js +18 -0
- package/dist/command-help.js.map +1 -0
- package/dist/commands/eval.js +2 -2
- package/dist/commands/eval.js.map +1 -1
- package/dist/commands/fix-plan.d.ts.map +1 -1
- package/dist/commands/fix-plan.js +11 -1
- package/dist/commands/fix-plan.js.map +1 -1
- package/dist/commands/help.d.ts +4 -0
- package/dist/commands/help.d.ts.map +1 -0
- package/dist/commands/help.js +7 -0
- package/dist/commands/help.js.map +1 -0
- package/dist/config/load.d.ts +2 -0
- package/dist/config/load.d.ts.map +1 -1
- package/dist/config/load.js +1 -0
- package/dist/config/load.js.map +1 -1
- package/dist/config/option-problems.js +2 -2
- package/dist/config/option-problems.js.map +1 -1
- package/dist/config/rule-problems.js +2 -2
- package/dist/config/rule-problems.js.map +1 -1
- package/dist/custom/checked.d.ts +9 -0
- package/dist/custom/checked.d.ts.map +1 -0
- package/dist/custom/checked.js +3 -0
- package/dist/custom/checked.js.map +1 -0
- package/dist/custom/dsl-fields.d.ts +27 -0
- package/dist/custom/dsl-fields.d.ts.map +1 -0
- package/dist/custom/dsl-fields.js +86 -0
- package/dist/custom/dsl-fields.js.map +1 -0
- package/dist/custom/load.d.ts.map +1 -1
- package/dist/custom/load.js +2 -0
- package/dist/custom/load.js.map +1 -1
- package/dist/custom/parse.d.ts +14 -3
- package/dist/custom/parse.d.ts.map +1 -1
- package/dist/custom/parse.js +44 -40
- package/dist/custom/parse.js.map +1 -1
- package/dist/custom/problems.d.ts.map +1 -1
- package/dist/custom/problems.js +11 -1
- package/dist/custom/problems.js.map +1 -1
- package/dist/detectors/blank-structure.d.ts.map +1 -1
- package/dist/detectors/blank-structure.js +6 -4
- package/dist/detectors/blank-structure.js.map +1 -1
- package/dist/detectors/clause-shape.d.ts +22 -0
- package/dist/detectors/clause-shape.d.ts.map +1 -0
- package/dist/detectors/clause-shape.js +149 -0
- package/dist/detectors/clause-shape.js.map +1 -0
- package/dist/detectors/code-fences.d.ts +34 -0
- package/dist/detectors/code-fences.d.ts.map +1 -0
- package/dist/detectors/code-fences.js +100 -0
- package/dist/detectors/code-fences.js.map +1 -0
- package/dist/detectors/cross-definitions.d.ts +4 -0
- package/dist/detectors/cross-definitions.d.ts.map +1 -0
- package/dist/detectors/cross-definitions.js +43 -0
- package/dist/detectors/cross-definitions.js.map +1 -0
- package/dist/detectors/cross-facts.d.ts +4 -0
- package/dist/detectors/cross-facts.d.ts.map +1 -0
- package/dist/detectors/cross-facts.js +53 -0
- package/dist/detectors/cross-facts.js.map +1 -0
- package/dist/detectors/cross-registry/cross-doc-duplicate-definition.d.ts +3 -0
- package/dist/detectors/cross-registry/cross-doc-duplicate-definition.d.ts.map +1 -0
- package/dist/detectors/cross-registry/cross-doc-duplicate-definition.js +3 -0
- package/dist/detectors/cross-registry/cross-doc-duplicate-definition.js.map +1 -0
- package/dist/detectors/cross-registry/cross-doc-fact-conflict.d.ts +3 -0
- package/dist/detectors/cross-registry/cross-doc-fact-conflict.d.ts.map +1 -0
- package/dist/detectors/cross-registry/cross-doc-fact-conflict.js +3 -0
- package/dist/detectors/cross-registry/cross-doc-fact-conflict.js.map +1 -0
- package/dist/detectors/custom.d.ts.map +1 -1
- package/dist/detectors/custom.js +4 -1
- package/dist/detectors/custom.js.map +1 -1
- package/dist/detectors/defined-term-form.d.ts +25 -0
- package/dist/detectors/defined-term-form.d.ts.map +1 -0
- package/dist/detectors/defined-term-form.js +170 -0
- package/dist/detectors/defined-term-form.js.map +1 -0
- package/dist/detectors/email-letter.d.ts +46 -0
- package/dist/detectors/email-letter.d.ts.map +1 -0
- package/dist/detectors/email-letter.js +234 -0
- package/dist/detectors/email-letter.js.map +1 -0
- package/dist/detectors/impossible-date.d.ts +20 -0
- package/dist/detectors/impossible-date.d.ts.map +1 -0
- package/dist/detectors/impossible-date.js +105 -0
- package/dist/detectors/impossible-date.js.map +1 -0
- package/dist/detectors/impossible-time.d.ts +18 -0
- package/dist/detectors/impossible-time.d.ts.map +1 -0
- package/dist/detectors/impossible-time.js +116 -0
- package/dist/detectors/impossible-time.js.map +1 -0
- package/dist/detectors/link-shape.d.ts +11 -0
- package/dist/detectors/link-shape.d.ts.map +1 -0
- package/dist/detectors/link-shape.js +56 -0
- package/dist/detectors/link-shape.js.map +1 -0
- package/dist/detectors/mark-shape.d.ts +53 -0
- package/dist/detectors/mark-shape.d.ts.map +1 -0
- package/dist/detectors/mark-shape.js +160 -0
- package/dist/detectors/mark-shape.js.map +1 -0
- package/dist/detectors/registry/adverb-polarity.d.ts +3 -0
- package/dist/detectors/registry/adverb-polarity.d.ts.map +1 -0
- package/dist/detectors/registry/adverb-polarity.js +3 -0
- package/dist/detectors/registry/adverb-polarity.js.map +1 -0
- package/dist/detectors/registry/attachment-missing.d.ts +3 -0
- package/dist/detectors/registry/attachment-missing.d.ts.map +1 -0
- package/dist/detectors/registry/attachment-missing.js +3 -0
- package/dist/detectors/registry/attachment-missing.js.map +1 -0
- package/dist/detectors/registry/bare-url-mix.d.ts +3 -0
- package/dist/detectors/registry/bare-url-mix.d.ts.map +1 -0
- package/dist/detectors/registry/bare-url-mix.js +3 -0
- package/dist/detectors/registry/bare-url-mix.js.map +1 -0
- package/dist/detectors/registry/caps-shouting.d.ts +3 -0
- package/dist/detectors/registry/caps-shouting.d.ts.map +1 -0
- package/dist/detectors/registry/caps-shouting.js +3 -0
- package/dist/detectors/registry/caps-shouting.js.map +1 -0
- package/dist/detectors/registry/code-fence-language.d.ts +3 -0
- package/dist/detectors/registry/code-fence-language.d.ts.map +1 -0
- package/dist/detectors/registry/code-fence-language.js +3 -0
- package/dist/detectors/registry/code-fence-language.js.map +1 -0
- package/dist/detectors/registry/defined-name-repeated.d.ts +3 -0
- package/dist/detectors/registry/defined-name-repeated.d.ts.map +1 -0
- package/dist/detectors/registry/defined-name-repeated.js +3 -0
- package/dist/detectors/registry/defined-name-repeated.js.map +1 -0
- package/dist/detectors/registry/defined-term-form.d.ts +3 -0
- package/dist/detectors/registry/defined-term-form.d.ts.map +1 -0
- package/dist/detectors/registry/defined-term-form.js +3 -0
- package/dist/detectors/registry/defined-term-form.js.map +1 -0
- package/dist/detectors/registry/email-frame.d.ts +3 -0
- package/dist/detectors/registry/email-frame.d.ts.map +1 -0
- package/dist/detectors/registry/email-frame.js +3 -0
- package/dist/detectors/registry/email-frame.js.map +1 -0
- package/dist/detectors/registry/email-subject.d.ts +3 -0
- package/dist/detectors/registry/email-subject.d.ts.map +1 -0
- package/dist/detectors/registry/email-subject.js +3 -0
- package/dist/detectors/registry/email-subject.js.map +1 -0
- package/dist/detectors/registry/ending-run.d.ts +3 -0
- package/dist/detectors/registry/ending-run.d.ts.map +1 -0
- package/dist/detectors/registry/ending-run.js +3 -0
- package/dist/detectors/registry/ending-run.js.map +1 -0
- package/dist/detectors/registry/heading-command.d.ts +3 -0
- package/dist/detectors/registry/heading-command.d.ts.map +1 -0
- package/dist/detectors/registry/heading-command.js +3 -0
- package/dist/detectors/registry/heading-command.js.map +1 -0
- package/dist/detectors/registry/hyphen-dash.d.ts +3 -0
- package/dist/detectors/registry/hyphen-dash.d.ts.map +1 -0
- package/dist/detectors/registry/hyphen-dash.js +3 -0
- package/dist/detectors/registry/hyphen-dash.js.map +1 -0
- package/dist/detectors/registry/image-file-name-alt.d.ts +3 -0
- package/dist/detectors/registry/image-file-name-alt.d.ts.map +1 -0
- package/dist/detectors/registry/image-file-name-alt.js +3 -0
- package/dist/detectors/registry/image-file-name-alt.js.map +1 -0
- package/dist/detectors/registry/impossible-date.d.ts +3 -0
- package/dist/detectors/registry/impossible-date.d.ts.map +1 -0
- package/dist/detectors/registry/impossible-date.js +3 -0
- package/dist/detectors/registry/impossible-date.js.map +1 -0
- package/dist/detectors/registry/impossible-time.d.ts +3 -0
- package/dist/detectors/registry/impossible-time.d.ts.map +1 -0
- package/dist/detectors/registry/impossible-time.js +3 -0
- package/dist/detectors/registry/impossible-time.js.map +1 -0
- package/dist/detectors/registry/latin-abbreviation.d.ts +3 -0
- package/dist/detectors/registry/latin-abbreviation.d.ts.map +1 -0
- package/dist/detectors/registry/latin-abbreviation.js +3 -0
- package/dist/detectors/registry/latin-abbreviation.js.map +1 -0
- package/dist/detectors/registry/link-text-url-mismatch.d.ts +3 -0
- package/dist/detectors/registry/link-text-url-mismatch.d.ts.map +1 -0
- package/dist/detectors/registry/link-text-url-mismatch.js +3 -0
- package/dist/detectors/registry/link-text-url-mismatch.js.map +1 -0
- package/dist/detectors/registry/mark-consistency.d.ts +3 -0
- package/dist/detectors/registry/mark-consistency.d.ts.map +1 -0
- package/dist/detectors/registry/mark-consistency.js +3 -0
- package/dist/detectors/registry/mark-consistency.js.map +1 -0
- package/dist/detectors/registry/origin-particle.d.ts +3 -0
- package/dist/detectors/registry/origin-particle.d.ts.map +1 -0
- package/dist/detectors/registry/origin-particle.js +3 -0
- package/dist/detectors/registry/origin-particle.js.map +1 -0
- package/dist/detectors/registry/request-without-deadline.d.ts +3 -0
- package/dist/detectors/registry/request-without-deadline.d.ts.map +1 -0
- package/dist/detectors/registry/request-without-deadline.js +3 -0
- package/dist/detectors/registry/request-without-deadline.js.map +1 -0
- package/dist/detectors/registry/sentence-spacing.d.ts +3 -0
- package/dist/detectors/registry/sentence-spacing.d.ts.map +1 -0
- package/dist/detectors/registry/sentence-spacing.js +3 -0
- package/dist/detectors/registry/sentence-spacing.js.map +1 -0
- package/dist/detectors/registry/shell-prompt.d.ts +3 -0
- package/dist/detectors/registry/shell-prompt.d.ts.map +1 -0
- package/dist/detectors/registry/shell-prompt.js +3 -0
- package/dist/detectors/registry/shell-prompt.js.map +1 -0
- package/dist/detectors/registry/step-statement.d.ts +3 -0
- package/dist/detectors/registry/step-statement.d.ts.map +1 -0
- package/dist/detectors/registry/step-statement.js +3 -0
- package/dist/detectors/registry/step-statement.js.map +1 -0
- package/dist/detectors/registry/unpaired-parallel.d.ts +3 -0
- package/dist/detectors/registry/unpaired-parallel.d.ts.map +1 -0
- package/dist/detectors/registry/unpaired-parallel.js +3 -0
- package/dist/detectors/registry/unpaired-parallel.js.map +1 -0
- package/dist/detectors/request-owner.d.ts +23 -0
- package/dist/detectors/request-owner.d.ts.map +1 -0
- package/dist/detectors/request-owner.js +110 -0
- package/dist/detectors/request-owner.js.map +1 -0
- package/dist/detectors/technical-docs.d.ts +32 -0
- package/dist/detectors/technical-docs.d.ts.map +1 -0
- package/dist/detectors/technical-docs.js +199 -0
- package/dist/detectors/technical-docs.js.map +1 -0
- package/dist/extension/pack-read.d.ts +21 -0
- package/dist/extension/pack-read.d.ts.map +1 -0
- package/dist/extension/pack-read.js +117 -0
- package/dist/extension/pack-read.js.map +1 -0
- package/dist/extension/plugin-load.d.ts.map +1 -1
- package/dist/extension/plugin-load.js +44 -10
- package/dist/extension/plugin-load.js.map +1 -1
- package/dist/extension/plugin-parse.d.ts.map +1 -1
- package/dist/extension/plugin-parse.js +10 -3
- package/dist/extension/plugin-parse.js.map +1 -1
- package/dist/facts/address-values.d.ts +5 -0
- package/dist/facts/address-values.d.ts.map +1 -0
- package/dist/facts/address-values.js +64 -0
- package/dist/facts/address-values.js.map +1 -0
- package/dist/facts/cross-facts.d.ts +20 -0
- package/dist/facts/cross-facts.d.ts.map +1 -0
- package/dist/facts/cross-facts.js +41 -0
- package/dist/facts/cross-facts.js.map +1 -0
- package/dist/fix-plan/chosen-depth.d.ts +10 -0
- package/dist/fix-plan/chosen-depth.d.ts.map +1 -0
- package/dist/fix-plan/chosen-depth.js +24 -0
- package/dist/fix-plan/chosen-depth.js.map +1 -0
- package/dist/fix-plan/mode.d.ts +13 -4
- package/dist/fix-plan/mode.d.ts.map +1 -1
- package/dist/fix-plan/mode.js +38 -7
- package/dist/fix-plan/mode.js.map +1 -1
- package/dist/fix-plan/plan.d.ts +20 -0
- package/dist/fix-plan/plan.d.ts.map +1 -1
- package/dist/fix-plan/plan.js +23 -5
- package/dist/fix-plan/plan.js.map +1 -1
- package/dist/fix-plan/render.d.ts.map +1 -1
- package/dist/fix-plan/render.js +24 -0
- package/dist/fix-plan/render.js.map +1 -1
- package/dist/fix-plan/text.d.ts +8 -0
- package/dist/fix-plan/text.d.ts.map +1 -1
- package/dist/fix-plan/text.js +36 -10
- package/dist/fix-plan/text.js.map +1 -1
- package/dist/genre-load.d.ts +1 -1
- package/dist/genre-load.d.ts.map +1 -1
- package/dist/genre-load.js +7 -4
- package/dist/genre-load.js.map +1 -1
- package/dist/genre-parse.d.ts +6 -0
- package/dist/genre-parse.d.ts.map +1 -1
- package/dist/genre-parse.js +18 -0
- package/dist/genre-parse.js.map +1 -1
- package/dist/init.js +10 -10
- package/dist/init.js.map +1 -1
- package/dist/known-genres.d.ts +8 -0
- package/dist/known-genres.d.ts.map +1 -0
- package/dist/known-genres.js +17 -0
- package/dist/known-genres.js.map +1 -0
- package/dist/link-shape.d.ts +20 -0
- package/dist/link-shape.d.ts.map +1 -0
- package/dist/link-shape.js +58 -0
- package/dist/link-shape.js.map +1 -0
- package/dist/reasons.d.ts.map +1 -1
- package/dist/reasons.js +15 -4
- package/dist/reasons.js.map +1 -1
- package/dist/render/explain.d.ts.map +1 -1
- package/dist/render/explain.js +11 -2
- package/dist/render/explain.js.map +1 -1
- package/dist/render/friendly.js +1 -1
- package/dist/render/friendly.js.map +1 -1
- package/dist/render/rules-json.d.ts.map +1 -1
- package/dist/render/rules-json.js +12 -3
- package/dist/render/rules-json.js.map +1 -1
- package/dist/render/rules-table.js +6 -6
- package/dist/render/rules-table.js.map +1 -1
- package/dist/render/semantic.js +2 -2
- package/dist/render/semantic.js.map +1 -1
- package/dist/render/suppressions.js +2 -2
- package/dist/render/suppressions.js.map +1 -1
- package/dist/rewrite-depth.d.ts +22 -0
- package/dist/rewrite-depth.d.ts.map +1 -0
- package/dist/rewrite-depth.js +42 -0
- package/dist/rewrite-depth.js.map +1 -0
- package/dist/rule-fields.d.ts +23 -0
- package/dist/rule-fields.d.ts.map +1 -0
- package/dist/rule-fields.js +64 -0
- package/dist/rule-fields.js.map +1 -0
- package/dist/rule-guide.d.ts +3 -0
- package/dist/rule-guide.d.ts.map +1 -1
- package/dist/rule-guide.js +6 -0
- package/dist/rule-guide.js.map +1 -1
- package/dist/rule-load.d.ts.map +1 -1
- package/dist/rule-load.js +13 -5
- package/dist/rule-load.js.map +1 -1
- package/dist/rule-offs.d.ts +14 -0
- package/dist/rule-offs.d.ts.map +1 -0
- package/dist/rule-offs.js +45 -0
- package/dist/rule-offs.js.map +1 -0
- package/dist/structure/build.d.ts.map +1 -1
- package/dist/structure/build.js +14 -1
- package/dist/structure/build.js.map +1 -1
- package/dist/structure/cross-definitions.d.ts +23 -0
- package/dist/structure/cross-definitions.d.ts.map +1 -0
- package/dist/structure/cross-definitions.js +34 -0
- package/dist/structure/cross-definitions.js.map +1 -0
- package/genres.yaml +14 -313
- package/package.json +3 -3
- package/rules/absolute-exception.yaml +3 -1
- package/rules/abstract-length.yaml +7 -1
- package/rules/acronym-expansion-conflict.yaml +2 -1
- package/rules/adverb-overuse.yaml +7 -1
- package/rules/adverb-without-negation.yaml +60 -0
- package/rules/adversative-ga-repeat.yaml +2 -1
- package/rules/agentless-passive.yaml +10 -1
- package/rules/agreement-slip.yaml +4 -1
- package/rules/ai-generated-composite.yaml +6 -1
- package/rules/ai-structure.yaml +8 -2
- package/rules/ai-tell.yaml +7 -1
- package/rules/all-caps-shouting.yaml +61 -0
- package/rules/announced-count-mismatch.yaml +3 -1
- package/rules/announcing-opener.yaml +7 -1
- package/rules/article-sound.yaml +6 -2
- package/rules/assistant-residue.yaml +4 -1
- package/rules/attachment-not-attached.yaml +112 -0
- package/rules/baito-keigo.yaml +64 -0
- package/rules/bare-url-mix.yaml +86 -0
- package/rules/bold-density.yaml +1 -0
- package/rules/bold-label-list.yaml +9 -1
- package/rules/bracket-nesting.yaml +2 -1
- package/rules/bracket-width-consistency.yaml +64 -0
- package/rules/broken-link.yaml +1 -1
- package/rules/chat-citation-residue.yaml +2 -1
- package/rules/citation-reference-mismatch.yaml +7 -1
- package/rules/citation-style-mix.yaml +7 -1
- package/rules/clause-chain.yaml +6 -1
- package/rules/closing-cliche.yaml +7 -0
- package/rules/code-fence-language-mix.yaml +176 -0
- package/rules/colloquial-opener.yaml +62 -0
- package/rules/colon-lead-in.yaml +7 -1
- package/rules/concrete-evidence-density.yaml +6 -0
- package/rules/contraction-consistency.yaml +4 -1
- package/rules/contrast-framing.yaml +7 -1
- package/rules/cross-doc-duplicate-definition.yaml +70 -0
- package/rules/cross-doc-fact-conflict.yaml +64 -0
- package/rules/cushion-phrase-density.yaml +8 -1
- package/rules/dangling-figure-reference.yaml +3 -1
- package/rules/dangling-reference.yaml +3 -1
- package/rules/date-format-consistency.yaml +3 -2
- package/rules/date-order.yaml +3 -1
- package/rules/date-range-reversed.yaml +3 -1
- package/rules/date-weekday-mismatch.yaml +3 -1
- package/rules/date-without-year.yaml +4 -3
- package/rules/defined-name-repeated.yaml +97 -0
- package/rules/defined-term-form.yaml +113 -0
- package/rules/demonstrative-opener-run.yaml +2 -1
- package/rules/double-keigo.yaml +6 -1
- package/rules/double-negative.yaml +5 -1
- package/rules/doubled-nado.yaml +2 -1
- package/rules/doubled-punctuation.yaml +1 -1
- package/rules/doubled-word.yaml +4 -1
- package/rules/duplicate-definition.yaml +3 -1
- package/rules/duplicate-heading.yaml +1 -1
- package/rules/duration-mismatch.yaml +2 -1
- package/rules/elapsed-years-mismatch.yaml +4 -1
- package/rules/email-greeting-closing.yaml +122 -0
- package/rules/email-subject-length.yaml +112 -0
- package/rules/emoji-density.yaml +3 -1
- package/rules/emoji-heading.yaml +7 -1
- package/rules/empty-intensifier.yaml +4 -0
- package/rules/empty-list-item.yaml +2 -1
- package/rules/empty-section.yaml +1 -1
- package/rules/empty-table-cell.yaml +2 -1
- package/rules/excessive-hedging.yaml +7 -1
- package/rules/exclamation-width-consistency.yaml +64 -0
- package/rules/expletive-construction.yaml +7 -1
- package/rules/fact-conflict.yaml +4 -1
- package/rules/figure-reference-order.yaml +7 -1
- package/rules/fullwidth-alnum-consistency.yaml +2 -2
- package/rules/hankaku-kana.yaml +1 -1
- package/rules/heading-command-missing.yaml +109 -0
- package/rules/heading-echo.yaml +6 -1
- package/rules/heading-level-skip.yaml +3 -3
- package/rules/heading-numbering-mix.yaml +4 -3
- package/rules/hiragana-fukushi.yaml +4 -1
- package/rules/homophone-slip.yaml +5 -1
- package/rules/humble-for-others.yaml +63 -0
- package/rules/hyphen-as-dash.yaml +59 -0
- package/rules/idiom-misuse.yaml +4 -1
- package/rules/image-file-name-alt.yaml +83 -0
- package/rules/impossible-date.yaml +79 -0
- package/rules/impossible-time.yaml +76 -0
- package/rules/internal-jargon.yaml +1 -1
- package/rules/invisible-character.yaml +1 -1
- package/rules/katakana-density.yaml +2 -1
- package/rules/katakana-long-vowel.yaml +1 -1
- package/rules/known-misspelling.yaml +2 -1
- package/rules/kutoten-consistency.yaml +1 -1
- package/rules/latin-abbreviation-form.yaml +58 -0
- package/rules/latin-spacing.yaml +6 -2
- package/rules/link-text-url-mismatch.yaml +72 -0
- package/rules/list-item-form-mix.yaml +7 -1
- package/rules/max-kanji-continuous.yaml +10 -2
- package/rules/max-paragraph-length.yaml +4 -1
- package/rules/max-sentence-length.yaml +29 -21
- package/rules/max-ten.yaml +4 -1
- package/rules/misconversion.yaml +2 -1
- package/rules/modal-conflict.yaml +2 -1
- package/rules/name-variant.yaml +4 -3
- package/rules/ngram-repetition.yaml +5 -0
- package/rules/no-doubled-joshi.yaml +5 -1
- package/rules/no-em-dash.yaml +4 -1
- package/rules/no-lead.yaml +6 -1
- package/rules/no-mixed-desumasu.yaml +5 -2
- package/rules/no-nakaguro-parallel.yaml +3 -0
- package/rules/nominalization.yaml +5 -1
- package/rules/number-style-consistency.yaml +6 -1
- package/rules/number-without-unit.yaml +2 -1
- package/rules/numbering-gap.yaml +1 -1
- package/rules/one-sentence-paragraph-run.yaml +5 -1
- package/rules/orthographic-variant.yaml +4 -1
- package/rules/outside-announced-list.yaml +2 -1
- package/rules/oxford-comma-consistency.yaml +3 -1
- package/rules/padded-intro.yaml +7 -0
- package/rules/paragraph-length-variance.yaml +7 -1
- package/rules/paragraph-restatement.yaml +6 -1
- package/rules/percent-sum-mismatch.yaml +3 -1
- package/rules/person-consistency.yaml +4 -1
- package/rules/preamble-length.yaml +6 -0
- package/rules/preferred-term.yaml +1 -1
- package/rules/proper-noun-density.yaml +8 -1
- package/rules/quote-style-consistency.yaml +66 -0
- package/rules/ra-nuki.yaml +4 -1
- package/rules/redundant-expression.yaml +4 -1
- package/rules/reference-title-mismatch.yaml +4 -3
- package/rules/reference-topic-missing.yaml +2 -1
- package/rules/relative-date-mismatch.yaml +2 -1
- package/rules/repeated-conjunction.yaml +4 -1
- package/rules/repeated-sentence-ending.yaml +62 -0
- package/rules/repeated-sentence-head.yaml +4 -0
- package/rules/request-without-deadline.yaml +92 -0
- package/rules/required-sections.yaml +1 -1
- package/rules/requirement-modal.yaml +1 -1
- package/rules/requirement-smell.yaml +12 -4
- package/rules/rule-of-three.yaml +8 -1
- package/rules/sasete-itadaku.yaml +7 -1
- package/rules/section-length-uniformity.yaml +7 -1
- package/rules/sentence-initial-conjunction-run.yaml +5 -1
- package/rules/sentence-initial-so.yaml +6 -1
- package/rules/sentence-rhythm.yaml +8 -1
- package/rules/sentence-spacing-consistency.yaml +63 -0
- package/rules/shell-prompt-mix.yaml +128 -0
- package/rules/space-before-punctuation.yaml +1 -1
- package/rules/spelling-consistency.yaml +3 -1
- package/rules/step-statement-mix.yaml +76 -0
- package/rules/stock-transition.yaml +8 -1
- package/rules/stray-space.yaml +2 -2
- package/rules/summary-fact-mismatch.yaml +4 -1
- package/rules/table-header-variant.yaml +2 -1
- package/rules/taigen-dome-in-prose.yaml +6 -0
- package/rules/tari-unpaired.yaml +58 -0
- package/rules/teki-overuse.yaml +2 -1
- package/rules/title-case-consistency.yaml +1 -1
- package/rules/title-length.yaml +7 -1
- package/rules/topic-predicate-distance.yaml +6 -1
- package/rules/total-mismatch.yaml +3 -1
- package/rules/translationese-density.yaml +4 -1
- package/rules/unbalanced-bracket.yaml +3 -3
- package/rules/undefined-acronym.yaml +8 -1
- package/rules/unfilled-placeholder.yaml +1 -1
- package/rules/unit-mismatch.yaml +2 -1
- package/rules/unknown-word.yaml +4 -1
- package/rules/unqualified-superlative.yaml +6 -1
- package/rules/unused-definition.yaml +4 -3
- package/rules/url-run-on.yaml +1 -1
- package/rules/use-before-definition.yaml +4 -3
- package/rules/vague-figure-reference.yaml +3 -1
- package/rules/vague-link-text.yaml +2 -1
- package/rules/vague-word-density.yaml +2 -1
- package/rules/very-adjective.yaml +5 -1
- package/rules/weasel-word.yaml +6 -1
- package/rules/wordy-phrase.yaml +6 -1
- package/rules/yori-as-from.yaml +61 -0
- package/src/api.ts +13 -1
- package/src/cli-text.ts +18 -7
- package/src/cli.ts +3 -0
- package/src/command-help.ts +26 -0
- package/src/commands/eval.ts +2 -2
- package/src/commands/fix-plan.ts +13 -1
- package/src/commands/help.ts +8 -0
- package/src/config/load.ts +3 -0
- package/src/config/option-problems.ts +2 -2
- package/src/config/rule-problems.ts +2 -2
- package/src/custom/checked.ts +8 -0
- package/src/custom/dsl-fields.ts +102 -0
- package/src/custom/load.ts +2 -0
- package/src/custom/parse.ts +72 -50
- package/src/custom/problems.ts +18 -2
- package/src/detectors/blank-structure.ts +12 -4
- package/src/detectors/clause-shape.ts +199 -0
- package/src/detectors/code-fences.ts +113 -0
- package/src/detectors/cross-definitions.ts +49 -0
- package/src/detectors/cross-facts.ts +60 -0
- package/src/detectors/cross-registry/cross-doc-duplicate-definition.ts +4 -0
- package/src/detectors/cross-registry/cross-doc-fact-conflict.ts +4 -0
- package/src/detectors/custom.ts +10 -2
- package/src/detectors/defined-term-form.ts +200 -0
- package/src/detectors/email-letter.ts +262 -0
- package/src/detectors/impossible-date.ts +141 -0
- package/src/detectors/impossible-time.ts +151 -0
- package/src/detectors/link-shape.ts +70 -0
- package/src/detectors/mark-shape.ts +202 -0
- package/src/detectors/registry/adverb-polarity.ts +4 -0
- package/src/detectors/registry/attachment-missing.ts +4 -0
- package/src/detectors/registry/bare-url-mix.ts +4 -0
- package/src/detectors/registry/caps-shouting.ts +4 -0
- package/src/detectors/registry/code-fence-language.ts +4 -0
- package/src/detectors/registry/defined-name-repeated.ts +4 -0
- package/src/detectors/registry/defined-term-form.ts +4 -0
- package/src/detectors/registry/email-frame.ts +4 -0
- package/src/detectors/registry/email-subject.ts +4 -0
- package/src/detectors/registry/ending-run.ts +4 -0
- package/src/detectors/registry/heading-command.ts +4 -0
- package/src/detectors/registry/hyphen-dash.ts +4 -0
- package/src/detectors/registry/image-file-name-alt.ts +4 -0
- package/src/detectors/registry/impossible-date.ts +4 -0
- package/src/detectors/registry/impossible-time.ts +4 -0
- package/src/detectors/registry/latin-abbreviation.ts +4 -0
- package/src/detectors/registry/link-text-url-mismatch.ts +4 -0
- package/src/detectors/registry/mark-consistency.ts +4 -0
- package/src/detectors/registry/origin-particle.ts +4 -0
- package/src/detectors/registry/request-without-deadline.ts +4 -0
- package/src/detectors/registry/sentence-spacing.ts +4 -0
- package/src/detectors/registry/shell-prompt.ts +4 -0
- package/src/detectors/registry/step-statement.ts +4 -0
- package/src/detectors/registry/unpaired-parallel.ts +4 -0
- package/src/detectors/request-owner.ts +141 -0
- package/src/detectors/technical-docs.ts +230 -0
- package/src/extension/pack-read.ts +128 -0
- package/src/extension/plugin-load.ts +49 -9
- package/src/extension/plugin-parse.ts +10 -3
- package/src/facts/address-values.ts +74 -0
- package/src/facts/cross-facts.ts +54 -0
- package/src/fix-plan/chosen-depth.ts +28 -0
- package/src/fix-plan/mode.ts +57 -11
- package/src/fix-plan/plan.ts +37 -5
- package/src/fix-plan/render.ts +24 -0
- package/src/fix-plan/text.ts +47 -10
- package/src/genre-load.ts +7 -4
- package/src/genre-parse.ts +19 -0
- package/src/init.ts +10 -10
- package/src/known-genres.ts +19 -0
- package/src/link-shape.ts +62 -0
- package/src/reasons.ts +16 -4
- package/src/render/explain.ts +14 -2
- package/src/render/friendly.ts +1 -1
- package/src/render/rules-json.ts +14 -3
- package/src/render/rules-table.ts +6 -6
- package/src/render/semantic.ts +2 -2
- package/src/render/suppressions.ts +2 -2
- package/src/rewrite-depth.ts +60 -0
- package/src/rule-fields.ts +95 -0
- package/src/rule-guide.ts +9 -0
- package/src/rule-load.ts +10 -4
- package/src/rule-offs.ts +50 -0
- package/src/structure/build.ts +21 -1
- package/src/structure/cross-definitions.ts +60 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
id: agentless-passive
|
|
2
2
|
layer: L3
|
|
3
|
-
status:
|
|
3
|
+
status: stable
|
|
4
4
|
how_to_find: agentless-passive
|
|
5
5
|
word_list: agent-marker
|
|
6
6
|
requires: [pos]
|
|
@@ -26,6 +26,14 @@ 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
|
+
off_for:
|
|
30
|
+
legal: "Legal drafting repeats its terms and its sentence heads on purpose, puts the actor in the passive (shall be deemed), and joins long noun compounds (個人情報取扱事業者). This rule would only flag the form."
|
|
31
|
+
docs: "A help page repeats its heading in its first line (To upload a file, ...) and states no claims to back up."
|
|
32
|
+
academic: "Science writes in the passive, hedges its claims on purpose (may, suggest) and cites numbers as its evidence."
|
|
33
|
+
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."
|
|
34
|
+
speech: "A speech opens with greetings and closes with thanks: that is its form, not padding."
|
|
35
|
+
business/meeting-notes: "Minutes record what the meeting did (the meeting was held, 了承された): the actor is the meeting, by the form. In the corpus the rule fires on nearly every set of minutes, English and Japanese."
|
|
36
|
+
business: measured by yarn rules:measure
|
|
29
37
|
sources: [yasashii-nihongo-2020, plain-2011]
|
|
30
38
|
|
|
31
39
|
group: wording
|
|
@@ -47,6 +55,7 @@ level_meaning:
|
|
|
47
55
|
ja: 一文に受け身が {limit} 個あれば指摘
|
|
48
56
|
en: reported when a sentence has {limit} passives with no actor
|
|
49
57
|
rewrite:
|
|
58
|
+
depth: light
|
|
50
59
|
ja:
|
|
51
60
|
direction: 誰がしたのかを本文から探して主語にし、能動の文にしてください。本文のどこにも書かれていなければ、作らずに[誰が]と空けて書き手に聞きます。
|
|
52
61
|
pairs:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
id: agreement-slip
|
|
2
2
|
layer: L3
|
|
3
|
-
status:
|
|
3
|
+
status: stable
|
|
4
4
|
how_to_find: agreement-slip
|
|
5
5
|
requires: [pos]
|
|
6
6
|
languages: [en]
|
|
@@ -34,6 +34,9 @@ how_to_fix:
|
|
|
34
34
|
levels: { strict: error, normal: warning, relaxed: info }
|
|
35
35
|
|
|
36
36
|
use_for: [blog, business, technical, legal, docs, academic, literature, speech]
|
|
37
|
+
off_for:
|
|
38
|
+
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."
|
|
39
|
+
speech/transcript: "A transcript records what was said: its sentences, repeats and register are the speaker's, not the writer's to fix."
|
|
37
40
|
|
|
38
41
|
group: slips
|
|
39
42
|
summary:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
id: ai-generated-composite
|
|
2
2
|
layer: L1
|
|
3
|
-
status:
|
|
3
|
+
status: stable
|
|
4
4
|
how_to_find: composite
|
|
5
5
|
severity: warning
|
|
6
6
|
|
|
@@ -40,6 +40,11 @@ how_to_fix:
|
|
|
40
40
|
levels: { strict: 2, normal: 3, relaxed: 5 }
|
|
41
41
|
|
|
42
42
|
use_for: [technical/readme, blog, business, legal, docs, academic, literature, speech]
|
|
43
|
+
off_for:
|
|
44
|
+
legal: "Legal drafting repeats its terms and its sentence heads on purpose, puts the actor in the passive (shall be deemed), and joins long noun compounds (個人情報取扱事業者). This rule would only flag the form."
|
|
45
|
+
docs: "A help page repeats its heading in its first line (To upload a file, ...) and states no claims to back up."
|
|
46
|
+
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."
|
|
47
|
+
speech/transcript: "A transcript records what was said: its sentences, repeats and register are the speaker's, not the writer's to fix."
|
|
43
48
|
|
|
44
49
|
group: ai-tells
|
|
45
50
|
summary:
|
package/rules/ai-structure.yaml
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
id: ai-structure
|
|
2
2
|
layer: L1
|
|
3
|
-
status:
|
|
3
|
+
status: stable
|
|
4
4
|
how_to_find: ai-structure
|
|
5
5
|
requires: [headings]
|
|
6
6
|
severity: info
|
|
@@ -24,8 +24,13 @@ how_to_fix:
|
|
|
24
24
|
# 人の記事の 9 割を超えた項目が何個そろったら出すか。人の記事で何個そろうかは scripts/structure-baseline.ts --values で数え直せる。
|
|
25
25
|
levels: { strict: 2, normal: 3, relaxed: 4 }
|
|
26
26
|
|
|
27
|
-
# 基準にした人の記事はブログ。ビジネス文書は見ない。法務・説明書・論文・話し言葉は見出しの立て方がもともと違うので、
|
|
27
|
+
# 基準にした人の記事はブログ。ビジネス文書は見ない。法務・説明書・論文・話し言葉は見出しの立て方がもともと違うので、off_for で止める。
|
|
28
28
|
use_for: [blog, legal, docs, academic, literature, speech]
|
|
29
|
+
off_for:
|
|
30
|
+
legal: "Legal drafting repeats its terms and its sentence heads on purpose, puts the actor in the passive (shall be deemed), and joins long noun compounds (個人情報取扱事業者). This rule would only flag the form."
|
|
31
|
+
docs: "A help page repeats its heading in its first line (To upload a file, ...) and states no claims to back up."
|
|
32
|
+
academic: "Science writes in the passive, hedges its claims on purpose (may, suggest) and cites numbers as its evidence."
|
|
33
|
+
speech: "A speech opens with greetings and closes with thanks: that is its form, not padding."
|
|
29
34
|
|
|
30
35
|
group: ai-tells
|
|
31
36
|
summary:
|
|
@@ -130,6 +135,7 @@ level_meaning:
|
|
|
130
135
|
ja: 人の記事の 9 割を超えた項目が {limit} 個そろえば指摘
|
|
131
136
|
en: reported once {limit} measures lie past 90% of human articles
|
|
132
137
|
rewrite:
|
|
138
|
+
depth: structure
|
|
133
139
|
ja:
|
|
134
140
|
direction: 構成から書き直してください。`chaff outline` が人の記事の 9 割を超えたと言う項目を、人の記事の範囲に戻します。見出しは中身のまとまりごとに立て、一段落ごとに立てません。小見出しの数は中身の数に合わせ、3 つに揃えません。太字の札の箇条書きは文に戻し、本文を言い直すだけのまとめは消します。
|
|
135
141
|
pairs:
|
package/rules/ai-tell.yaml
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
id: ai-tell
|
|
2
2
|
layer: L2
|
|
3
|
-
status:
|
|
3
|
+
status: stable
|
|
4
4
|
how_to_find: ai-tell
|
|
5
5
|
word_list: ai-tell
|
|
6
6
|
uses: [pos]
|
|
@@ -26,6 +26,11 @@ how_to_fix:
|
|
|
26
26
|
levels: { strict: 10, normal: 18, relaxed: 30 }
|
|
27
27
|
|
|
28
28
|
use_for: [technical/readme, blog, business, legal, docs, academic, literature, speech]
|
|
29
|
+
off_for:
|
|
30
|
+
legal: "Legal drafting repeats its terms and its sentence heads on purpose, puts the actor in the passive (shall be deemed), and joins long noun compounds (個人情報取扱事業者). This rule would only flag the form."
|
|
31
|
+
docs: "A help page repeats its heading in its first line (To upload a file, ...) and states no claims to back up."
|
|
32
|
+
literature: "Length, rhythm, repetition and register are the author's choices in literature, and dialogue mixes styles. Only what one work can hold itself to runs: consistent spacing and commas, and numbering without gaps."
|
|
33
|
+
speech/transcript: "A transcript records what was said: its sentences, repeats and register are the speaker's, not the writer's to fix."
|
|
29
34
|
sources: [kobak-2025, liang-2024, juzek-ward-2025]
|
|
30
35
|
|
|
31
36
|
group: ai-tells
|
|
@@ -51,6 +56,7 @@ level_meaning:
|
|
|
51
56
|
ja: 言い回しの重みの合計が {limit} 点まで
|
|
52
57
|
en: up to a score of {limit}
|
|
53
58
|
rewrite:
|
|
59
|
+
depth: light
|
|
54
60
|
ja:
|
|
55
61
|
direction: 決まった言い回しを、その文が実際に言っている中身(誰が、何を、どれだけ)に置き換えてください。中身の無い文は消してください。
|
|
56
62
|
pairs:
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
id: all-caps-shouting
|
|
2
|
+
layer: L1
|
|
3
|
+
status: stable
|
|
4
|
+
how_to_find: caps-shouting
|
|
5
|
+
word_list: caps-convention
|
|
6
|
+
languages: [en]
|
|
7
|
+
severity: info
|
|
8
|
+
|
|
9
|
+
name:
|
|
10
|
+
ja: 大文字だけの語の連なり(叫び)
|
|
11
|
+
en: Shouting in capitals
|
|
12
|
+
|
|
13
|
+
why:
|
|
14
|
+
ja: 英語の本文で、「DO NOT DELETE THIS」のように普通の語を大文字だけで三つ以上続けると、叫んでいるように読め、大文字の語は読む速さも落ちます。略語の並び(AWS IAM SSO)と区別するため、半分以上の語が文書のほかの所で小文字でも書かれているときだけ指します。
|
|
15
|
+
en: Three or more ordinary words in capitals ("DO NOT DELETE THIS") read as shouting, and words in capitals are slower to read. To tell them from a run of acronyms (AWS IAM SSO), a run is reported only when at least half its words also appear in lower case elsewhere in the document.
|
|
16
|
+
|
|
17
|
+
message:
|
|
18
|
+
ja: 「{matched}」を大文字だけで書いています
|
|
19
|
+
en: '"{matched}" is written in capitals'
|
|
20
|
+
|
|
21
|
+
how_to_fix:
|
|
22
|
+
ja: 普通の大文字小文字で書き、強めたいなら太字にするか、なぜ大事なのかを書いてください。
|
|
23
|
+
en: Write it in ordinary case; to stress it, use bold or say why it matters.
|
|
24
|
+
|
|
25
|
+
levels: { strict: 1, normal: 1, relaxed: 2 }
|
|
26
|
+
|
|
27
|
+
use_for: [business, technical, blog, legal, docs, academic, literature, speech]
|
|
28
|
+
off_for:
|
|
29
|
+
legal: "Contracts set disclaimers in capitals so they are conspicuous, as the law asks."
|
|
30
|
+
literature: 'Older printed texts set the dash as "--" and titles in capitals.'
|
|
31
|
+
|
|
32
|
+
group: readability
|
|
33
|
+
summary:
|
|
34
|
+
ja: 英語で、「DO NOT DELETE THIS」のように普通の語を大文字だけで続けた所
|
|
35
|
+
en: Ordinary words run together in capitals, such as "DO NOT DELETE THIS"
|
|
36
|
+
example:
|
|
37
|
+
en:
|
|
38
|
+
before: |
|
|
39
|
+
Do not delete the log. DO NOT DELETE THIS FILE before the audit.
|
|
40
|
+
after: |
|
|
41
|
+
Do not delete the log. Do not delete this file before the audit.
|
|
42
|
+
|
|
43
|
+
not_flagged:
|
|
44
|
+
ja: 三語以上の連なりだけを見ます。略語の並び(文書のほかの所で小文字で書かれない語)とコードは見ません。仕様書の MUST や SHALL は慣習の大文字として数えません。法令と文学の文書では既定で止めています(大文字で目立たせる決まりや、題を大文字で組む慣習があるため)。
|
|
45
|
+
en: Only runs of three or more words. Runs of acronyms (words never written in lower case elsewhere) and code are not reported, and MUST or SHALL in a specification count as conventional capitals. The legal and literature presets turn it off, since contracts set disclaimers in capitals by rule and older texts set titles that way.
|
|
46
|
+
level_meaning:
|
|
47
|
+
ja: "{limit} 箇所あれば指摘"
|
|
48
|
+
en: reported once there are {limit}
|
|
49
|
+
rewrite:
|
|
50
|
+
depth: light
|
|
51
|
+
en:
|
|
52
|
+
direction: Rewrite the capitals in ordinary sentence case. If the words carry a warning, keep the warning in words, not in capitals.
|
|
53
|
+
pairs:
|
|
54
|
+
- before: DO NOT DELETE THIS FILE before the audit.
|
|
55
|
+
after: Do not delete this file before the audit.
|
|
56
|
+
- before: The form is DUE BY FRIDAY.
|
|
57
|
+
after: The form is due by Friday.
|
|
58
|
+
keep:
|
|
59
|
+
- acronyms and names that are written in capitals
|
|
60
|
+
avoid:
|
|
61
|
+
- lowering acronyms (API, NASA) along with the shouted words
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
id: announced-count-mismatch
|
|
2
2
|
layer: L3
|
|
3
|
-
status:
|
|
3
|
+
status: stable
|
|
4
4
|
how_to_find: announced-count
|
|
5
5
|
severity: warning
|
|
6
6
|
|
|
@@ -23,6 +23,8 @@ how_to_fix:
|
|
|
23
23
|
levels: { strict: error, normal: warning, relaxed: info }
|
|
24
24
|
|
|
25
25
|
use_for: [business, technical, blog, legal, docs, academic, literature, speech]
|
|
26
|
+
off_for:
|
|
27
|
+
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."
|
|
26
28
|
|
|
27
29
|
group: facts
|
|
28
30
|
summary:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
id: announcing-opener
|
|
2
2
|
layer: L2
|
|
3
|
-
status:
|
|
3
|
+
status: stable
|
|
4
4
|
how_to_find: opener-pile
|
|
5
5
|
word_list: announcing-opener
|
|
6
6
|
uses: [pos]
|
|
@@ -26,6 +26,11 @@ how_to_fix:
|
|
|
26
26
|
levels: { strict: 2, normal: 3, relaxed: 5 }
|
|
27
27
|
|
|
28
28
|
use_for: [technical/readme, blog, business, legal, docs, academic, literature, speech]
|
|
29
|
+
off_for:
|
|
30
|
+
legal: "Legal drafting repeats its terms and its sentence heads on purpose, puts the actor in the passive (shall be deemed), and joins long noun compounds (個人情報取扱事業者). This rule would only flag the form."
|
|
31
|
+
docs: "A help page repeats its heading in its first line (To upload a file, ...) and states no claims to back up."
|
|
32
|
+
literature: "Length, rhythm, repetition and register are the author's choices in literature, and dialogue mixes styles. Only what one work can hold itself to runs: consistent spacing and commas, and numbering without gaps."
|
|
33
|
+
speech: "A speech opens with greetings and closes with thanks: that is its form, not padding."
|
|
29
34
|
|
|
30
35
|
group: ai-tells
|
|
31
36
|
summary:
|
|
@@ -50,6 +55,7 @@ level_meaning:
|
|
|
50
55
|
ja: 予告で始まる文が {limit} 個あれば指摘
|
|
51
56
|
en: reported once {limit} sentences open with an announcement
|
|
52
57
|
rewrite:
|
|
58
|
+
depth: light
|
|
53
59
|
ja:
|
|
54
60
|
direction: 「重要なのは、」「ポイントは、」のような予告を消し、その後ろの中身から文を始めてください。
|
|
55
61
|
pairs:
|
package/rules/article-sound.yaml
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
id: article-sound
|
|
2
2
|
layer: L2
|
|
3
|
-
status:
|
|
3
|
+
status: stable
|
|
4
4
|
how_to_find: article-sound
|
|
5
5
|
word_list: article-sound
|
|
6
6
|
requires: [pos]
|
|
7
7
|
languages: [en]
|
|
8
|
-
severity:
|
|
8
|
+
severity: info
|
|
9
9
|
|
|
10
10
|
name:
|
|
11
11
|
ja: a と an の取り違え
|
|
@@ -26,6 +26,9 @@ how_to_fix:
|
|
|
26
26
|
levels: { strict: 1, normal: 1, relaxed: 2 }
|
|
27
27
|
|
|
28
28
|
use_for: [business, technical, blog, legal, docs, academic, literature, speech]
|
|
29
|
+
off_for:
|
|
30
|
+
literature: 'Dialect and old usage ("an hospital") are the work''s voice, and dialogue leans on "very".'
|
|
31
|
+
speech: "A transcript keeps the speaker's words: hedges and ら dropped as spoken."
|
|
29
32
|
|
|
30
33
|
group: slips
|
|
31
34
|
summary:
|
|
@@ -45,6 +48,7 @@ level_meaning:
|
|
|
45
48
|
ja: "{limit} 箇所あれば指摘"
|
|
46
49
|
en: reported once there are {limit}
|
|
47
50
|
rewrite:
|
|
51
|
+
depth: light
|
|
48
52
|
en:
|
|
49
53
|
direction: Change only the article, to "an" before a vowel sound and "a" before a consonant sound.
|
|
50
54
|
pairs:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
id: assistant-residue
|
|
2
2
|
layer: L2
|
|
3
|
-
status:
|
|
3
|
+
status: stable
|
|
4
4
|
how_to_find: assistant-residue
|
|
5
5
|
word_list: assistant-residue
|
|
6
6
|
uses: [pos]
|
|
@@ -27,6 +27,8 @@ how_to_fix:
|
|
|
27
27
|
levels: { strict: 10, normal: 10, relaxed: 20 }
|
|
28
28
|
|
|
29
29
|
use_for: [blog, business, technical, legal, docs, academic, literature, speech]
|
|
30
|
+
off_for:
|
|
31
|
+
speech/transcript: "A transcript records what was said: its sentences, repeats and register are the speaker's, not the writer's to fix."
|
|
30
32
|
sources: [hayashi-aizawa-2026]
|
|
31
33
|
|
|
32
34
|
group: ai-tells
|
|
@@ -52,6 +54,7 @@ level_meaning:
|
|
|
52
54
|
ja: 重みの合計が {limit} 点で指摘
|
|
53
55
|
en: reported from a score of {limit}
|
|
54
56
|
rewrite:
|
|
57
|
+
depth: light
|
|
55
58
|
ja:
|
|
56
59
|
direction: チャットの相手に向けた言葉(「お役に立てれば」「ご質問があれば」)を消してください。知識の期限を書いた文は、確かめた日付と出典に置き換えます。分からなければ[ ]で空けて書き手に聞きます。
|
|
57
60
|
pairs:
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
id: attachment-not-attached
|
|
2
|
+
layer: L2
|
|
3
|
+
status: stable
|
|
4
|
+
how_to_find: attachment-missing
|
|
5
|
+
severity: warning
|
|
6
|
+
|
|
7
|
+
name:
|
|
8
|
+
ja: 添付に触れているのに、添付が見当たらない
|
|
9
|
+
en: Attachment mentioned but not shown
|
|
10
|
+
|
|
11
|
+
why:
|
|
12
|
+
ja: 「資料を添付します」と書いて添付を忘れるのは、仕事のメールでいちばんよくある失敗の一つです。受け手は返信で頼み直すことになり、やり取りが一往復増えます。本文が「添付」「別添」「同封」に触れているのに、文書のどこにも添付の欄(添付ファイル:)、ファイル名(見積書.pdf)、メーリングリストの添付の注記が無いとき指します。chaff はメールに実際に何が付いているかは見られないので、本文に添付を書き出す運用のときに役立ちます。
|
|
13
|
+
en: 'Writing "please find attached" and forgetting the attachment is one of the most common mistakes in work email. The recipient has to ask again, and the exchange takes another round. chaff points out a text that mentions an attachment ("attached", "enclosed") when the document shows none: no attachment field ("Attachment:", "Encl.:"), no file name ("quote.pdf"), and no mailing-list note about a removed attachment. chaff cannot see what is really attached to a message, so this helps where the files are listed in the text.'
|
|
14
|
+
|
|
15
|
+
message:
|
|
16
|
+
ja: 添付に触れていますが、添付の欄やファイル名がありません
|
|
17
|
+
en: An attachment is mentioned, but no attachment line or file name is shown
|
|
18
|
+
|
|
19
|
+
how_to_fix:
|
|
20
|
+
ja: ファイルを付けたか確かめてください。付けたなら、署名の前に「添付ファイル:見積書.pdf」のように添付したものを書きます。
|
|
21
|
+
en: 'Check that the file is attached. If it is, list it before the signature, as in "Attachment: quote.pdf".'
|
|
22
|
+
|
|
23
|
+
levels: { strict: error, normal: warning, relaxed: info }
|
|
24
|
+
|
|
25
|
+
use_for: [business/email, legal, docs, academic, literature, speech]
|
|
26
|
+
off_for:
|
|
27
|
+
legal: "An email's greeting, closing, subject and attachments: only the email and letter genre turns these on."
|
|
28
|
+
docs: "An email's greeting, closing, subject and attachments: only the email and letter genre turns these on."
|
|
29
|
+
academic: "An email's greeting, closing, subject and attachments: only the email and letter genre turns these on."
|
|
30
|
+
literature: "An email's greeting, closing, subject and attachments: only the email and letter genre turns these on."
|
|
31
|
+
speech: "An email's greeting, closing, subject and attachments: only the email and letter genre turns these on."
|
|
32
|
+
|
|
33
|
+
group: facts
|
|
34
|
+
summary:
|
|
35
|
+
ja: 本文が「添付します」と書いているのに、添付の欄もファイル名も無いメール
|
|
36
|
+
en: An email that says something is attached but shows no attachment line or file name
|
|
37
|
+
example:
|
|
38
|
+
ja:
|
|
39
|
+
config: { genre: business/email }
|
|
40
|
+
before: |
|
|
41
|
+
件名: 見積書の送付
|
|
42
|
+
|
|
43
|
+
いつもお世話になっております。見積書を添付しましたので、ご確認ください。
|
|
44
|
+
|
|
45
|
+
よろしくお願いいたします。
|
|
46
|
+
after: |
|
|
47
|
+
件名: 見積書の送付
|
|
48
|
+
|
|
49
|
+
いつもお世話になっております。見積書を添付しましたので、ご確認ください。
|
|
50
|
+
|
|
51
|
+
添付ファイル:見積書.pdf
|
|
52
|
+
|
|
53
|
+
よろしくお願いいたします。
|
|
54
|
+
en:
|
|
55
|
+
config: { genre: business/email }
|
|
56
|
+
before: |
|
|
57
|
+
Subject: Quote
|
|
58
|
+
|
|
59
|
+
Dear Ms Lee,
|
|
60
|
+
|
|
61
|
+
I have attached the quote for the panels.
|
|
62
|
+
|
|
63
|
+
Best regards,
|
|
64
|
+
Ichiro
|
|
65
|
+
after: |
|
|
66
|
+
Subject: Quote
|
|
67
|
+
|
|
68
|
+
Dear Ms Lee,
|
|
69
|
+
|
|
70
|
+
I have attached the quote for the panels.
|
|
71
|
+
|
|
72
|
+
Attachment: quote.pdf
|
|
73
|
+
|
|
74
|
+
Best regards,
|
|
75
|
+
Ichiro
|
|
76
|
+
not_flagged:
|
|
77
|
+
ja: 「添付なし」「添付はありません」のような、付けていないと言う書き方と、引用した返信の中の「添付」は数えません。メール・手紙のジャンルでだけ見ます。
|
|
78
|
+
en: 'Phrases that say nothing is attached ("no attachment") or that use the word for something else ("attached to the wall"), and mentions inside a quoted reply, are not counted. Only the email and letter genre runs this rule.'
|
|
79
|
+
rewrite:
|
|
80
|
+
depth: light
|
|
81
|
+
ja:
|
|
82
|
+
direction: 書き手に、ファイルを付けたかを確かめてください。付けたなら、添付したもののファイル名を「添付ファイル:」の行に書きます。付けないなら、添付に触れた文を消すか、資料の在りか(共有フォルダの場所など)を書きます。ファイル名を推測で書きません。
|
|
83
|
+
pairs:
|
|
84
|
+
- before: 見積書を添付しましたので、ご確認ください。
|
|
85
|
+
after: |
|
|
86
|
+
見積書を添付しましたので、ご確認ください。
|
|
87
|
+
|
|
88
|
+
添付ファイル:見積書.pdf
|
|
89
|
+
- before: 資料を添付します。
|
|
90
|
+
after: 資料は共有フォルダの「2026年10月」に置きました。
|
|
91
|
+
keep:
|
|
92
|
+
- 用件の文
|
|
93
|
+
- 本文にあるファイルの名前
|
|
94
|
+
avoid:
|
|
95
|
+
- 本文に無いファイル名を作る
|
|
96
|
+
- 添付したと書き手に確かめずに書く
|
|
97
|
+
en:
|
|
98
|
+
direction: Ask the writer whether the file is attached. If it is, list its file name on an "Attachment:" line. If not, remove the sentence that mentions it, or say where the file is (a shared folder). Do not guess a file name.
|
|
99
|
+
pairs:
|
|
100
|
+
- before: I have attached the quote for the panels.
|
|
101
|
+
after: |
|
|
102
|
+
I have attached the quote for the panels.
|
|
103
|
+
|
|
104
|
+
Attachment: quote.pdf
|
|
105
|
+
- before: Please find the slides attached.
|
|
106
|
+
after: The slides are in the shared folder under "October 2026".
|
|
107
|
+
keep:
|
|
108
|
+
- the body's sentences
|
|
109
|
+
- file names the text already gives
|
|
110
|
+
avoid:
|
|
111
|
+
- inventing a file name
|
|
112
|
+
- saying the file is attached without asking the writer
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
id: baito-keigo
|
|
2
|
+
layer: L3
|
|
3
|
+
status: stable
|
|
4
|
+
how_to_find: phrase-match
|
|
5
|
+
word_list: baito-keigo
|
|
6
|
+
uses: [pos]
|
|
7
|
+
languages: [ja]
|
|
8
|
+
severity: warning
|
|
9
|
+
|
|
10
|
+
name:
|
|
11
|
+
ja: バイト敬語
|
|
12
|
+
en: Service-counter keigo
|
|
13
|
+
|
|
14
|
+
why:
|
|
15
|
+
ja: 「〜でよろしかったでしょうか」「こちらになります」「1000円からお預かりします」のように、接客の場で広まった言い方です。過去形にする必要の無い「よろしかった」、「です」の代わりの「になります」、金額に付けた「から」は、敬語の誤りとして挙げられることが多く、改まった文書では幼く読まれます。
|
|
16
|
+
en: Phrases spread at Japanese service counters (でよろしかったでしょうか, こちらになります, 円からお預かり). Guides list them as keigo mistakes, and in a formal document they read as careless.
|
|
17
|
+
|
|
18
|
+
message:
|
|
19
|
+
ja: 「{matched}」はバイト敬語と呼ばれる言い方です
|
|
20
|
+
en: '"{matched}" is service-counter keigo'
|
|
21
|
+
|
|
22
|
+
how_to_fix:
|
|
23
|
+
ja: 「よろしかったでしょうか」は「よろしいでしょうか」、「こちらになります」は「こちらです」、「1000円からお預かりします」は「1000円をお預かりします」に直してください。
|
|
24
|
+
en: Write よろしいでしょうか, こちらです, 円をお預かりします.
|
|
25
|
+
|
|
26
|
+
levels: { strict: 1, normal: 1, relaxed: 2 }
|
|
27
|
+
|
|
28
|
+
use_for: [blog, business, legal, docs, academic, literature, speech]
|
|
29
|
+
off_for:
|
|
30
|
+
literature: "Dialogue keeps a character's keigo, mistakes and all."
|
|
31
|
+
speech: "A transcript keeps the speaker's words: hedges and ら dropped as spoken."
|
|
32
|
+
|
|
33
|
+
group: wording
|
|
34
|
+
summary:
|
|
35
|
+
ja: 「〜でよろしかったでしょうか」「こちらになります」のように、接客の場で広まった誤りとされる敬語
|
|
36
|
+
en: Japanese service-counter keigo (でよろしかったでしょうか, こちらになります)
|
|
37
|
+
example:
|
|
38
|
+
ja:
|
|
39
|
+
before: ご注文は以上でよろしかったでしょうか。
|
|
40
|
+
after: ご注文は以上でよろしいでしょうか。
|
|
41
|
+
|
|
42
|
+
not_flagged:
|
|
43
|
+
ja: 一覧にある形だけを見ます。変化を言う「になります」(来月から有料になります)と、人から預かる「から」(お客様からお預かりした書類)は正しいので見ません。話し言葉と小説の台詞は話したとおりに書くので、文学と話し言葉のジャンルでは見ません。
|
|
44
|
+
en: Only the forms on chaff's list are checked. になります for a change and から for a person are correct and not reported. Literature and speech do not run this rule.
|
|
45
|
+
level_meaning:
|
|
46
|
+
ja: 当てはまる形が {limit} 箇所あれば指摘
|
|
47
|
+
en: reported once there are {limit}
|
|
48
|
+
rewrite:
|
|
49
|
+
depth: light
|
|
50
|
+
ja:
|
|
51
|
+
direction: 指摘された言い方を、普通の丁寧語に置き換えてください。「よろしかった」は「よろしい」、「になります」は「です」、金額の後の「から」は「を」にします。
|
|
52
|
+
pairs:
|
|
53
|
+
- before: ご注文は以上でよろしかったでしょうか。
|
|
54
|
+
after: ご注文は以上でよろしいでしょうか。
|
|
55
|
+
- before: 会議の資料はこちらになります。
|
|
56
|
+
after: 会議の資料はこちらです。
|
|
57
|
+
- before: 1万円からお預かりします。
|
|
58
|
+
after: 1万円をお預かりします。
|
|
59
|
+
keep:
|
|
60
|
+
- 丁寧さの度合い(です・ます、ございます)
|
|
61
|
+
- 金額や数
|
|
62
|
+
avoid:
|
|
63
|
+
- 変化を言う「になります」(来月から有料になります)まで「です」にする
|
|
64
|
+
- 丁寧語をやめて、くだけた言い方にする
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
id: bare-url-mix
|
|
2
|
+
layer: L3
|
|
3
|
+
status: stable
|
|
4
|
+
how_to_find: bare-url-mix
|
|
5
|
+
requires: [markdown]
|
|
6
|
+
severity: info
|
|
7
|
+
|
|
8
|
+
name:
|
|
9
|
+
ja: 言葉のリンクの中に URL がそのまま混ざっている
|
|
10
|
+
en: A bare URL among worded links
|
|
11
|
+
|
|
12
|
+
why:
|
|
13
|
+
ja: 文書のリンクがほとんど「[導入の手引き](https://…)」のように言葉で書かれているのに、一部だけ「https://…」がそのまま本文に出ていると、そこだけ読み手は長い記号の列を読まされ、行き先が何かを URL から推し量ることになります。言葉のリンクに揃っていない所は、書き直し忘れのことが多い形です。どちらの書き方が正しいかは決めません。URL をそのまま書く文書(言葉のリンクが少ない文書、URL のほうが多い文書)は指しません。
|
|
14
|
+
en: When a document's links are mostly words ("[the setup guide](https://…)"), a URL left bare in the text ("https://…") makes the reader read a string of symbols there and guess the target from it. A spot that does not match the worded links is usually one that was not rewritten. Neither style is called right; a document that writes its URLs bare (few worded links, or more bare URLs than worded ones) is not reported.
|
|
15
|
+
|
|
16
|
+
message:
|
|
17
|
+
ja: URL「{url}」がそのまま書かれています(言葉のリンクが {count} 個ある文書)
|
|
18
|
+
en: 'The URL "{url}" is written bare ({count} worded {count|link|links} in this document)'
|
|
19
|
+
|
|
20
|
+
how_to_fix:
|
|
21
|
+
ja: 行き先の名前を言葉にしてリンクにしてください([導入の手引き](https://…))。URL そのものを見せたいときは、山括弧で囲んでリンクにします(<https://…>)。
|
|
22
|
+
en: Make the target's name the link text ("[the setup guide](https://…)"). If the URL itself should show, wrap it in angle brackets ("<https://…>").
|
|
23
|
+
|
|
24
|
+
# 指摘に要る、言葉のリンクの数。少ないと、どちらが文書の書き方かが決まらない。
|
|
25
|
+
levels: { strict: 2, normal: 3, relaxed: 5 }
|
|
26
|
+
|
|
27
|
+
use_for: [business, technical, blog, legal, docs, academic, literature, speech]
|
|
28
|
+
|
|
29
|
+
group: consistency
|
|
30
|
+
summary:
|
|
31
|
+
ja: 言葉でリンクを書く文書の中に、「https://…」がそのまま書かれている所
|
|
32
|
+
en: A URL written bare in a document whose other links are words
|
|
33
|
+
example:
|
|
34
|
+
ja:
|
|
35
|
+
before: |
|
|
36
|
+
導入は[導入の手引き](https://example.com/setup)に、設定は[設定の一覧](https://example.com/settings)にあります。
|
|
37
|
+
|
|
38
|
+
料金は[料金表](https://example.com/pricing)を見てください。問い合わせは https://example.com/contact から送れます。
|
|
39
|
+
after: |
|
|
40
|
+
導入は[導入の手引き](https://example.com/setup)に、設定は[設定の一覧](https://example.com/settings)にあります。
|
|
41
|
+
|
|
42
|
+
料金は[料金表](https://example.com/pricing)を見てください。問い合わせは[問い合わせの窓口](https://example.com/contact)から送れます。
|
|
43
|
+
en:
|
|
44
|
+
before: |
|
|
45
|
+
Setup is in [the setup guide](https://example.com/setup), and the options are in [the settings list](https://example.com/settings).
|
|
46
|
+
|
|
47
|
+
Prices are on [the pricing page](https://example.com/pricing). Send questions through https://example.com/contact today.
|
|
48
|
+
after: |
|
|
49
|
+
Setup is in [the setup guide](https://example.com/setup), and the options are in [the settings list](https://example.com/settings).
|
|
50
|
+
|
|
51
|
+
Prices are on [the pricing page](https://example.com/pricing). Send questions through [the contact form](https://example.com/contact) today.
|
|
52
|
+
|
|
53
|
+
not_flagged:
|
|
54
|
+
ja: 山括弧で囲んだ URL(<https://…>)、言葉が URL のリンク、コードと引用の中の URL は指しません。参照の形のリンク([言葉][1])は言葉のリンクに数えません。言葉のリンクが指摘に要る数に届かない文書と、URL をそのまま書くほうが多い文書も指しません。
|
|
55
|
+
en: A URL in angle brackets ("<https://…>"), a link whose text is the URL, and URLs in code or quotations are not reported; reference-style links ("[text][1]") are not counted as worded links; nor is a document with fewer worded links than the level needs, or one where bare URLs are not the few.
|
|
56
|
+
level_meaning:
|
|
57
|
+
ja: 言葉のリンクが {limit} 個以上ある文書で指摘
|
|
58
|
+
en: reported in a document with {limit} or more worded links
|
|
59
|
+
rewrite:
|
|
60
|
+
depth: light
|
|
61
|
+
ja:
|
|
62
|
+
direction: そのまま書いた URL を、行き先の名前を言葉にしたリンクに変えてください。行き先の名前は、文がすでに言っている名前(窓口、手引き)を使います。URL は変えません。
|
|
63
|
+
pairs:
|
|
64
|
+
- before: 問い合わせは https://example.com/contact から送れます。
|
|
65
|
+
after: 問い合わせは[問い合わせの窓口](https://example.com/contact)から送れます。
|
|
66
|
+
- before: 手順は https://example.com/guide にまとめました。
|
|
67
|
+
after: 手順は[作業の手引き](https://example.com/guide)にまとめました。
|
|
68
|
+
keep:
|
|
69
|
+
- リンクの行き先(URL)
|
|
70
|
+
- 文の言っていること
|
|
71
|
+
avoid:
|
|
72
|
+
- 行き先の名前を推し量って、URL の中身と違う名前を付ける
|
|
73
|
+
- 「こちら」「ここ」をリンクの言葉にする
|
|
74
|
+
en:
|
|
75
|
+
direction: Turn the bare URL into a link whose text names the target. Use a name the sentence already gives (the form, the guide). Keep the URL.
|
|
76
|
+
pairs:
|
|
77
|
+
- before: Send questions through https://example.com/contact today.
|
|
78
|
+
after: Send questions through [the contact form](https://example.com/contact) today.
|
|
79
|
+
- before: The steps are at https://example.com/guide for now.
|
|
80
|
+
after: The steps are in [the setup guide](https://example.com/guide) for now.
|
|
81
|
+
keep:
|
|
82
|
+
- the link target (the URL)
|
|
83
|
+
- what the sentence says
|
|
84
|
+
avoid:
|
|
85
|
+
- guessing a name the target page does not have
|
|
86
|
+
- making "here" or "click here" the link text
|
package/rules/bold-density.yaml
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
id: bold-label-list
|
|
2
2
|
layer: L1
|
|
3
|
-
status:
|
|
3
|
+
status: stable
|
|
4
4
|
how_to_find: bold-label-list
|
|
5
5
|
requires: [markdown]
|
|
6
6
|
# English human writing (handbooks, minutes, policies, changelogs) labels list items in bold as a matter of course: the
|
|
@@ -28,6 +28,13 @@ how_to_fix:
|
|
|
28
28
|
levels: { strict: 3, normal: 5, relaxed: 8 }
|
|
29
29
|
|
|
30
30
|
use_for: [technical/readme, blog, business, legal, docs, academic, literature, speech]
|
|
31
|
+
off_for:
|
|
32
|
+
legal: "Legal drafting repeats its terms and its sentence heads on purpose, puts the actor in the passive (shall be deemed), and joins long noun compounds (個人情報取扱事業者). This rule would only flag the form."
|
|
33
|
+
docs: "A help page repeats its heading in its first line (To upload a file, ...) and states no claims to back up."
|
|
34
|
+
academic: "Science writes in the passive, hedges its claims on purpose (may, suggest) and cites numbers as its evidence."
|
|
35
|
+
literature: "Length, rhythm, repetition and register are the author's choices in literature, and dialogue mixes styles. Only what one work can hold itself to runs: consistent spacing and commas, and numbering without gaps."
|
|
36
|
+
business/meeting-notes: "A header block of labelled fields (- **日時**:…, - **出席者**:…) is the form of minutes, not a list of captions."
|
|
37
|
+
speech/transcript: "Labelled speaker turns (- **記者**:…) are how a transcript is laid out."
|
|
31
38
|
sources: [zhang-2024]
|
|
32
39
|
|
|
33
40
|
group: ai-tells
|
|
@@ -58,6 +65,7 @@ level_meaning:
|
|
|
58
65
|
ja: 太字の札で始まる項目が {limit} 個あれば指摘
|
|
59
66
|
en: reported once {limit} list items open with a bold label
|
|
60
67
|
rewrite:
|
|
68
|
+
depth: structure
|
|
61
69
|
ja:
|
|
62
70
|
direction: 太字の札を外し、項目を文に戻してください。札の語は文の中に入れ、項目どうしの関係(理由、順番、どちらが大事か)を書きます。用語集のように、札が定義される語そのものなら箇条書きのままにします。
|
|
63
71
|
pairs:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
id: bracket-nesting
|
|
2
2
|
layer: L3
|
|
3
|
-
status:
|
|
3
|
+
status: stable
|
|
4
4
|
how_to_find: bracket-nesting
|
|
5
5
|
severity: info
|
|
6
6
|
|
|
@@ -47,6 +47,7 @@ level_meaning:
|
|
|
47
47
|
ja: 括弧の重なり {limit} 重まで
|
|
48
48
|
en: brackets nested up to {limit} deep
|
|
49
49
|
rewrite:
|
|
50
|
+
depth: light
|
|
50
51
|
ja:
|
|
51
52
|
direction: 一番内側の括弧を外して、別の文か注にしてください。括弧の中身は落とさずに残します。
|
|
52
53
|
pairs:
|