Internal rules and regulations

Internal rules and regulations number their articles and refer from one article to another. chaff checks by machine that those numbers and references fit together. The genre is legal/statute. Statutes and official notices are checked under the same genre.

What usually goes wrong

Rules are amended by deleting and adding articles, and each time the numbers and references can drift apart.

What goes wrongExample
A number is skippedArticle 3 was deleted and nothing was renumbered (Article 4 follows Article 2)
A reference points nowhere“the register provided for in Article 9”, when there is no Article 9
A term is defined twice“equipment” is defined in Article 1 and again in Article 4, and the two disagree

In each case the reader cannot tell which is right, and has to ask whoever wrote it. The longer the rules, the more of these a person reading by eye will miss.

What chaff checks, and what it does not

These rules run for this genre. Each one reads the document as a tree of numbered addresses.

RuleWhat it finds
numbering-gapA number skipped or used twice
dangling-referenceA reference to an article that is not in the document
duplicate-definitionA term defined in two places
date-weekday-mismatchA weekday written next to a date that does not match the calendar
total-mismatchA total that is not the sum of its items
dangling-figure-referenceA reference to a figure, table or appendix (Figure 3, Appendix B) the document does not label
date-range-reversedA period whose end date comes before its start date

Some things are left out on purpose.

  • chaff never rewrites the text. Fixing is the writer’s job.
  • It does not judge whether a rule is sensible or lawful. That takes a person reading it.
  • It does not decide which of two definitions is right. It only points at the second one.
  • It stays quiet on a reference whose target it cannot pin down, such as “the preceding article” in Article 1, rather than guess.
  • A reference that names another document (“Article 9 of the Travel Rules”) points outside, so chaff does not look for it here.
  • It does not flag passives or long sentences. In rules, that is how they are written.

Try it

If you have not set up yet, do Getting ready first. The rules below were saved as rules.md, with three slips put in.

# Equipment Management Rules

## Article 1 (Purpose)

These rules set out how company equipment is lent and returned.
2 In these rules, "equipment" means computers, cameras and other devices owned by the company.

## Article 2 (Lending)

An employee may borrow equipment by signing the register provided for in Article 9.

## Article 4 (Return)

Borrowed equipment must be returned within 7 days of the day it was borrowed.
2 In these rules, "equipment" means devices worth 10,000 yen or more.

In the folder that holds the document, type:

npx chaffjs rules.md --genre legal/statute    check rules.md as internal rules

The screen shows:

$ npx chaffjs rules.md --genre legal/statute

Guide: Statute and regulation (legal/statute)

  Before the findings below, check the draft against these.

  - Is every term from the definitions used in exactly its defined form?
  - Are sections numbered without gaps or repeats, and does every cross-reference point to one that exists?
  - Are duties (shall), prohibitions (shall not), powers (may) and best-effort duties written apart?
  - Can the scope, the exceptions (provided that) and the date of effect be found?

  Rules that matter most for this genre: dangling-figure-reference, dangling-reference, date-range-reversed, date-weekday-mismatch, defined-name-repeated, defined-term-form, duplicate-definition, numbering-gap, total-mismatch
  Change it with guide: in chaff.yaml; leave it out with --no-guide.

════════════════════════════════════════════════════════════

rules.md   legal/statute · English   genre from --genre

─── line 10 ──────────────────────────────────────────────────

    Article 9.

  ✖  Reference to a missing provision

     "Article 9" (address 9) is not in this document
     A reference such as "as set out in Section 12" leaves the reader at a dead end when that section is not in the document. It usually happens when a provision is deleted or renumbered and the reference keeps the old number. chaff builds the document's tree of addresses (chaff tree) and checks that each reference's address is in it. A Japanese reference counted in 条 (法第2条) is not looked up in a document that numbers none of its provisions with 条, such as a guideline whose headings read "1 目的", because it points into another document.

     → Fix the number or remove the reference. If it points into another document, name that document so the reader knows where to look.

     Relax this rule:  npx chaffjs relax dangling-reference


─── line 12 ──────────────────────────────────────────────────

    ## Article 4 (Return)

  ✖  Skipped or repeated number

     "Article 4" follows "Article 2" (expected number 3)
     Article 5 right after Article 3, (c) right after (a), two paragraphs numbered 2. A reader cannot tell whether something was removed, or which one a reference means. Only numbers side by side under the same parent are compared. The numbers written on a Markdown ordered list (steps "1.", "2.", "4.") are compared too. The page renders them counted from the first, but the source and a "see step 4" use the numbers as written.

     → Renumber. If a provision was removed on purpose, keep its number with a note such as "Section 4 [Deleted]".

     Relax this rule:  npx chaffjs relax numbering-gap


─── line 15 ──────────────────────────────────────────────────

    "equipment" means devices worth 10,000 yen or more.

  ⚠  Term defined twice

     "equipment" is also defined on line 6
     A term defined in two places makes the reader check whether the two definitions agree. In long contracts a definition added later often drifts from the first. Whether they conflict is not something a machine can decide, so chaff only points at the second one. A heading that names the term is not counted as a definition.

     → Keep one definition and refer to it from the other place. If the meaning changes on purpose, use a different term.

     Relax this rule:  npx chaffjs relax duplicate-definition


────────────────────────────────────────────────────────────

  2 errors, 1 warning   All judged by machine
              (the same text gives the same result every time)

  The text was not changed. Fixing it is the writer's job.

  118 rules did not run:
      abstract-length (the legal/statute genre does not check it)
      adverb-overuse (the legal/statute genre does not check it)
      adverb-without-negation (not a rule for en)
      adversative-ga-repeat (not a rule for en)
      agentless-passive (the legal/statute genre does not check it)
      ai-generated-composite (the legal/statute genre does not check it)
      ai-structure (the legal/statute genre does not check it)
      ai-tell (the legal/statute genre does not check it)
      all-caps-shouting (the legal/statute genre does not check it)
      announcing-opener (the legal/statute genre does not check it)
      attachment-not-attached (the legal/statute genre does not check it)
      baito-keigo (not a rule for en)
      bold-label-list (not a rule for en)
      bracket-width-consistency (not a rule for en)
      citation-reference-mismatch (the legal/statute genre does not check it)
      citation-style-mix (the legal/statute genre does not check it)
      clause-chain (not a rule for en)
      closing-cliche (the legal/statute genre does not check it)
      code-fence-language-mix (the legal/statute genre does not check it)
      colloquial-opener (not a rule for en)
      colon-lead-in (not a rule for en)
      concrete-evidence-density (the legal/statute genre does not check it)
      connective-hierarchy (not a rule for en)
      contrast-framing (the legal/statute genre does not check it)
      cross-doc-broken-link (it compares documents, and there is only one to compare (it runs when chaff is given two or more files, or a folder))
      cross-doc-duplicate-definition (it compares documents, and there is only one to compare (it runs when chaff is given two or more files, or a folder))
      cross-doc-fact-conflict (it compares documents, and there is only one to compare (it runs when chaff is given two or more files, or a folder))
      cross-doc-term-variant (it compares documents, and there is only one to compare (it runs when chaff is given two or more files, or a folder))
      cushion-phrase-density (the legal/statute genre does not check it)
      deadline-after-event (the legal/statute genre does not check it)
      default-value-mismatch (the legal/statute genre does not check it)
      deprecated-option-used (the legal/statute genre does not check it)
      double-keigo (not a rule for en)
      double-negative (the legal/statute genre does not check it)
      due-before-issue (the legal/statute genre does not check it)
      email-greeting-closing (the legal/statute genre does not check it)
      email-subject-length (the legal/statute genre does not check it)
      emoji-heading (the legal/statute genre does not check it)
      empty-conclusion (the legal/statute genre does not check it)
      excessive-hedging (the legal/statute genre does not check it)
      exclamation-width-consistency (not a rule for en)
      expletive-construction (the legal/statute genre does not check it)
      figure-reference-order (the legal/statute genre does not check it)
      fullwidth-alnum-consistency (not a rule for en)
      hankaku-kana (not a rule for en)
      heading-command-missing (the legal/statute genre does not check it)
      heading-echo (the legal/statute genre does not check it)
      hiragana-fukushi (not a rule for en)
      humble-for-others (not a rule for en)
      idiom-misuse (not a rule for en)
      ime-residue (not a rule for en)
      kana-function-word (not a rule for en)
      kanji-compound-slip (not a rule for en)
      katakana-density (not a rule for en)
      katakana-long-vowel (not a rule for en)
      kutoten-consistency (not a rule for en)
      latin-spacing (not a rule for en)
      list-item-form-mix (the legal/statute genre does not check it)
      max-kanji-continuous (not a rule for en)
      max-sentence-length (the legal/statute genre does not check it)
      max-ten (not a rule for en)
      misconversion (not a rule for en)
      missing-final-period (not a rule for en)
      ngram-repetition (the legal/statute genre does not check it)
      no-doubled-joshi (not a rule for en)
      no-lead (the legal/statute genre does not check it)
      no-mixed-desumasu (not a rule for en)
      no-nakaguro-parallel (not a rule for en)
      nominalization (the legal/statute genre does not check it)
      number-style-consistency (the legal/statute genre does not check it)
      obligation-without-deadline (the legal/statute genre does not check it)
      one-sentence-paragraph-run (the legal/statute genre does not check it)
      padded-intro (the legal/statute genre does not check it)
      paragraph-length-variance (the legal/statute genre does not check it)
      paragraph-restatement (the legal/statute genre does not check it)
      parameter-table-mismatch (the legal/statute genre does not check it)
      party-order (not a rule for en)
      party-role-name (the legal/statute genre does not check it)
      preamble-length (the legal/statute genre does not check it)
      prerequisite-after-step (the legal/statute genre does not check it)
      proper-noun-density (the legal/statute genre does not check it)
      quote-unnamed-speaker (the legal/statute genre does not check it)
      quote-without-source (the legal/statute genre does not check it)
      ra-nuki (not a rule for en)
      repeated-sentence-ending (not a rule for en)
      repeated-sentence-head (the legal/statute genre does not check it)
      request-without-deadline (the legal/statute genre does not check it)
      requirement-smell (the legal/statute genre does not check it)
      return-type-mismatch (the legal/statute genre does not check it)
      risk-disclosure (the legal/statute genre does not check it)
      rule-of-three (the legal/statute genre does not check it)
      sasete-itadaku (not a rule for en)
      section-length-uniformity (the legal/statute genre does not check it)
      sentence-initial-so (the legal/statute genre does not check it)
      sentence-rhythm (the legal/statute genre does not check it)
      shell-prompt-mix (the legal/statute genre does not check it)
      step-statement-mix (the legal/statute genre does not check it)
      stock-transition (the legal/statute genre does not check it)
      stray-space (not a rule for en)
      taigen-dome-in-prose (not a rule for en)
      tari-unpaired (not a rule for en)
      teki-overuse (not a rule for en)
      title-length (the legal/statute genre does not check it)
      toki-as-condition (not a rule for en)
      topic-predicate-distance (not a rule for en)
      translationese-density (not a rule for en)
      ui-label-variant (the legal/statute genre does not check it)
      undefined-function-call (the legal/statute genre does not check it)
      undefined-term (the legal/statute genre does not check it)
      unqualified-superlative (the legal/statute genre does not check it)
      unsourced-number (the legal/statute genre does not check it)
      vague-deadline (the legal/statute genre does not check it)
      version-mismatch (the legal/statute genre does not check it)
      version-order (the legal/statute genre does not check it)
      warning-without-action (the legal/statute genre does not check it)
      weasel-word (the legal/statute genre does not check it)
      wordy-phrase (the legal/statute genre does not check it)
      yori-as-from (not a rule for en)

AI-likeness: not scored (too short: 66 words; scored from 200)

What each finding means

There are three findings. ✖ is an error and ⚠ a warning. Under each line number, chaff shows the sentence from the point it is about.

LineFindingWhat it meansHow to fix the text
10Reference to a missing provisionThere is no Article 9 in these rulesCorrect the number, or add the article about the register
12Skipped or repeated numberArticle 4 follows Article 2; there is no Article 3Renumber. To keep a gap on purpose, write “Article 3 (Deleted)”
15Term defined twice“equipment” is also defined on line 6Keep one definition and drop the other

The guide at the top

The screen above opens with the genre’s guide: what good internal rules do, as questions to check the draft against, and the rules that matter most for this genre. chaff prints it because the genre was set with --genre. Most of the questions are ones no rule can answer, so read them before the findings. An AI that rewrites the text works to the same lines (Using the guide with an AI).

A guessed or default genre prints no guide, and --compact and --no-guide leave it out. A team changes the lines with guide: in chaff.yaml (Changing the genre’s guide).

Reading the “did not run” list

At the end, the screen lists the rules it did not use this time, each with its reason. That way “no findings” is never mistaken for “checked everything and found nothing”. There are three reasons.

ReasonWhat it means
the legal/statute genre does not check itRules are written that way on purpose, so this genre leaves it out
not a rule for enThe rule is for Japanese documents only
still experimentalThe rule is new and not yet measured on documents people wrote. --experimental turns it on

Not typing the genre every time

Without --genre, chaff reads the document as a technical article (blog/tech). For this sample, that means no findings at all, because the rules about article numbers do not run.

$ npx chaffjs rules.md

rules.md   blog/tech · English   genre from the default

─── line 10 ──────────────────────────────────────────────────

    Article 9.

  ✖  Reference to a missing provision

     "Article 9" (address 9) is not in this document
     A reference such as "as set out in Section 12" leaves the reader at a dead end when that section is not in the document. It usually happens when a provision is deleted or renumbered and the reference keeps the old number. chaff builds the document's tree of addresses (chaff tree) and checks that each reference's address is in it. A Japanese reference counted in 条 (法第2条) is not looked up in a document that numbers none of its provisions with 条, such as a guideline whose headings read "1 目的", because it points into another document.

     → Fix the number or remove the reference. If it points into another document, name that document so the reader knows where to look.

     Relax this rule:  npx chaffjs relax dangling-reference


─── line 12 ──────────────────────────────────────────────────

    ## Article 4 (Return)

  ✖  Skipped or repeated number

     "Article 4" follows "Article 2" (expected number 3)
     Article 5 right after Article 3, (c) right after (a), two paragraphs numbered 2. A reader cannot tell whether something was removed, or which one a reference means. Only numbers side by side under the same parent are compared. The numbers written on a Markdown ordered list (steps "1.", "2.", "4.") are compared too. The page renders them counted from the first, but the source and a "see step 4" use the numbers as written.

     → Renumber. If a provision was removed on purpose, keep its number with a note such as "Section 4 [Deleted]".

     Relax this rule:  npx chaffjs relax numbering-gap


─── line 15 ──────────────────────────────────────────────────

    "equipment" means devices worth 10,000 yen or more.

  ⚠  Term defined twice

     "equipment" is also defined on line 6
     A term defined in two places makes the reader check whether the two definitions agree. In long contracts a definition added later often drifts from the first. Whether they conflict is not something a machine can decide, so chaff only points at the second one. A heading that names the term is not counted as a definition.

     → Keep one definition and refer to it from the other place. If the meaning changes on purpose, use a different term.

     Relax this rule:  npx chaffjs relax duplicate-definition


────────────────────────────────────────────────────────────

  2 errors, 1 warning   All judged by machine
…

When a document clearly looks like another kind, chaff says so under the first line and suggests a genre. This short sample does not, so it is safer to set the genre for the folder once:

npx chaffjs init --genre legal/statute    create chaff.yaml here, with the genre in it

After saying it created chaff.yaml (the settings file) and .gitignore, it shows:

The genre is legal/statute. If that is wrong, change genre in chaff.yaml.
  List: npx chaffjs genres

Next:
  npx chaffjs .            check every Markdown file here

From then on, npx chaffjs rules.md in this folder checks the file as internal rules.

Silencing one spot on purpose

Sometimes a finding is right, but the spot is that way on purpose. Say Article 3 was deleted, but other rules cite Article 4, so the numbers must not change. Put this line just above that heading:

<!-- stet: numbering-gap — Article 3 was deleted; other rules cite Article 4, so the numbers stay -->
## Article 4 (Return)

stet marks a spot whose finding is silenced. Write the reason after —. It is a Markdown comment, so nobody opening the document sees it. Run it again and the numbering finding is gone, and the first line counts what was silenced. Here --compact prints each finding on two lines.

$ npx chaffjs rules.md --genre legal/statute --compact

rules.md   legal/statute · English   genre from --genre   1 stet

  10:74   error   "Article 9" (address 9) is not in this document
                  dangling-reference
  16:19   warning "equipment" is also defined on line 6
                  duplicate-definition

2 findings, 118 rules not run

Changing a rule for the whole team

When it is not one spot but how your team works, change the rule instead. If your team keeps the numbers of deleted articles, a gap in the numbering is not a mistake. Type relax with a reason.

npx chaffjs relax numbering-gap --why "we keep the numbers of deleted articles"

It prints:

Set numbering-gap to relaxed (…/chaff.yaml)
This rule has no numeric limit: its findings still show, as a warning instead of an error.

The rules about article numbers do not count anything; a number is either skipped or it is not. So relaxing one lowers how its findings are marked, by one step. The finding stays, so the gap is still in view. The rule is added to chaff.yaml, with the reason, the date and who typed it:

  # Skipped or repeated number
  # Article 5 right after Article 3, (c) right after (a), two paragraphs numbered 2. A reader cannot tell whether something was removed, or which one a reference means. Only numbers side by side under the same parent are compared.
  numbering-gap: relaxed # 2026-09-30 we keep the numbers of deleted articles / isamu

Run it again on rules.md without the stet, and the numbering finding is a warning instead of an error.

$ npx chaffjs rules.md --compact

rules.md   legal/statute · English   genre from chaff.yaml

  10:74   error   "Article 9" (address 9) is not in this document
                  dangling-reference
  12:1    warning "Article 4" follows "Article 2" (expected number 3)
                  numbering-gap
  15:19   warning "equipment" is also defined on line 6
                  duplicate-definition

3 findings, 118 rules not run

chaff fails when any error is left, and passes when there are only warnings, so a warning does not stop CI. The error left here is the reference to Article 9, which does not exist.

If gaps in the numbering need no checking at all, turn the rule off instead.

npx chaffjs off numbering-gap --why "article numbers are kept in a separate register"

A rule turned off appears in the “did not run” list as “turned off in the settings”. Either way the reason stays in the file, so whoever comes later can see why the rule was changed.

After fixing

The articles were renumbered, the article about the register was added, and the definition was kept in Article 1 only.

# Equipment Management Rules

## Article 1 (Purpose)

These rules set out how company equipment is lent and returned.
2 In these rules, "equipment" means computers, cameras and other devices owned by the company and worth 10,000 yen or more.

## Article 2 (Lending)

An employee may borrow equipment by signing the register provided for in Article 4.

## Article 3 (Return)

Borrowed equipment must be returned within 7 days of the day it was borrowed.

## Article 4 (Register)

The General Affairs Department keeps a register of the equipment lent and returned.
$ npx chaffjs rules-fixed.md --genre legal/statute

Guide: Statute and regulation (legal/statute)

  Before the findings below, check the draft against these.

  - Is every term from the definitions used in exactly its defined form?
  - Are sections numbered without gaps or repeats, and does every cross-reference point to one that exists?
  - Are duties (shall), prohibitions (shall not), powers (may) and best-effort duties written apart?
  - Can the scope, the exceptions (provided that) and the date of effect be found?

  Rules that matter most for this genre: dangling-figure-reference, dangling-reference, date-range-reversed, date-weekday-mismatch, defined-name-repeated, defined-term-form, duplicate-definition, numbering-gap, total-mismatch
  Change it with guide: in chaff.yaml; leave it out with --no-guide.

════════════════════════════════════════════════════════════

rules-fixed.md   legal/statute · English   genre from --genre

────────────────────────────────────────────────────────────

  No findings   All judged by machine
              (the same text gives the same result every time)

  The text was not changed. Fixing it is the writer's job.

  118 rules did not run:
      abstract-length (the legal/statute genre does not check it)
      adverb-overuse (the legal/statute genre does not check it)
      adverb-without-negation (not a rule for en)
      adversative-ga-repeat (not a rule for en)
      agentless-passive (the legal/statute genre does not check it)
      ai-generated-composite (the legal/statute genre does not check it)
      ai-structure (the legal/statute genre does not check it)
      ai-tell (the legal/statute genre does not check it)
      all-caps-shouting (the legal/statute genre does not check it)
      announcing-opener (the legal/statute genre does not check it)
      attachment-not-attached (the legal/statute genre does not check it)
      baito-keigo (not a rule for en)
      bold-label-list (not a rule for en)
      bracket-width-consistency (not a rule for en)
      citation-reference-mismatch (the legal/statute genre does not check it)
      citation-style-mix (the legal/statute genre does not check it)
      clause-chain (not a rule for en)
      closing-cliche (the legal/statute genre does not check it)
      code-fence-language-mix (the legal/statute genre does not check it)
      colloquial-opener (not a rule for en)
      colon-lead-in (not a rule for en)
      concrete-evidence-density (the legal/statute genre does not check it)
      connective-hierarchy (not a rule for en)
      contrast-framing (the legal/statute genre does not check it)
      cross-doc-broken-link (it compares documents, and there is only one to compare (it runs when chaff is given two or more files, or a folder))
      cross-doc-duplicate-definition (it compares documents, and there is only one to compare (it runs when chaff is given two or more files, or a folder))
      cross-doc-fact-conflict (it compares documents, and there is only one to compare (it runs when chaff is given two or more files, or a folder))
      cross-doc-term-variant (it compares documents, and there is only one to compare (it runs when chaff is given two or more files, or a folder))
      cushion-phrase-density (the legal/statute genre does not check it)
      deadline-after-event (the legal/statute genre does not check it)
      default-value-mismatch (the legal/statute genre does not check it)
      deprecated-option-used (the legal/statute genre does not check it)
      double-keigo (not a rule for en)
      double-negative (the legal/statute genre does not check it)
      due-before-issue (the legal/statute genre does not check it)
      email-greeting-closing (the legal/statute genre does not check it)
      email-subject-length (the legal/statute genre does not check it)
      emoji-heading (the legal/statute genre does not check it)
      empty-conclusion (the legal/statute genre does not check it)
      excessive-hedging (the legal/statute genre does not check it)
      exclamation-width-consistency (not a rule for en)
      expletive-construction (the legal/statute genre does not check it)
      figure-reference-order (the legal/statute genre does not check it)
      fullwidth-alnum-consistency (not a rule for en)
      hankaku-kana (not a rule for en)
      heading-command-missing (the legal/statute genre does not check it)
      heading-echo (the legal/statute genre does not check it)
      hiragana-fukushi (not a rule for en)
      humble-for-others (not a rule for en)
      idiom-misuse (not a rule for en)
      ime-residue (not a rule for en)
      kana-function-word (not a rule for en)
      kanji-compound-slip (not a rule for en)
      katakana-density (not a rule for en)
      katakana-long-vowel (not a rule for en)
      kutoten-consistency (not a rule for en)
      latin-spacing (not a rule for en)
      list-item-form-mix (the legal/statute genre does not check it)
      max-kanji-continuous (not a rule for en)
      max-sentence-length (the legal/statute genre does not check it)
      max-ten (not a rule for en)
      misconversion (not a rule for en)
      missing-final-period (not a rule for en)
      ngram-repetition (the legal/statute genre does not check it)
      no-doubled-joshi (not a rule for en)
      no-lead (the legal/statute genre does not check it)
      no-mixed-desumasu (not a rule for en)
      no-nakaguro-parallel (not a rule for en)
      nominalization (the legal/statute genre does not check it)
      number-style-consistency (the legal/statute genre does not check it)
      obligation-without-deadline (the legal/statute genre does not check it)
      one-sentence-paragraph-run (the legal/statute genre does not check it)
      padded-intro (the legal/statute genre does not check it)
      paragraph-length-variance (the legal/statute genre does not check it)
      paragraph-restatement (the legal/statute genre does not check it)
      parameter-table-mismatch (the legal/statute genre does not check it)
      party-order (not a rule for en)
      party-role-name (the legal/statute genre does not check it)
      preamble-length (the legal/statute genre does not check it)
      prerequisite-after-step (the legal/statute genre does not check it)
      proper-noun-density (the legal/statute genre does not check it)
      quote-unnamed-speaker (the legal/statute genre does not check it)
      quote-without-source (the legal/statute genre does not check it)
      ra-nuki (not a rule for en)
      repeated-sentence-ending (not a rule for en)
      repeated-sentence-head (the legal/statute genre does not check it)
      request-without-deadline (the legal/statute genre does not check it)
      requirement-smell (the legal/statute genre does not check it)
      return-type-mismatch (the legal/statute genre does not check it)
      risk-disclosure (the legal/statute genre does not check it)
      rule-of-three (the legal/statute genre does not check it)
      sasete-itadaku (not a rule for en)
      section-length-uniformity (the legal/statute genre does not check it)
      sentence-initial-so (the legal/statute genre does not check it)
      sentence-rhythm (the legal/statute genre does not check it)
      shell-prompt-mix (the legal/statute genre does not check it)
      step-statement-mix (the legal/statute genre does not check it)
      stock-transition (the legal/statute genre does not check it)
      stray-space (not a rule for en)
      taigen-dome-in-prose (not a rule for en)
      tari-unpaired (not a rule for en)
      teki-overuse (not a rule for en)
      title-length (the legal/statute genre does not check it)
      toki-as-condition (not a rule for en)
      topic-predicate-distance (not a rule for en)
      translationese-density (not a rule for en)
      ui-label-variant (the legal/statute genre does not check it)
      undefined-function-call (the legal/statute genre does not check it)
      undefined-term (the legal/statute genre does not check it)
      unqualified-superlative (the legal/statute genre does not check it)
      unsourced-number (the legal/statute genre does not check it)
      vague-deadline (the legal/statute genre does not check it)
      version-mismatch (the legal/statute genre does not check it)
      version-order (the legal/statute genre does not check it)
      warning-without-action (the legal/statute genre does not check it)
      weasel-word (the legal/statute genre does not check it)
      wordy-phrase (the legal/statute genre does not check it)
      yori-as-from (not a rule for en)
…

The “did not run” list below this is the same as before.