Reference: what chaff can find

This page lists everything chaff can find, one rule at a time. Each rule comes with a text it flags and what chaff actually printed for that text. Click a rule’s name to read its full page. When no rule fits a team’s requirement, read Adding a rule. The papers and standards behind the rules are listed in the Bibliography. To grade a model’s outputs with these checks, read Using chaff for AI evals.

How to read the list

MarkMeaning
on by defaultRuns with no settings at all
on by default (info)Runs with no settings, and reports as information. It never fails the run
experimentalA new rule not measured yet. Off by default. Turn it on as shown in “Turning experimental rules on” below
when listed in chaff.yamlChecks only the words or headings your team lists in chaff.yaml. With nothing listed, it says nothing
chaff testNeeds the meaning to decide. npx chaffjs test has an AI read the passage
Japanese / EnglishThe language of the documents the rule checks

The output of every example is made by running chaff again each time the site is built. The examples are run with the genre business/report, with experimental rules on, and with the rules that genre is off for by measurement on too. An example that needed other settings shows its chaff.yaml. The 1:7 at the start of a line of output means line 1, character 7 of the example.

Which rules run by default

Most rules run without --experimental. Which ones run is decided by measurement, not by hand: chaff is run over real documents people wrote (the corpus), and each rule is placed by how often it reports on them.

  • A rule that seldom reports on human documents runs as it is.
  • A rule that often reports on human documents too runs as information. You can scan past it.
  • A rule that reports on most documents of a genre is off for that genre: it describes how that kind of document is written, not a mistake. It is listed among the rules that did not run, with the reason.

To drop the information from a rule you do not want, turn it off.

npx chaffjs off ngram-repetition --why "repetition is our style"

Turning experimental rules on

Experimental rules are new rules that have not been measured on real documents yet. They are off by default until they are. To run all of them, add --experimental.

npx chaffjs --experimental docs/   also run the experimental rules

To turn on just one, name it with enable. It writes the rule under rules in chaff.yaml.

npx chaffjs enable <rule>

Rules that need more than one document, or Markdown

The rules whose names start with cross-doc- compare the files of one run, such as a term spelled one way in one file and another way in the rest. They run when chaff is given two or more files, or a folder. On one file they are listed among the rules that did not run.

The rules that read Markdown syntax (heading depth, image alt text, link targets and so on) run on Markdown documents only. On a .txt file they stop with “the document is not Markdown”.

The genres page shows which rules each genre runs.

Checks that read meaning run with chaff test

Does the conclusion say something? Does a number have a source? Is a risk disclosed? None of these can be decided without reading. chaff narrows the text down to the passages that matter, and npx chaffjs test sends only those to an AI to read. npx chaffjs test --dry-run report.md shows what would be sent, before anything is sent. Without an AI, every other check still runs.

Readability

Sentences that run too long, packed paragraphs, and other places a reader stumbles.
Shouting in capitalsall-caps-shoutingon by default (info)English
Ordinary words run together in capitals, such as "DO NOT DELETE THIS"
Example
Do not delete the log. DO NOT DELETE THIS FILE before the audit.
What chaff prints
1:24 "DO NOT DELETE THIS FILE" is written in capitals
Too much boldbold-densityon by defaultJapanese / English
So much bold text that nothing stands out any more
Example
## How to apply 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.
What chaff prints
3:1 7 bold spans in 318 characters (limit 20 per 1000)
Too many emojiemoji-densityon by default (info)Japanese / English
So many emoji that the decoration drowns the text
Example
The new feature is live 🎉 Try it today 🚀 We would love your feedback 🙏✨
What chaff prints
1:25 16 emoji per 1000 words (limit 8)
The rule measures the whole document, so this example was tried with an ordinary passage (about 200 words) after it that gives chaff nothing to report.
Heading echoedheading-echoon by default (info)Japanese / English
A first sentence that only repeats the heading above it
Example
## How to claim expenses This section explains how to claim expenses. Attach the receipt and submit it by the end of the month.
What chaff prints
3:1 The first sentence repeats the heading "How to claim expenses"
Paragraph too longmax-paragraph-lengthon by default (info)Japanese / English
A paragraph packed with so many sentences that the reader has nowhere to pause
Example
Sales this term rose by a tenth over last year, and most of the growth came from the new subscription plan that we launched in the spring. In-store sales, on the other hand, fell below last year's level for three months in a row, with weekday evenings down the most. At the store managers' meeting, several people pointed to the competitor that opened nearby and to the thin evening range as likely causes. Next term we will review the evening range and hand out subscription leaflets in store, so that both numbers go up together.
What chaff prints
1:1 This paragraph runs 4 sentences (limit 3)
chaff.yaml used for this example
rules: max-paragraph-length: strict
Sentence too longmax-sentence-lengthon by default (info)Japanese / English
A sentence so long that the reader loses the subject before the verb
Example
The new pricing, which the sales team proposed at last week's meeting, will be trialled from next month, but because we have not yet decided how to explain it to existing customers or when to change the billing system, we would like to agree on a plan this week.
What chaff prints
1:1 This sentence runs 49 words (limit 45)
Repeated phrasingngram-repetitionon by default (info)Japanese / English
The same phrase used over and over, so nothing new seems to be said
Example
We listen to our customers. In product design we listen to our customers. In our stores we listen to our customers. On the phone we listen to our customers.
What chaff prints
1:1 "We listen to our customers" appears 4 times (limit 3)
chaff.yaml used for this example
rules: ngram-repetition: strict
The rule measures the whole document, so this example was tried with an ordinary passage (about 200 words) after it that gives chaff nothing to report.
Repeated sentence openingrepeated-sentence-headon by defaultJapanese / English
Several sentences in a row that open with the same words
Example
The tool is free. The tool is ready without an account. The tool is fine on phones too. The tool is available in Japanese as well.
What chaff prints
1:1 4 sentences in a row open with "The tool is" (limit 3)
Title or heading too longtitle-lengthon by default (info)Japanese / English
A title or heading too long to take in at a glance
Example
## What every store needs to do during the move to the new inventory system in the 2025 financial year
What chaff prints
1:1 The heading "What every store needs to do during the move to the new inventory system in the 2025 financial year" runs 19 words (limit 14)
chaff.yaml used for this example
genre: blog/tech
Acronym never expandedundefined-acronymon by default (info)Japanese / English
An acronym such as "KGI" or "PMF" used without ever being spelled out
Example
Our KGI this term is to reach PMF.
What chaff prints
1:5 "KGI" is used without an expansion (2 such acronyms) 1:31 "PMF" is used without an expansion (2 such acronyms)
chaff.yaml used for this example
rules: undefined-acronym: strict
Double negativedouble-negativeon by default (info)Japanese / English
A negative negated, such as "not uncommon" or "not unlike"
Example
Delays are not uncommon in the second quarter.
What chaff prints
1:1 "not uncommon" is a double negative
A paragraph that only restates the one beforeparagraph-restatementon by default (info)Japanese / English
A paragraph opening "In other words" that mostly repeats the one before
Example
The new inventory system counts every store's stock on one screen, and a stocktake takes less time. In other words, the new inventory system counts the stock of every store on one screen, so a stocktake takes less time.
What chaff prints
3:1 This paragraph opens with "In other words" and 86% of its content words repeat the paragraph before
chaff.yaml used for this example
genre: blog/tech
Paragraphs keep opening the same wayrepeated-conjunctionon by defaultJapanese / English
Paragraph after paragraph opening with a connective such as "Also" or "Moreover"
Example
The new prices start next month. Also, the invoice format will change. Moreover, payment will be due at the end of the month. Furthermore, the old prices end in March.
What chaff prints
3:1 3 paragraphs in a row open with a conjunction (limit 2)
Too many -ly adverbsadverb-overuseon by default (info)English
Too many -ly adverbs, which usually prop up a weak verb
Example
She quickly walked to the room and quietly opened the door. He really badly needed the report and angrily asked for it.
What chaff prints
1:5 20 -ly adverbs per 1000 words (limit 15)
The rule measures the whole document, so this example was tried with an ordinary passage (about 200 words) after it that gives chaff nothing to report.
Two contrastive が in one sentenceadversative-ga-repeaton by default (info)Japanese
A Japanese sentence that turns twice on the contrastive particle が
Example
予算は足りるが、人手が足りないが、納期は守ります。
What chaff prints
1:1 一文に逆接の「が」が 2 個あります(1 個まで)
Brackets nested too deepbracket-nestingon by default (info)Japanese / English
Brackets inside brackets inside brackets in one sentence
Example
The fee is waived (for members (including student members (under 25))) on request.
What chaff prints
1:1 Brackets nested 3 deep (limit 2)
Too many clauses chained in one sentenceclause-chainon by default (info)Japanese
A Japanese sentence that chains clause after clause with て, が, ので and commas
Example
資料を調べて、内容をまとめ、課長に報告したが、返事がないので、もう一度送ってみたところ、翌日に返事が来て、修正を頼まれた。
What chaff prints
1:1 一文に節が 6 つつながっています(5 つまで)
Sentences in a row opening with a demonstrativedemonstrative-opener-runon by default (info)Japanese / English
Sentences in a row that open with a word pointing back (This, That, It)
Example
We introduced a new procedure. This was meant to cut the work. It reduced overtime. That effect should continue next month.
What chaff prints
1:32 3 sentences in a row open with a word that points back, such as "This" (limit 2)
Expletive constructionexpletive-constructionon by default (info)English
Many sentences that open with "There is" or "It is ... that"
Example
There is a meeting on Friday to review the budget. It is the finance team that will lead it.
What chaff prints
1:1 "There is ..." appears 2 times (limit 1) 1:52 "It is ..." appears 2 times (limit 1)
chaff.yaml used for this example
rules: expletive-construction: strict
Adverb better in kanahiragana-fukushion by default (info)Japanese
A Japanese adverb written in rare kanji where kana is easier to read
Example
参加者の殆どが、勿論その案に賛成しました。
What chaff prints
1:1 「殆ど」は ひらがなで書くのが読みやすいです
Long run of kanjimax-kanji-continuouson by default (info)Japanese
A long run of kanji with no kana between them, hard for readers to take apart
Example
来週、新規顧客獲得施策検討会議を開きます。
What chaff prints
1:1 「新規顧客獲得施策検討会議」は漢字が 12 字続いています(10 字まで)
Too many commas in one sentencemax-tenon by default (info)Japanese
A Japanese sentence cut by many commas (、)
Example
担当者が、会議室で、新人に、資料を、配布し、内容を、丁寧に、説明しました。
What chaff prints
1:1 一文に読点が 7 個あります(6 個まで)
Nested repeated particleno-doubled-joshion by default (info)Japanese
The same Japanese particle repeated, so what attaches to what is unclear
Example
本社の営業部の第二課の方針を確認しました。
What chaff prints
1:3 「の」が読点を挟まずに 3 回続いています(2 回まで)
Too many items joined by middle dotsno-nakaguro-parallelon by default (info)Japanese
So many items joined by middle dots (・) in one sentence that groups blur
Example
対象は営業・企画・総務・経理・人事・法務の各部と、東京・大阪・名古屋の各拠点です。
What chaff prints
1:1 この文に中黒が 7 個あります(5 個まで)
Run of one-sentence paragraphsone-sentence-paragraph-runon by default (info)Japanese / English
Paragraph after paragraph of a single sentence, so nothing is grouped
Example
The new meeting room opens next month. Book it through the facilities page. A booking can last two hours. No food or drink is allowed. Put the desks back when you leave.
What chaff prints
1:1 5 one-sentence paragraphs in a row (limit 4)
Too many proper nounsproper-noun-densityon by default (info)Japanese / English
So many product, company and personal names that a newcomer gets lost
Example
Alice Moreno and Bob Tanaka from Contoso met Carol Diaz from Fabrikam in Seattle, then flew with Dave Okafor from Northwind to Boston to see Erin Walsh at Tailspin and Frank Liu at Litware. In Chicago, Grace Kim of Proseware and Henry Park of Wingtip joined Ivan Petrov of Adatum, and Julia Rossi of Contoso brought Kevin Shah of Fabrikam. From Denver, Laura Chen of Northwind and Mark Evans of Tailspin called Nina Alvarez of Litware, Oscar Grant of Proseware and Paula Novak of Wingtip.
What chaff prints
1:1 166 proper nouns per 1000 words (limit 150)
chaff.yaml used for this example
rules: proper-noun-density: strict
The rule measures the whole document, so this example was tried with an ordinary passage (about 200 words) after it that gives chaff nothing to report.
The same sentence ending in a rowrepeated-sentence-endingon by default (info)Japanese
Japanese sentences in a row that all end the same way ("…です。…です。…です。")
Example
この機能は必要です。設定も簡単です。費用も無料です。
What chaff prints
1:1 「〜です」で終わる文が 3 文続いています(2 文まで)
Run of sentences opening with a conjunctionsentence-initial-conjunction-runon by default (info)Japanese / English
A run of sentences that open with "And", "But" or "So" (そして, しかし)
Example
We shipped the update on Monday. But the login page broke. And the fix took two days. So some customers could not sign in.
What chaff prints
1:34 3 sentences in a row open with a conjunction (limit 2)
Too many noun-ending sentencestaigen-dome-in-proseon by default (info)Japanese
Many Japanese sentences that stop on a noun and read as unfinished
Example
今年の目標は売上の回復。そのための施策は三つ。最初は店頭の品ぞろえの見直し。
What chaff prints
1:1 本文に体言止めが 3 文あります(2 文まで)
chaff.yaml used for this example
rules: taigen-dome-in-prose: strict
Topic far from its predicatetopic-predicate-distanceon by default (info)Japanese
A Japanese sentence that makes the reader wait long for its verb
Example
来週の定例会議は、新しい担当者の紹介と、先月から続いている予算の見直しと、春に予定している本社の移転の準備と、秋の採用計画の確認と、年末の懇親会の段取りについて話し合う必要があるため、二時間に延長します。
What chaff prints
1:1 「は」で出した主題から述語まで 91 字あります(80 字まで)

Wording

Emphasis that says nothing, stock phrases, and passives that never say who acted.
Clichéclicheon by default (info)Japanese / English
A worn phrase such as "at the end of the day" or "low-hanging fruit"
Example
At the end of the day, the new cache is faster.
What chaff prints
1:1 "at the end of the day" is a cliché
Cliched closingclosing-clicheon by defaultJapanese / English
A stock closing such as "Hope this helps" that leaves the reader nothing
Example
## Summary Changing one line of the settings made the build twice as fast. Hope this helps!
What chaff prints
3:65 Closes with "hope this helps"
chaff.yaml used for this example
genre: blog/tech
A spoken conjunction opening a sentencecolloquial-openeron by default (info)Japanese
A Japanese sentence opening with a spoken conjunction (なので, でも)
Example
在庫が足りません。なので、出荷は来週になります。
What chaff prints
1:10 「なので」で始まる文が 1 個あります(1 個から)
並びに or 若しくは with no inner levelconnective-hierarchyon by defaultJapanese
並びに in a sentence with no 及び, or 若しくは in one with no 又は
Example
申請書並びに添付書類を提出する。
What chaff prints
1:4 「並びに」の文に、段の組になる語がありません(一段なら「及び」)
Too many softenerscushion-phrase-densityon by default (info)Japanese / English
So many softeners ("sorry to bother", "just wanted to") that the ask gets lost
Example
Sorry to bother you, but I just wanted to check the quote. If you don't mind, reply when you get a chance.
What chaff prints
1:1 "sorry to bother" and other softeners: 16 per 1000 words (limit 5) 1:1 "just wanted to" and other softeners: 16 per 1000 words (limit 5) 1:60 "if you don't mind" and other softeners: 16 per 1000 words (limit 5) 1:60 "when you get a chance" and other softeners: 16 per 1000 words (limit 5)
The rule measures the whole document, so this example was tried with an ordinary passage (about 200 words) after it that gives chaff nothing to report.
Empty intensifierempty-intensifieron by defaultJapanese / English
Words like "extremely important" that add weight without saying what matters
Example
It is important to note that the deadline is Friday.
What chaff prints
1:1 "it is important to note that" emphasises without saying anything
Too much hedgingexcessive-hedgingon by defaultJapanese / English
Hedges piled up ("it may perhaps be possible") until nobody is saying anything
Example
It may be that the launch could perhaps slip.
What chaff prints
1:1 This sentence stacks 3 hedges ("It may be, could, perhaps")
Open list that a limit closesnado-closed-liston by defaultJapanese / English
An open list (etc., and so on) that "only" or "limited to" closes
Example
Collection covers furniture, bedding, bicycles, etc. only.
What chaff prints
1:49 "etc." leaves the list open, but "only" closes it
Nonstandard wordnonstandard-wordon by default (info)Japanese / English
A word formal writing treats as nonstandard, such as "irregardless"
Example
The team is comprised of five engineers.
What chaff prints
1:10 "is comprised of" is nonstandard in formal writing; write "comprises"
A sentence that opens with a numeralnumeral-sentence-starton by default (info)English
A sentence that opens with a numeral, such as "20 people came."
Example
The meeting ran long. 20 people stayed for the vote.
What chaff prints
1:23 The sentence opens with the numeral "20"
A duty to act with no deadline (shall pay, shall return)obligation-without-deadlineon by default (info)Japanese / English
A duty to pay, deliver, return or notify with no deadline, where others have one
Example
1. The Supplier shall deliver each report by the fifth business day of the month. 2. The Customer shall pay each invoice within thirty days of receiving it. 3. On termination, the Supplier shall return all Confidential Information to the Customer.
What chaff prints
5:39 "return" is a duty with no deadline; a time makes it one that can be met or missed
chaff.yaml used for this example
genre: legal/contract
An ordinal with the wrong endingordinal-suffix-mismatchon by defaultJapanese / English
An ordinal whose ending does not fit its number, such as "3th" or "11st"
Example
This is our 22th annual meeting.
What chaff prints
1:13 "22th" is written "22nd"
Padded openingpadded-introon by defaultJapanese / English
An opening such as "In recent years, X has gained attention" that says nothing
Example
In recent years, generative AI has gained significant attention. We tried it on our internal help desk.
What chaff prints
1:1 "in recent years" is an opening that fits any article
Potential form without rara-nukion by defaultJapanese
A Japanese potential form without ら, such as 見れる for 見られる
Example
資料は明日から見れます。
What chaff prints
1:8 「見れ」は「ら」の抜けた形です
Redundant pairredundant-expressionon by default (info)Japanese / English
Two words that say the same thing, such as "end result" or "each and every"
Example
The end result is a shorter build.
What chaff prints
1:1 "end result" says the same thing twice
A requirement that leaves its reader to deciderequirement-smellon by default (info)Japanese / English
"As far as possible", "if necessary", "etc." or "and/or" in a requirement
Example
The booking page must load as fast as possible.
What chaff prints
1:28 "as fast as possible" does not say how much is enough to meet the requirement
chaff.yaml used for this example
genre: technical/spec
Sentence opening with "So,"sentence-initial-soon by default (info)English
A sentence that opens with "So,", a spoken pause carried into writing
Example
So, the release moves to Friday.
What chaff prints
1:1 1 sentence opens with "So," (1 needed)
An uncomparable adjective given a degreeuncomparable-gradedon by default (info)Japanese / English
A degree given to a word that has none, such as "very unique"
Example
The design is very unique.
What chaff prints
1:1 "very unique" grades an adjective that has no degrees
Superlative with nothing to compareunqualified-superlativeon by defaultJapanese / English
A superlative such as "the fastest" with nothing to compare it against
Example
Our new product is the fastest on the market, with unmatched quality and unparalleled ease of use.
What chaff prints
1:1 "the fastest" has nothing to compare against (3 such claims) 1:1 "unmatched" has nothing to compare against (3 such claims) 1:1 "unparalleled" has nothing to compare against (3 such claims)
A time limit left to the reader (promptly)vague-deadlineon by default (info)Japanese / English
A deadline written as "promptly" where other deadlines are in days
Example
1. The Supplier shall deliver each report by the fifth business day of the month. 2. The Customer shall pay each invoice within thirty days of receiving it. 3. The Supplier shall notify the Customer promptly of any breach.
What chaff prints
5:43 "promptly" sets no deadline; a number of days makes it one that can be met or missed
chaff.yaml used for this example
genre: legal/contract
Too many vague wordsvague-word-densityon by default (info)Japanese / English
Too many vague words ("as appropriate", "as needed") for the length
Example
Report incidents as needed and notify the appropriate people in a timely manner. Keep adequate records and fix the cause where possible.
What chaff prints
1:1 "as needed" and other vague words: 20 per 1000 words (limit 4) 1:82 "adequate" and other vague words: 20 per 1000 words (limit 4)
The rule measures the whole document, so this example was tried with an ordinary passage (about 200 words) after it that gives chaff nothing to report.
Too many "very" + adjectivevery-adjectiveon by default (info)Japanese / English
"Very" + adjective, such as "very important", used too often
Example
The launch was very important. The team was very busy, and the plan was very good.
What chaff prints
1:16 "very important" and other "very" + adjective: 12.3 per 1000 words (limit 2) 1:45 "very busy" and other "very" + adjective: 12.3 per 1000 words (limit 2) 1:73 "very good" and other "very" + adjective: 12.3 per 1000 words (limit 2)
The rule measures the whole document, so this example was tried with an ordinary passage (about 200 words) after it that gives chaff nothing to report.
Weasel wordsweasel-wordon by default (info)Japanese / English
Phrases like "many experts say" or "studies show" that credit no one
Example
Many experts say remote work raises output.
What chaff prints
1:1 "many experts say" does not say who
Wordy phrasewordy-phraseon by default (info)Japanese / English
Phrases like "in order to" or "due to the fact that" where one word does
Example
In order to save time, we met online. Due to the fact that the room was booked, we stayed home.
What chaff prints
1:1 "in order to" can be said in fewer words 1:39 "due to the fact that" can be said in fewer words
全然 or 決して with no negationadverb-without-negationon by default (info)Japanese
A Japanese adverb that pairs with a negation (全然, 決して) used without one
Example
納期は全然大丈夫です。
What chaff prints
1:4 「全然」の後に打ち消しがありません
Passive with no actoragentless-passiveon by defaultJapanese / English
A passive sentence ("the budget was approved") that never says who did it
Example
The budget for next year was approved.
What chaff prints
1:30 This sentence is passive ("approved") but never says who did it
Service-counter keigobaito-keigoon by defaultJapanese
Japanese service-counter keigo (でよろしかったでしょうか, こちらになります)
Example
ご注文は以上でよろしかったでしょうか。
What chaff prints
1:1 「でよろしかったでしょうか」はバイト敬語と呼ばれる言い方です
A comparison with nothing to compare withcomparative-without-baselineon by default (info)Japanese / English
A comparison such as "is faster" that never says faster than what
Example
We rewrote the parser. The new engine is faster.
What chaff prints
1:42 "faster" does not say what it is compared with
Dangling participledangling-participleon by default (info)English
An opening participle followed by an empty "it" or "there" as the subject
Example
Having reviewed the logs, it is clear that the job failed twice.
What chaff prints
1:1 "Having reviewed the logs" has no one to attach to; the subject is an empty "it"
Doubled honorificdouble-keigoon by defaultJapanese
A Japanese verb with the same kind of honorific applied twice
Example
部長がおっしゃられたとおり、来週から始めます。
What chaff prints
1:1 「おっしゃられる」は敬語が二重になっています
Humble form used for someone else's actionhumble-for-otherson by defaultJapanese
A Japanese humble verb used for what the reader or others do (伺ってください)
Example
資料は受付で拝見してください。
What chaff prints
1:1 「拝見してください」は謙譲語を相手の動作に使っています
Misused Japanese idiomidiom-misuseon by defaultJapanese
A Japanese idiom in a form dictionaries list as a mistake (的を得る)
Example
課長の指摘は的を得ていました。
What chaff prints
1:1 「的を得る」は誤用とされる形です。「的を射る」と書きます
Japanese helper verbs and formal nouns in kana (公用文)kana-function-wordwith a style in chaff.yamlJapanese
Kanji where Japanese official style writes kana (〜て下さい); koyobun style only
Example
申請書を確認する事が必要です。不明な点は担当者に聞いて下さい。
What chaff prints
1:9 「事」は公用文ではかなで「こと」と書きます 1:28 「下さい」は公用文ではかなで「ください」と書きます
chaff.yaml used for this example
style: koyobun
Too many katakana loanwordskatakana-densityon by default (info)Japanese
A Japanese document with more katakana loanwords than human-written articles
Example
今回のアジェンダは、プロジェクトのスコープとスケジュールのレビューです。エビデンスをベースにコンセンサスを取り、ネクストアクションをアサインします。 クライアントのニーズをヒアリングし、ソリューションのコンセプトをブラッシュアップします。リソースのアロケーションはマネージャーがジャッジします。 タスクのプライオリティをアップデートし、マイルストーンのリスクをシェアします。フィードバックはチャットでリマインドします。 ステークホルダーとのミーティングでは、KPI のトレンドをダッシュボードでモニタリングします。ボトルネックはチームでブレインストーミングします。 ナレッジのドキュメントはテンプレートでフォーマットをアラインし、オンボーディングのマニュアルにマージします。 パートナーとのアライアンスでは、コストとベネフィットのバランスをシミュレーションします。 プロセスのボトルネックをアナリティクスでビジュアライズし、オペレーションのコンプライアンスをチェックします。 カスタマーサクセスのメンバーは、ユーザーのインサイトをインタビューでキャッチアップします。 セールスのパイプラインは、ウィークリーのレポートでマネジメントにエスカレーションします。
What chaff prints
1:1 カタカナ語が 1000 字あたり 135 語あります(55 語まで)。多いのは「ボトルネック、アジェンダ、プロジェクト」です
Verbs hidden in nounsnominalizationon by default (info)Japanese / English
Verbs hidden in nouns ("make a decision", "conduct an analysis"), used too often
Example
We will conduct an analysis of the results and make a decision next week.
What chaff prints
1:9 "conduct an analysis" can be "analyze" (8 hidden verbs per 1000 words, limit 2) 1:48 "make a decision" can be "decide" (8 hidden verbs per 1000 words, limit 2)
The rule measures the whole document, so this example was tried with an ordinary passage (about 200 words) after it that gives chaff nothing to report.
Request with no deadline or ownerrequest-without-deadlineon by default (info)Japanese / English
A request ("Please send …") with no deadline and no one named to do it
Example
Please review the attached quote. I have no other questions.
What chaff prints
1:1 This request says neither who should do it nor by when
Overused humble formsasete-itadakuon by default (info)Japanese
The Japanese humble form させていただく repeated until it hides who decides what
Example
本日は資料を配布させていただきます。続いて内容を説明させていただきます。そのあと質問に回答させていただきます。最後に日程を確認させていただきます。
What chaff prints
1:1 「させていただく」が文書内に 4 回あります(3 回まで) 1:19 「させていただく」が文書内に 4 回あります(3 回まで) 1:37 「させていただく」が文書内に 4 回あります(3 回まで) 1:56 「させていただく」が文書内に 4 回あります(3 回まで)
A single 〜たり with no partnertari-unpairedon by default (info)Japanese
A Japanese 〜たり used once and followed by another clause, so its pair is missing
Example
休日は本を読んだり、映画を見ます。
What chaff prints
1:8 「だり」が一つだけで、対になる「〜たり」がありません
Too many 〜的 words in one sentenceteki-overuseon by default (info)Japanese
A Japanese sentence stacking several 〜的 words (効果的, 具体的)
Example
効果的かつ効率的な施策を、積極的に展開します。
What chaff prints
1:1 一文に「〜的」が 3 個あります(2 個まで)
時 written for a condition (法令用語の「とき」)toki-as-conditionon by default (info)Japanese
時 written for a condition (受けた時は) where legal Japanese writes とき
Example
第5条 乙は、許可の取消しを受けた時は、直ちに甲に通知しなければならない。
What chaff prints
1:18 条件を言うなら「時」は「とき」と書きます
chaff.yaml used for this example
genre: legal/contract
Warning that gives no actionwarning-without-actionon by default (info)Japanese / English
A Warning that names a risk but not what the reader should do
Example
# Restoring a backup Warning: the restore replaces the current database.
What chaff prints
3:1 This warning names a risk but not what the reader should do
chaff.yaml used for this example
genre: docs/manual
より used for "from"yori-as-fromon by default (info)Japanese
より written for a starting point (4月1日より) where official style writes から
Example
新しい窓口は4月1日より受付を開始します。
What chaff prints
1:11 起点の「より」は「から」と書けます
Empty conclusionempty-conclusionchaff testJapanese / English
A conclusion that only repeats the body and leaves nothing (read by an AI)
Example
## Conclusion This article described how to make the build faster. A fast build is important.
What chaff prints
No machine decides this one. npx chaffjs test has an AI read the passage.

Slips

Words and spaces left over from an edit.
Weekday or month in lower casecalendar-name-caseon by defaultEnglish
A weekday or month written in lower case, as in "on monday"
Example
The review is on monday, and the release follows in june.
What chaff prints
1:18 Write "monday" as "Monday" 1:53 Write "june" as "June"
Doubled punctuationdoubled-punctuationon by defaultJapanese / English
Two punctuation marks side by side, as ",," or ".."
Example
We will send the file today,, as agreed.
What chaff prints
1:28 Punctuation is doubled: ",,"
Half-width katakanahankaku-kanaon by defaultJapanese
Half-width katakana such as "アイウ", and half-width Japanese punctuation
Example
申込書はメールで送ってください。
What chaff prints
1:5 半角の片仮名「メール」があります(全角は「メール」)
Hyphen used as a dashhyphen-as-dashon by default (info)English
A spaced hyphen or a double hyphen standing in for a dash
Example
The release is late - very late.
What chaff prints
1:20 "-" stands in for a dash
A Latin letter left by the input methodime-residueon by defaultJapanese
A stray Latin letter left inside a Japanese word by the input method
Example
この資料はとてもおもしrおいです。
What chaff prints
1:12 日本語の語の中に英字「r」が一字だけあります(変換し損ねた跡)
Invisible characterinvisible-characteron by defaultJapanese / English
Characters that do not show on screen, such as a zero-width space
Example
Send the form to the​ office.
What chaff prints
1:21 1 zero-width character (U+200B): search and copy break the word here
e.g. or i.e. missing a periodlatin-abbreviation-formon by default (info)English
"e.g" or "eg." for "e.g.", and the same for "i.e."
Example
Bring a document, e.g a passport.
What chaff prints
1:19 "e.g" has some of its periods but not all
Look-alike characterlookalike-characteron by defaultJapanese / English
A character that looks like an ordinary one but is a different one
Example
Send the form to the café office.
What chaff prints
1:25 "é" is a letter and a separate mark (U+0065 U+0301), not the single letter "é"
No space after a commamissing-space-after-commaon by defaultEnglish
A comma between two words with no space after it, as in "address,and"
Example
Send the form to the office address,and keep a copy.
What chaff prints
1:36 No space after the comma in "address,and"
Space before punctuationspace-before-punctuationon by defaultEnglish
A space before a period, comma or other mark, as in "word ."
Example
The form is ready , and the office has a copy .
What chaff prints
1:18 A space before "," 1:46 A space before "."
Unbalanced bracketunbalanced-bracketon by default (info)Japanese / English
A bracket or quotation mark with no partner, such as a "(" that is never closed
Example
The plan (see below is ready.
What chaff prints
1:10 "(" is never closed
Text runs on after a URLurl-run-onon by defaultJapanese / English
A URL followed straight away by text that the link swallows
Example
See https://example.com/guide—it has the details.
What chaff prints
1:5 The URL "https://example.com/guide" is followed by "—" with no space; the link runs on into it
"a" or "an" against the next soundarticle-soundon by default (info)English
"a" or "an" that does not fit the next sound, as in "a apple" or "an user"
Example
We waited a hour for an user to reply.
What chaff prints
1:11 "a hour" takes "an" before that sound 1:22 "an user" takes "a" before that sound
Chat citation residuechat-citation-residueon by defaultJapanese / English
Marks a pasted chat answer leaves behind, such as "?utm_source=chatgpt.com"
Example
The steps follow [the official guide](https://example.com/setup?utm_source=chatgpt.com).
What chaff prints
1:65 "utm_source=chatgpt.com" is left over from a chat answer
"And so on" said twicedoubled-nadoon by defaultJapanese / English
"And etc." or など with 等: two words for "and so on" written together
Example
Bring pens, paper and etc. to the workshop.
What chaff prints
1:1 "and etc." says "and so on" twice
A sound-alike typed for another word, such as "it's own" or "their are"
Example
The team kept it's own schedule. Their are two reviews left.
What chaff prints
1:1 "it's own" has one homophone typed for another 1:34 "their are" has one homophone typed for another
Common misspellingknown-misspellingon by defaultJapanese / English
A common misspelling, such as "definately" or "seperate"
Example
The two reports are seperate documents.
What chaff prints
1:21 "seperate" is a misspelling of "separate"
Wrong kanji conversionmisconversionon by defaultJapanese
A wrong Japanese sound-alike picked by the input method (以外と for 意外と)
Example
設定は以外と簡単でした。
What chaff prints
1:4 「以外」は「意外」の変換の誤りです
Unfilled placeholderunfilled-placeholderon by defaultJapanese / English
A template blank left unfilled, such as "[Your Name]" or "TODO: …"
Example
We can meet on [Insert Date] to go through the quote.
What chaff prints
1:16 "[Insert Date]" was never filled in
Word not in the dictionaryunknown-wordon by default (info)English
An English word not in the dictionary but one letter from one ("attched")
Example
The report is attched to this email.
What chaff prints
1:15 "attched" is not in the dictionary; did you mean "attached"?
Words that do not agreeagreement-slipon by defaultEnglish
Words that no longer agree after an edit, as in "these new version"
Example
These new version will ship in May.
What chaff prints
1:1 "These new version" mixes singular and plural
Word written twicedoubled-wordon by defaultJapanese / English
The same word written twice in a row, as in "the the"
Example
We will send the the file tomorrow.
What chaff prints
1:18 "the the" doubles a word; one of the two is left over
One kanji off in a long compoundkanji-compound-slipon by defaultJapanese
A long kanji compound written once with one kanji changed
Example
就職氷河期世代の方を対象に、選考を行います。就職氷河期世代の方の応募をお待ちしています。就職氷河期世代の採用は三年間続けます。就職永河期世代の方の説明会も開きます。
What chaff prints
1:64 「就職永河期世代」と書いています(この文書は「就職氷河期世代」を 3 回書いています)
"Less" with a countable pluralless-for-feweron by default (info)English
"Less" before a countable plural, as in "less errors" for "fewer errors"
Example
The new parser reports less errors on long files.
What chaff prints
1:24 "less errors" counts things; write "fewer errors"
Stray space inside a phrasestray-spaceon by default (info)Japanese
A stray space inside a Japanese phrase, usually left over from retyping
Example
資料を確認しました。担当者が払いました。会議で決めました。見積もりを 送りました。
What chaff prints
1:35 助詞「を」と「送り」のあいだに空白があります(この文書は文節のあいだをふつう詰めて書く。4 箇所のうち 1 箇所が空いている)

Consistency

Two ways of writing that are both right, mixed in one document. chaff does not pick a side; it points at whichever the document uses less.
Full-width and half-width brackets mixedbracket-width-consistencyon by default (info)Japanese
Full-width and half-width brackets mixed in one Japanese document
Example
会議(定例)は月曜です。報告(月次)は金曜です。資料(最新版)を配ります。
What chaff prints
1:27 括弧を「(」と書いています(この文書はふつう「(」。6 箇所のうち 2 箇所が違う) 1:31 括弧を「)」と書いています(この文書はふつう「)」。6 箇所のうち 2 箇所が違う)
Code blocks with and without a languagecode-fence-language-mixon by default (info)Japanese / English
A code block without a language among blocks that name theirs
Example
# Usage Install it. ```bash npm install chaffjs ``` Write the settings. ```yaml genre: technical/readme ``` Check a file. ``` npx chaffjs README.md ```
What chaff prints
17:1 This code block names no language, unlike the others (2 blocks name one)
chaff.yaml used for this example
genre: docs/manual
Dates written two waysdate-format-consistencyon by default (info)Japanese / English
Dates written two ways in one document, as "2026-10-02" and "October 2, 2026"
Example
Registration opens on October 2, 2026 and closes on October 9, 2026. Results are sent on 10/16/2026.
What chaff prints
1:90 The date "10/16/2026" is written differently from 2 other dates in the document (such as "October 2, 2026")
Full-width and half-width ! and ? mixedexclamation-width-consistencyon by default (info)Japanese
Full-width !? and half-width !? mixed in one Japanese document
Example
本当ですか? 来週ですか? 今日ですか?
What chaff prints
1:20 「?」と書いています(この文書はふつう「?」。3 箇所のうち 1 箇所が違う)
Heading end punctuation mixedheading-end-punctuation-mixon by default (info)Japanese / English
Headings that end with a colon or full stop mixed with headings that do not
Example
# Working guide ## Preparation Gather the tools. ## Steps Work through them in order. ## Checks: Look at the result. ## Cleanup Put everything back.
What chaff prints
11:1 The heading "Checks:" ends with ":", while 3 other headings end bare ("Preparation")
List bullets mixedlist-marker-mixon by default (info)Japanese / English
Bullets ("-", "*", "+", "・") mixed in one list or one document
Example
Bring the following. - A pen - Your badge * Lunch
What chaff prints
5:1 The bullet changes from "-" to "*"; Markdown starts a new list here
Straight and curly quotes mixedquote-style-consistencyon by default (info)English
Straight quotes (" ') and curly quotes (“ ” ’) mixed in one document
Example
The "draft" is ready. The "final" is due. The “review” is next.
What chaff prints
1:47 The quote mark “ here, where the document usually writes " (2 of 6) 1:54 The quote mark ” here, where the document usually writes " (2 of 6)
One and two spaces between sentences mixedsentence-spacing-consistencyon by default (info)English
One space between sentences in some places and two in others
Example
We met. We talked. We agreed. We left.
What chaff prints
1:30 2 spaces after this sentence, where the document usually leaves 1 (1 of 3)
Shell commands with and without a promptshell-prompt-mixon by default (info)Japanese / English
Shell commands written with a "$" prompt in some places and without in others
Example
# Usage ```bash npm install chaffjs ``` ```bash npx chaffjs init ``` ```bash $ npx chaffjs README.md ```
What chaff prints
11:1 This block writes its commands with a prompt ($) differently from the other 2 blocks
chaff.yaml used for this example
genre: docs/manual
Amounts of one size written two waysamount-scale-consistencyon by default (info)Japanese / English
Amounts written with and without a scale word ("$1.5 million", "$2,500,000")
Example
The total is $4 million: $1.5 million for design and $2,500,000 for building.
What chaff prints
1:54 "$2,500,000" here, where the document writes amounts of this size like "$4 million"
Contraction use is inconsistentcontraction-consistencyon by default (info)English
The same word written both contracted ("don't") and in full ("do not")
Example
We don't store your password. We don't read your messages. We don't share your data. We do not sell your address.
What chaff prints
1:86 "do not" is written "don't" elsewhere in the document
A currency written two wayscurrency-notation-consistencyon by default (info)Japanese / English
One currency written two ways in one document, such as "$20" and "USD 20"
Example
The base fee is $300, the add-on is $50 and shipping is $20. The discount is USD 10.
What chaff prints
1:78 "USD 10" here, where the document usually writes this currency like "$300" (1 of 4)
Ellipses written two waysellipsis-consistencyon by default (info)Japanese / English
An ellipsis written two ways in one document, such as "..." and "…"
Example
Loading… Saving… Please wait...
What chaff prints
1:29 The ellipsis "..." here, where the document usually writes "…" (1 of 3)
List items in mixed formslist-item-form-mixon by default (info)Japanese / English
One list mixing phrases with sentences, or verb-first items with noun-first ones
Example
Before you start: - Install the command-line tool - Create an account on the website - The configuration file in your home folder
What chaff prints
5:3 "The configuration file in your home folder" opens with a noun phrase; the other items in this list open with a verb (1 of 3)
chaff.yaml used for this example
genre: blog/tech
A paragraph ending without 。missing-final-periodon by default (info)Japanese
A paragraph ending without 。 in a document whose other paragraphs end with it
Example
申請は市役所の窓口で受け付けます。 受付の時間は平日の午前九時から午後五時までです。 提出した書類は二週間ほどで審査が終わります。 審査の結果は郵送でお知らせしました
What chaff prints
7:17 この段落は「。」で終わっていません(この文書の段落はふつう「。」で終わります。4 段落のうち 1 段落)
Numbers written two waysnumber-style-consistencyon by default (info)Japanese / English
Numbers written two ways in one document, such as 1,000 and 1000
Example
We fixed three bugs, closed four issues and merged two pull requests. The release also adds 5 tests.
What chaff prints
1:93 "5" here, where the document usually writes numbers below ten like "three" (1 of 3)
chaff.yaml used for this example
genre: blog/tech
The document names itself or its reader two waysperson-consistencyon by default (info)Japanese / English
One document calling itself or its reader two ways ("you" and "one")
Example
You can book a slot online. Your booking shows on the next page. If you miss it, you can book again. One can also call the desk.
What chaff prints
1:102 "One can" here, where the document usually says "you" (1 of 5)
Ranges written with two marksrange-notation-consistencyon by default (info)Japanese / English
Ranges written with two marks in one document, such as "10–20" and "10-20"
Example
Groups of 10–20 meet for 30–40 minutes, at 5–8 dollars each. Children aged 6-12 are welcome.
What chaff prints
1:76 The range "6-12" here, where the document usually writes ranges like "10–20" (1 of 4)
One table header written two waystable-header-varianton by default (info)Japanese / English
The same column header written two ways across tables (Owner and Owners)
Example
| Task | Owner | | --- | --- | | Order | Kim | | Task | Owners | | --- | --- | | Check | Lee |
What chaff prints
5:10 The table header "Owners" here, where the document's other tables write "Owner" (1 of 2)
chaff.yaml used for this example
genre: business/report
Units spaced two waysunit-spacing-consistencyon by default (info)Japanese / English
A number and its unit spaced in some places and not others (5 GB, 5GB)
Example
Storage is 5 GB, transfer is 10 GB and the cap is 20GB.
What chaff prints
1:51 "20GB" here, where the document usually writes this unit like "5 GB" (1 of 3)
Abbreviation expanded two waysacronym-expansion-conflicton by defaultJapanese / English
The same abbreviation spelled out as two different names in one document
Example
We review the Service Level Agreement (SLA) every month. After an outage, refunds follow the Support Level Agreement (SLA).
What chaff prints
1:118 "SLA" is expanded as "Support Level Agreement" here and as "Service Level Agreement" on line 1
A bare URL among worded linksbare-url-mixon by default (info)Japanese / English
A URL written bare in a document whose other links are words
Example
Setup is in [the setup guide](https://example.com/setup), and the options are in [the settings list](https://example.com/settings). Prices are on [the pricing page](https://example.com/pricing). Send questions through https://example.com/contact today.
What chaff prints
3:87 The URL "https://example.com/contact" is written bare (3 worded links in this document)
Citations written in more than one stylecitation-style-mixon by default (info)Japanese / English
A paper that cites as [1] in one place and as (Smith, 2020) in another
Example
# Sleep and memory Sleep helps memories settle [1]. A short nap helps too [2]. Sleeping after study in the evening improves recall the next morning (Young, 2020). ## References - [1] Smith, A. Sleep. 2019. - [2] Jones, B. Naps. 2021. - [3] Young, C. Evening study. 2020.
What chaff prints
3:130 The citation "(Young, 2020)" is written differently from the paper's other citations ("[1]" and others, 2 in all)
chaff.yaml used for this example
genre: academic/paper
A word spelled differently in different filescross-doc-term-varianton by default (info)Japanese / English
The same word spelled one way in some files and another way in others
Example
# Guide Reply to the e-mail by Friday.
What chaff prints
3:14 "e-mail" here, but "email" in 2 other files checked with it (as in a.md)
The file checked together with it (a.md). The flagged and the fixed text are each compared with it
# Steps Send an email to the team.
A long name used again after its short name was defineddefined-name-repeatedon by default (info)Japanese / English
A party given a short name ("the Supplier") and later written out in full
Example
# Services Agreement This agreement is between Harbour Works Ltd (the "Supplier") and North Trading Inc (the "Customer"). 1. The Customer pays Harbour Works Ltd within thirty days of each invoice.
What chaff prints
5:22 "Harbour Works Ltd" was given the short name "Supplier" on line 3
chaff.yaml used for this example
genre: legal/contract
A defined term used in another formdefined-term-formon by default (info)Japanese / English
A defined term later written in another form: quoted, lower case, or lengthened
Example
# Terms 1. We provide a room booking service (the "Services"). 2. You may use the Services for business only. The Services are provided as is. 3. You must not resell the services.
What chaff prints
7:28 "Services" is defined with a capital on line 3, but written in lower case here
chaff.yaml used for this example
genre: legal/contract
Full-width and half-width letters and digits are mixedfullwidth-alnum-consistencyon by default (info)Japanese
Letters and digits both full-width (ABC123) and half-width (ABC123)
Example
申込は2024年4月10日までです。説明会は2024年4月3日と2024年4月5日に開きます。
What chaff prints
1:33 全角の「2024」と書いています(この文書はふつう半角の「2024」。4 箇所のうち 1 箇所が違う)
The final ー of katakana words is inconsistentkatakana-long-vowelon by defaultJapanese
A katakana word written both with and without its final ー (コンピューター, コンピュータ)
Example
新しいコンピューターを買いました。古いコンピュータは来月捨てます。
What chaff prints
1:20 「コンピュータ」と「コンピューター」が混ざっています(この語は 2 回のうち 1 回が「コンピュータ」)
Japanese commas and periods are mixedkutoten-consistencyon by defaultJapanese
Japanese commas or periods written two ways (、 and ,, 。 and .)
Example
申込書は、窓口で受け付けます。書類は,担当者が確認します。結果は、翌日に知らせます。
What chaff prints
1:19 読点を「,」と書いています(この文書はふつう「、」。3 箇所のうち 1 箇所が違う)
Spacing around Latin text is inconsistentlatin-spacingon by default (info)Japanese
A space between Japanese and Latin letters in some places and not others
Example
表は Excel で作り、Word に貼ります。図は PowerPoint で描きます。最後にPDFにします。
What chaff prints
1:48 日本語と英字のあいだを詰めています(この文書はふつう空ける。7 箇所のうち 2 箇所が違う) 1:51 日本語と英字のあいだを詰めています(この文書はふつう空ける。7 箇所のうち 2 箇所が違う)
One name written two waysname-varianton by default (info)Japanese / English
The same person, company or product name written slightly differently
Example
The code lives on GitHub. Reviews happen on GitHub, and releases are tagged on Github.
What chaff prints
1:80 "Github" is written "GitHub" elsewhere in the document (case, width or punctuation)
Mixed sentence-ending registerno-mixed-desumasuon by default (info)Japanese
A Japanese sentence whose polite or plain ending differs from the rest
Example
新しい料金は来月から始まります。請求書の形式も変わります。支払いの期限は月末です。古い料金は三月で終わる。
What chaff prints
1:42 この文だけ他と文末の調子が違います(本文の中で 1 文)
One word spelled two waysorthographic-varianton by default (info)Japanese / English
One word written two ways in one document, such as e-mail and email
Example
Send the form by email. We answer every email within a day. Attach the receipt to the e-mail.
What chaff prints
1:87 "e-mail" here, where the document usually writes "email" (1 of 3)
A name outside the announced listoutside-announced-liston by defaultJapanese / English
A platform or language named later that the list given earlier left out
Example
The app is supported on Windows and macOS. Setup takes five minutes. It is also supported on Linux.
What chaff prints
1:94 "Linux" is not in the list given on line 1 (Windows, macOS)
Oxford comma use is inconsistentoxford-comma-consistencyon by default (info)English
Lists that put a comma before the final "and" in some places and not in others
Example
We sell apples, pears, and plums. We ship to homes, offices, and schools. We accept cash, cards and vouchers.
What chaff prints
1:75 This list punctuates differently from the rest (1 in this document)
乙及び甲 in a contract that otherwise writes 甲及び乙
Example
# 業務委託契約書 株式会社みなと商会(以下「甲」という。)と株式会社しおさい技研(以下「乙」という。)は、次のとおり契約を結ぶ。 第1条 甲又は乙は、相手方が本契約に違反したときは、本契約を解除することができる。 第2条 本契約に定めのない事項は、乙及び甲が協議して定める。 第3条 本書2通を作成し、甲乙記名押印の上、各1通を保有する。
What chaff prints
7:18 「乙及び甲」は、この文書がほかの所で書く順(「甲又は乙」)と逆です
chaff.yaml used for this example
genre: legal/contract
A party named by its role instead of the name the contract gave itparty-role-nameon by default (info)Japanese / English
A party given a short name ("the Supplier") and later called something else
Example
# Services Agreement This agreement is between Harbour Works Ltd (the "Supplier") and North Trading Inc (the "Customer"). 1. The Customer pays the Vendor within thirty days of each invoice.
What chaff prints
5:26 "Vendor" is not a name this contract gave a party (Supplier, Customer)
chaff.yaml used for this example
genre: legal/contract
British and American spellings are mixedspelling-consistencyon by default (info)English
British and American spellings (colour and color) mixed in one document
Example
The colour of the logo is blue. The colour of the button is green. The color of the link is red.
What chaff prints
1:72 "color" here, where the document usually spells it "colour" (1 of 3)
A step written as a statement among instructionsstep-statement-mixon by default (info)English
Numbered steps that mix statements (The tool asks) with orders (Run it)
Example
# Install 1. Open the terminal on your computer. 2. Run the installer from the downloads folder. 3. The installer asks for your password. 4. Restart the computer when it finishes.
What chaff prints
5:4 This step is a statement that opens with its subject, unlike the other 3 instructions
chaff.yaml used for this example
genre: docs/manual
Heading capitalisation is inconsistenttitle-case-consistencyon by default (info)English
Headings that mix Title Case and sentence case
Example
# User guide ## Getting started Install the app. ## Changing your settings Open the menu. ## Sharing Files With Your Team Press share.
What chaff prints
11:32 This heading's capitalisation differs from the rest (1 in this document)
Screen label written two waysui-label-varianton by default (info)Japanese / English
A screen label written two ways that differ only in case, spacing or a particle
Example
# Restore Click **Start Restore**. If nothing happens, click **Start Restore** again. If it fails, select the previous backup and click **Start restore**.
What chaff prints
5:53 "Start restore" is written as "Start Restore" elsewhere
chaff.yaml used for this example
genre: docs/manual
A term written like a defined term but defined nowhereundefined-termon by default (info)Japanese / English
A term written like a defined one (its Affiliates) that is never defined
Example
# Services Agreement This Services Agreement (this "Agreement") is made between Harbour Works Ltd (the "Supplier") and Northwind Retail Inc. (the "Customer"). 1. The Supplier shall provide the hosting services (the "Services") to the Customer and its Affiliates.
What chaff prints
5:93 "Affiliates" is written like a defined term, but the document defines it nowhere
chaff.yaml used for this example
genre: legal/contract
Restrictive "which" and "that" mixedwhich-that-consistencyon by default (info)English
Restrictive clauses opened with "which" in some places and "that" in others
Example
The job that builds the site runs nightly. The script that checks links runs hourly. The task that sends mail runs daily. The file which stores the keys is encrypted.
What chaff prints
1:132 This restrictive clause opens with "which"; the document mostly uses "that"

Structure

Skipped numbers, references to provisions that are not there, terms defined twice, long preambles.
Section with nothing concreteconcrete-evidence-densityon by default (info)Japanese / English
A section with no number, code or link: nothing for the reader to take away
Example
# Improvement report ## Results Our help desk got much better. Customers are pleased with it. The team feels less pressure too.
What chaff prints
3:11 Section "Results" has no number, code or link (1 of 1 section)
chaff.yaml used for this example
rules: concrete-evidence-density: strict
Date without a yeardate-without-yearon by default (info)Japanese / English
A date with no year where the document's dates span years or cross a new year
Example
# Schedule - October 15, 2025: last year's briefing - October 14, 2026: briefing - October 28: results sent
What chaff prints
5:3 "October 28" has no year, and the document's dates run from 2025 to 2026, so the year is unclear
Duplicate sibling headingduplicate-headingon by defaultJapanese / English
Two headings with the same words under the same parent heading
Example
# Setup guide ## Before you start Gather the tools. ## Before you start Wear gloves.
What chaff prints
7:1 The heading "Before you start" repeats the one on line 3 under the same parent
Empty list itemempty-list-itemon by defaultJapanese / English
A list item with only a label ("Owner:") and no value, or with nothing in it
Example
- Date: October 14, 10:00 - Room: Meeting Room 2 - Owner:
What chaff prints
3:1 Nothing after "Owner" (the other items in this list give a value)
Empty sectionempty-sectionon by defaultJapanese / English
A heading with nothing under it before the next heading at its level or higher
Example
# Setup guide ## Before you start ## Steps Fit the parts.
What chaff prints
3:1 Nothing under the heading "Before you start"
Blank table cellempty-table-cellon by defaultJapanese / English
A table cell left blank in a column every other row fills
Example
| Due | Owner | Task | | --- | --- | --- | | Oct 16 | Ito | Share the fix plan | | Oct 21 | | Send the draft manual | | Oct 28 | Takahashi | Set the briefing date |
What chaff prints
4:10 The "Owner" column is blank in this row only
Heading level skippedheading-level-skipon by default (info)Japanese / English
A heading that skips a level, such as "####" right after "##"
Example
# Setup guide ## Before you start Gather the tools. #### Safety Wear gloves.
What chaff prints
7:1 Heading "Safety" goes from level 2 to level 4 (expected 3)
Heading numbering mixedheading-numbering-mixon by default (info)Japanese / English
Sibling headings numbered in mixed ways: "1. Overview", "2. Steps", "Summary"
Example
# Report ## 1. Overview The overview. ## 2. Steps The steps. ## Summary The summary.
What chaff prints
11:1 The heading "Summary" has no number, while 2 of its siblings do ("1. Overview")
Image without alt textimage-alt-texton by defaultJapanese / English
An image with no alt text, as in "![](chart.png)"
Example
Sales from April to June. ![](sales.png)
What chaff prints
3:1 Image "![](sales.png)" has no alt text
Image alt text is a file nameimage-file-name-alton by defaultJapanese / English
An image whose alt text is a file name, as in "![IMG_1234.png](…)"
Example
Sales from April to June. ![IMG_2041.png](IMG_2041.png)
What chaff prints
3:1 The image alt text "IMG_2041.png" is a file name
The lead only restates the titleno-leadon by default (info)Japanese / English
A first paragraph under the title that only says the title again
Example
# The new inventory system This article introduces the new inventory system.
What chaff prints
3:1 The paragraph after the title "The new inventory system" adds only 2 words the title does not have
chaff.yaml used for this example
genre: blog/tech
Number without its unitnumber-without-uniton by defaultJapanese / English
A bare number where the other values in its column all have a unit
Example
# Costs | Item | Cost | | --- | --- | | Train | $600 | | Hotel | 960 | | Taxi | $100 |
What chaff prints
6:11 "960" has no unit (the other "Cost" values carry "$")
Headings that are only a label and a numbernumbered-generic-headingon by default (info)Japanese / English
Headings such as "Benefit 1" and "Tip 2" that are only a label and a number
Example
# The new room booking system ## Benefit 1 You can see free rooms at once. ## Benefit 2 You can cancel a booking in one step.
What chaff prints
3:1 The heading "Benefit 1" is only a label and a number and says nothing about the section (2 such headings) 7:1 The heading "Benefit 2" is only a label and a number and says nothing about the section (2 such headings)
Too long before the pointpreamble-lengthon by default (info)Japanese / English
Too many paragraphs before the first heading, which delays the point
Example
# Store plan for next year Over the years we have opened most of our stores near stations. In the last ten years the number of stores has doubled. Suburban stores, however, have struggled to grow. ## Decision Next year we will close two suburban stores and open one near a station.
What chaff prints
3:1 3 paragraphs before the first heading (limit 2)
Table row with more cells than the headertable-row-overflowon by defaultJapanese / English
A table row with more cells than the header row (the extra ones are not shown)
Example
| Item | Cost | | --- | --- | | Venue | $500 | | Food | $300 | includes reserve |
What chaff prints
4:1 This row has 3 cells; past the header's 2 columns they are not shown
Unclosed code fenceunclosed-code-fenceon by defaultJapanese / English
A code block opened with "```" and never closed
Example
Install it first. ```sh npm install ## Check Make sure it runs.
What chaff prints
3:1 The code block opened with "```sh" is never closed
Unrendered emphasis marksunrendered-emphasison by defaultJapanese / English
"**" or "__" that Markdown cannot pair and shows as written
Example
The deadline is **Friday. Do not be late.
What chaff prints
1:17 "**" is not turned into bold and shows as written
Email without a greeting or a closingemail-greeting-closingon by default (info)Japanese / English
A work email that opens without a greeting or ends without a closing
Example
Subject: Meeting date The meeting is on 13 October at 14:00. Best regards, Ichiro
What chaff prints
3:1 The email does not open with a greeting
chaff.yaml used for this example
genre: business/email
Subject line empty or too longemail-subject-lengthon by defaultJapanese / English
A work email whose "Subject:" line is empty or longer than the limit
Example
Subject: Following up on our conversation last week about the meeting room booking service and a visit Dear facilities team, I would like to visit your office. Best regards, Ichiro
What chaff prints
1:1 The subject has 93 characters (up to 70)
chaff.yaml used for this example
genre: business/email
A figure, table or clause pointed at by where it isvague-figure-referenceon by defaultJapanese / English
"The table below" in a document that numbers its tables and figures
Example
Sales rose, as the figure below shows. Figure 1: Sales by month
What chaff prints
1:16 Name it by its number instead of "the figure below" (this document numbers its Figures)
An absolute rule with an exception written elsewhereabsolute-exceptionon by defaultJapanese / English
A rule said to have no exception ("must always") that another part excepts
Example
## 1. Receipts Staff must always send the receipt for every expense to the finance team. ## 2. Small expenses Staff need not send the receipt to the finance team for an expense under ten dollars, except for travel.
What chaff prints
3:1 This says "always", but line 7 makes an exception ("except") for the same act
Abstract too long, or missingabstract-lengthon by default (info)Japanese / English
An abstract over the length limit, or a paper with sections that has no abstract
Example
# Naps and memory ## Introduction We studied how naps affect memory. ## Methods Forty students learned a list of words.
What chaff prints
3:1 This paper has sections but no abstract
chaff.yaml used for this example
genre: academic/paper
One term defined differently in different filescross-doc-duplicate-definitionon by defaultJapanese / English
The same term defined in other words in different files
Example
# Getting started "Member" means a person who pays the fee.
What chaff prints
3:1 "Member" is defined in other words than in 2 other files checked with it (as in a.md)
The file checked together with it (a.md). The flagged and the fixed text are each compared with it
# Glossary "Member" means a person invited to a workspace.
Reference to a missing provisiondangling-referenceon by defaultJapanese / English
A reference such as "see Article 5" to an article the document does not have
Example
# Staff rules ## Article 1 (Purpose) These rules set out how we work. ## Article 2 (Holidays) Holidays follow the rota set out in Article 5.
What chaff prints
9:37 "Article 5" (address 5) is not in this document
Term defined twiceduplicate-definitionon by defaultJapanese / English
The same term defined in two places in one document
Example
# Terms of use ## 1. Definitions "Service" means the booking system we provide. ## 2. Use "Service" means the booking website we run. Users may use the Service free of charge.
What chaff prints
9:1 "Service" is also defined on line 5
Figures and tables referred to out of order or out of placefigure-reference-orderon by default (info)Japanese / English
A figure or table referred to out of order, too late, or never
Example
# Naps and memory Figure 2 shows recall by hour. Figure 1 shows the study design. Figure 1: Study design Figure 2: Recall by hour
What chaff prints
3:32 Figure 1 is first referred to after Figure 2
chaff.yaml used for this example
genre: academic/paper
A note mark with no note, or a note nothing points tofootnote-mismatchon by defaultJapanese / English
A note mark ("[^3]") with no note, or a note nothing points to
Example
The pilot starts in May[^1] and is free[^2]. [^1]: On weekdays only.
What chaff prints
1:40 There is no note for "[^2]"
Skipped or repeated numbernumbering-gapon by defaultJapanese / English
A numbered item that skips or repeats a number, such as Article 1 then 3
Example
# Staff rules ## Article 1 (Purpose) These rules set out how we work. ## Article 3 (Working hours) Working hours are from nine to six.
What chaff prints
7:1 "Article 3" follows "Article 1" (expected number 2)
Prerequisite written after the stepsprerequisite-after-stepon by default (info)Japanese / English
"Before you begin" written after the numbered steps it should come before
Example
# Restore 1. Open the console. 2. Select the backup. 3. Click **Start Restore**. Before you begin, stop the order service.
What chaff prints
7:1 This prerequisite comes after the steps it applies to
chaff.yaml used for this example
genre: docs/manual
A required skill listed again as preferredrequired-listed-as-preferredon by defaultJapanese / English
A job posting that lists one skill both as required and as preferred
Example
# Job posting: Accounts Assistant ## Required - A degree in accounting or finance - At least three years of bookkeeping experience ## Preferred - At least three years of bookkeeping experience - Reading business documents in Japanese
What chaff prints
10:1 "At least three years of bookkeeping experience" is also listed as required (At least three years of bookkeeping experience)
A reference to a step that does not existstep-reference-missingon by defaultJapanese / English
A reference such as "see step 5" past the last step the document has
Example
1. Open the app. 2. Choose Settings. 3. Save. If it fails, start again from step 4.
What chaff prints
5:31 "step 4" is referred to, but the steps end at 3
A table-of-contents entry with no headingtoc-heading-mismatchon by defaultJapanese / English
A table of contents entry that matches no heading of the document
Example
## Contents - 1 Overview - 2 Costs - 3 Schedule ## 1 Overview An overview. ## 2 Fees The fees. ## 3 Schedule The schedule.
What chaff prints
4:3 No heading matches the contents entry "2 Costs"
A step uses something the list of what you need leaves outunlisted-item-usedon by defaultJapanese / English
A step that uses an ingredient or a tool missing from the document's own list
Example
## Ingredients - 2 eggs - A pinch of salt ## Method 1. Beat the eggs and add the salt and pepper.
What chaff prints
8:39 "pepper" is not in Ingredients
Term defined but never usedunused-definitionon by default (info)Japanese / English
A term the document defines and then never uses
Example
"Service" means the booking website we run. Users may use the website free of charge.
What chaff prints
1:1 "Service" is defined but never used
Term used before it is defineduse-before-definitionon by default (info)Japanese / English
A term defined in passing, as in (the "Seller"), that is used before that point
Example
The Seller ships within five days. This agreement is between Harbour Ltd (the "Seller") and Hill Ltd (the "Buyer").
What chaff prints
1:5 "Seller" is used here, before it is defined on line 1
No risk disclosedrisk-disclosurechaff testJapanese / English
A proposal that gives only the upside and no risk (read by an AI)
Example
Moving to the new accounting system closes the month three days sooner. It also cuts costs by 20,000 dollars a year.
What chaff prints
No machine decides this one. npx chaffjs test has an AI read the passage.

Facts that disagree

A date and its weekday, dates out of order, a total and its items: disagreements a calendar or a sum can settle.
Default value stated two waysdefault-value-mismatchon by defaultJapanese / English
A parameter's default that differs between the signature, a table and the text
Example
## wrap ```ts wrap(text: string, width = 72): string[] ``` `width` defaults to 80 characters.
What chaff prints
7:2 The default of `width` is given as 80 here, but as 72 elsewhere
chaff.yaml used for this example
genre: technical/readme
Deprecated name used in an exampledeprecated-option-usedon by defaultJapanese / English
An option the document calls deprecated, still used in one of its examples
Example
## Options The older `indent` option is deprecated; use `prefix` instead. ```js wrap(text, 40, { indent: 2 }); ```
What chaff prints
6:18 `indent` is used in an example, but the document calls it deprecated
chaff.yaml used for this example
genre: technical/readme
A heading names a command its section's code does not showheading-command-missingon by default (info)Japanese / English
A command or option named in a heading that the section's examples never use
Example
# Usage ## `--dry-run` Show what would change without changing it. ```bash npx chaffjs fix --dryrun README.md ```
What chaff prints
3:1 "--dry-run" in this heading does not appear in the section's code
chaff.yaml used for this example
genre: docs/manual
Number in words differs from its figurenumber-word-figure-mismatchon by defaultJapanese / English
A number in words with a different figure in brackets, as "six (7) months"
Example
The Buyer shall pay Fifty Thousand Dollars ($5,000) within thirty (13) days of delivery.
What chaff prints
1:21 "Fifty Thousand Dollars ($5,000)" says 50,000 in words and 5,000 in figures 1:60 "thirty (13)" says 30 in words and 13 in figures
chaff.yaml used for this example
genre: legal/contract
Parameter table that does not match the signatureparameter-table-mismatchon by defaultJapanese / English
A parameter in only one of a signature and the parameter table under it
Example
## measure ```ts measure(text: string, tabSize = 4): number ``` | Parameter | Type | Description | | --- | --- | --- | | `text` | string | The line to measure | | `tabWidth` | number | The width of one tab |
What chaff prints
4:23 `tabSize` is in only one of the signature of `measure` and its parameter table 10:4 `tabWidth` is in only one of the signature of `measure` and its parameter table
chaff.yaml used for this example
genre: technical/readme
A return type stated two waysreturn-type-mismatchon by defaultJapanese / English
A return type that the signature and the description state differently
Example
## measure ```ts measure(text: string, tabSize = 4): number ``` measure returns the width as a string such as "12".
What chaff prints
7:1 `measure` is said to return string here, but its signature returns `number`
chaff.yaml used for this example
genre: technical/readme
Example calls a function the page does not defineundefined-function-callon by defaultJapanese / English
An example calling a name the page never defines, close to one it documents
Example
## wrap Wraps text to a given width. ```js const lines = wrapText("A long sentence to wrap.", 10); ```
What chaff prints
6:15 `wrapText` is called, but this page documents `wrap`
chaff.yaml used for this example
genre: technical/readme
The version in the text is not the one in the codeversion-mismatchon by defaultJapanese / English
A version named right above a code block that the block does not use
Example
# Installation Install version 2.3.0 from npm: ```bash npm install --global tidyq@2.4.0 ```
What chaff prints
3:17 "2.3.0" is written, but the code below has 2.4.0
chaff.yaml used for this example
genre: technical/readme
A version out of order in a changelogversion-orderon by defaultJapanese / English
One version out of order in a changelog or a list of releases
Example
# Changelog ## 3.2.0 - 2026-09-14 ## 3.1.1 - 2026-07-08 ## 3.3.0 - 2026-06-02 ## 3.0.0 - 2026-03-20
What chaff prints
7:4 3.3.0 breaks the order of the versions around it (after 3.1.1)
chaff.yaml used for this example
genre: technical/readme
Attachment mentioned but not shownattachment-not-attachedon by defaultJapanese / English
An email that says something is attached but shows no attachment
Example
Subject: Quote Dear Ms Lee, I have attached the quote for the panels. Best regards, Ichiro
What chaff prints
5:1 An attachment is mentioned, but no attachment line or file name is shown
chaff.yaml used for this example
genre: business/email
A quotation given to a speaker with no namequote-unnamed-speakeron by default (info)Japanese / English
A quotation given to a speaker named only by a role ("…," said an analyst)
Example
# The new version "Few products for small businesses show all their stock on one screen," said an analyst.
What chaff prints
3:2 "Few products for small businesses show all their stock on one screen" is given to "an analyst", who is not named
chaff.yaml used for this example
genre: business/press-release
A quotation given to someone, with no sourcequote-without-sourceon by default (info)Japanese / English
A quotation given to someone ("X said …") in a paragraph that gives no source
Example
# Late projects As one engineer put it, "adding people to a late project only makes it later." Before adding people, ask whether the work can be split.
What chaff prints
3:26 "adding people to a late project only makes it later." is given to someone, but no source (a link, a footnote, a reference) is given
chaff.yaml used for this example
genre: blog/tech
An amount range whose upper end is below its lower endamount-range-reversedon by defaultJapanese / English
An amount range that ends lower than it starts, such as "$90,000–$70,000"
Example
Salary: $90,000–$70,000 a year, depending on experience.
What chaff prints
1:9 The amount range "$90,000–$70,000" ends below where it starts
A list that does not have the number of items announcedannounced-count-mismatchon by defaultJapanese / English
A list whose number of items differs from the number announced just before it
Example
Before you apply, check the following three items: - Your ID - Your bank account
What chaff prints
1:39 "three items" is announced, but the number of items in the list below is 2
Annual days off fewer than the weekly days off giveannual-holidays-mismatchon by defaultJapanese / English
Annual days off fewer than the 104 days that two days off every week give
Example
| Item | Details | | --- | --- | | Days off | Two days off every week (Saturday and Sunday) and public holidays | | Annual days off | 90 days |
What chaff prints
4:21 The annual days off (90 days) are fewer than the 104 days a year that "Two days off every week" gives
An example annual pay that is not the monthly pay and bonusannual-pay-mismatchon by defaultJapanese / English
An example annual pay that is not 12 months' pay plus the bonus months
Example
| Item | Details | | --- | --- | | Bonus | Twice a year, three months' salary in total | | Example annual pay | $75,000 (with a monthly salary of $4,800) |
What chaff prints
4:24 $75,000 is not 15 months of the monthly pay $4,800 (twelve months and a bonus of three months)
An arrival before its departurearrival-before-departureon by defaultJapanese / English
A flight or a train in an itinerary that arrives before it departs
Example
- 1:30 PM Flight AA 2177 (departs Washington 1:30 PM, arrives Boston 1:05 PM)
What chaff prints
1:70 Arrives at 1:05 PM, before it departs at 1:30 PM
A backordered quantity that is not the ordered less the deliveredbackorder-mismatchon by defaultJapanese / English
A backordered quantity that is not the ordered less the delivered on its row
Example
| Item | Ordered | Delivered | Backordered | | --- | --- | --- | --- | | Staples (box) | 50 boxes | 30 boxes | 25 boxes |
What chaff prints
3:41 The backordered quantity "25 boxes" is written, but the ordered and delivered quantities on the row give 20 boxes
A BMI the height and weight beside it do not givebmi-mismatchon by defaultJapanese / English
A BMI in a checkup that the weight divided by the height squared does not give
Example
| Item | Result | | --- | --- | | Height | 178 cm | | Weight | 74.0 kg | | BMI | 21.4 |
What chaff prints
5:9 BMI 21.4 is written, but the height and weight give 23.4
A runtime longer than the battery capacity divided by the consumptioncapacity-runtime-mismatchon by defaultJapanese / English
A runtime longer than the battery capacity divided by its consumption
Example
| Item | Specification | | --- | --- | | Battery capacity | 50 Wh | | Power consumption | 10 W | | Runtime | 8 hours |
What chaff prints
5:13 50 Wh at 10 W lasts 5 hours, but the runtime is given as 8 hours
A rate of change the two values do not givechange-rate-mismatchon by defaultJapanese / English
A rate of change the two values in one sentence or table row do not give
Example
Revenue was $1.0 million in 2025 and $1.5 million in 2026, up 20%.
What chaff prints
1:63 "20%" is written, but the two values give 50%
Citations and reference list do not matchcitation-reference-mismatchon by defaultJapanese / English
A citation with no entry in the reference list, or an entry the text never cites
Example
# Sleep and memory Sleep helps memories settle [1]. A short nap helps too [3]. ## References - [1] Smith, A. Sleep. 2019. - [2] Jones, B. Naps. 2021.
What chaff prints
3:56 The citation "[3]" names 3, which is not in the reference list 8:1 This entry of the reference list is never cited in the text
chaff.yaml used for this example
genre: academic/paper
A closing balance that is not the opening balance plus deposits less withdrawalsclosing-balance-mismatchon by defaultJapanese / English
A closing balance that is not the opening balance plus deposits less withdrawals
Example
- Opening balance: $2,418.36 - Total deposits: $2,941.80 - Total withdrawals: $3,203.60 - Closing balance: $2,165.56
What chaff prints
4:20 "$2,165.56" is written, but the opening balance plus deposits less withdrawals is $2,156.56
A connection shorter than the stated travel timeconnection-time-shorton by defaultJapanese / English
An itinerary that leaves less time for a connection than the trip it states
Example
- 7:30 AM Flight AA 2140 (departs Boston 7:30 AM, arrives Washington Reagan 9:05 AM) - 9:15 AM Meet Ms. Tanaka at Metro Center (25 minutes from the airport by Metro)
What chaff prints
2:3 Only 10 minutes from 9:05 AM to 9:15 AM, less than the stated travel time (25 minutes)
A contact written two wayscontact-varianton by defaultJapanese / English
An email or postal address written differently in one place
Example
# Contact Email: support@hibari-lab.example Questions about a change can be sent to suport@hibari-lab.example.
What chaff prints
5:41 The email address suport@hibari-lab.example may be a slip for support@hibari-lab.example
More registered than the stated capacitycount-over-capacityon by defaultJapanese / English
A stated capacity smaller than the number registered
Example
Capacity: 90 seats, first come, first served As of November 6, 95 members have registered.
What chaff prints
1:11 The capacity (90 seats) is smaller than the number stated later (95 members)
One item given different values in different filescross-doc-fact-conflicton by defaultJapanese / English
The same item (a fee, a deadline, a contact) given different values in two files
Example
# Questions Monthly fee: $15
What chaff prints
3:14 "Monthly fee" is $15 here, but $12 in 2 other files checked with it (as in a.md)
The file checked together with it (a.md). The flagged and the fixed text are each compared with it
# Pricing Monthly fee: $12
A cumulative figure lower than this period'scumulative-below-currenton by defaultJapanese / English
A year-to-date figure lower than the same row's figure for this period
Example
| Item | This period | Year to date | | --- | --- | --- | | Gross pay | $1,661.00 | $14,820.00 | | Federal income tax | $96.00 | $85.80 |
What chaff prints
4:33 The cumulative figure "$85.80" is lower than this period's "$96.00"
One amount in another currency in a column of amountscurrency-column-mixon by defaultJapanese / English
A lone amount in another currency in a column, such as ¥12,500 among dollars
Example
| Charge | Amount | | --- | --- | | Ocean freight | $640.00 | | Marine insurance | ¥12,500 | | Documentation fee | $40.00 |
What chaff prints
4:22 "Marine insurance" is written "¥12,500", in another currency than the rest of its column ("$640.00")
Reference to a missing figure or tabledangling-figure-referenceon by defaultJapanese / English
A figure or table the text refers to that the document does not have
Example
Sales rose (Figure 1) and costs fell (Figure 3). Figure 1: Sales by month Figure 2: Costs by month
What chaff prints
1:39 Figure 3 is referred to, but the document has no Figure 3
A date out of order in a scheduledate-orderon by defaultJapanese / English
One date out of order in an itinerary, a schedule or a changelog's headings
Example
- 1 April 2026: depart - 3 April 2026: site visit - 5 March 2026: meeting - 10 April 2026: return
What chaff prints
3:3 5 March 2026 breaks the order of the dates around it (after 3 April 2026)
A date outside the stated perioddate-outside-periodon by defaultJapanese / English
A dated item outside the period the document gives, such as a trip's dates
Example
Conference: May 3–5, 2026 - May 3: registration and keynote - May 4: workshops - May 7: closing session
What chaff prints
5:3 May 7 is outside the stated period "May 3–5, 2026"
A period that ends before it startsdate-range-reversedon by defaultJapanese / English
A period whose end date comes before its start date
Example
Applications are open 1 April 2026 – 31 March 2026.
What chaff prints
1:23 The period "1 April 2026 – 31 March 2026" ends before it starts
An established date after the last updatedate-stamp-orderon by defaultJapanese / English
An established date later than the last update at the foot of a policy or terms
Example
# Terms of Use These Terms are governed by the laws of Japan. Established: April 1, 2027 Last updated: July 1, 2026
What chaff prints
5:14 The established date April 1, 2027 is after the update July 1, 2026 7:15 The update July 1, 2026 is before the established date April 1, 2027
Date and weekday disagreedate-weekday-mismatchon by defaultJapanese / English
A date and its weekday that disagree, such as "Friday, 1 October 2026"
Example
The next meeting is on Friday, 1 October 2026.
What chaff prints
1:32 1 October 2026 is a Thursday, not a Friday
A registration deadline after the eventdeadline-after-eventon by defaultJapanese / English
A sign-up or RSVP deadline that falls after the event itself
Example
# Invitation Date: Friday, November 20, 2026, 2:00 PM Please register by Friday, November 27, 2026.
What chaff prints
5:28 The registration deadline November 27, 2026 is after the event on November 20, 2026
A deductible larger than the most paiddeductible-exceeds-limiton by defaultJapanese / English
A deductible or excess larger than the most paid for the same benefit
Example
The outpatient excess is $80 a visit, and the most we pay for a visit is $50.
What chaff prints
1:26 The excess of $80 is more than the most paid, $50: this benefit would never pay out
A delivered quantity larger than the ordered quantitydelivered-over-orderedon by defaultJapanese / English
A row of an order table that delivers more than was ordered
Example
| Item | Ordered | Delivered | Backordered | | --- | --- | --- | --- | | Clear folders | 250 folders | 300 folders | 0 folders |
What chaff prints
3:33 The delivered quantity "300 folders" is larger than the ordered quantity "250 folders" on the same row
A discount that the list price and the tier price do not givediscount-rate-mismatchon by defaultJapanese / English
A discount on a price list that the list price and the tier price do not give
Example
The list price is $0.080 per envelope. | Order quantity | Price per envelope | Discount | | --- | --- | --- | | 1,000 or more | $0.072 | 15% |
What chaff prints
5:28 The discount 15% is not what the list price $0.080 and the price $0.072 give (10%)
A due date before the issue datedue-before-issueon by defaultJapanese / English
A due date or other later date that falls before the date it must follow
Example
Issued: November 30, 2026 Payment due: November 25, 2026
What chaff prints
3:14 The due date November 25, 2026 is before the issue date November 30, 2026
A start plus a length of time that does not reach the stated endduration-mismatchon by defaultJapanese / English
A start date plus a length of time that does not reach the end date given
Example
The trial runs for 3 months from April 1, 2026 (until July 31, 2026).
What chaff prints
1:55 April 1, 2026 plus 3 months ends around June 30, 2026, but the end is given as July 31, 2026
A number of sessions times their length that does not make the stated totalduration-product-mismatchon by defaultJapanese / English
Sessions times the length of each that does not make the total given
Example
Class hours: 90 minutes per session, 15 sessions, 24 hours in total
What chaff prints
1:51 15 sessions of 90 minutes make 22 hours 30 minutes, but the total is given as 24 hours
A count of years that does not match its starting yearelapsed-years-mismatchon by defaultJapanese / English
A count of years or an age that does not match its starting year or birth date
Example
April 1, 2026 Jane Doe (born in 1980, aged 30) leads the team.
What chaff prints
3:30 From 1980 to 2026 is 46 years, but the text says "30"
One item given two different valuesfact-conflicton by defaultJapanese / English
The same item (a deadline, a fee) given two different values in one section
Example
Deadline: May 3, 2026 - Fee: $300 - Deadline: May 5, 2026
What chaff prints
4:13 "Deadline" is May 5, 2026 here, but May 3, 2026 earlier in the same section
An amount that is not what its label's formula givesformula-amount-mismatchon by defaultJapanese / English
An amount that is not what its label's formula ("5% of the sale price") gives
Example
| Item | Amount | | --- | --- | | Sale price | $250,000.00 | | Commission (5% of the sale price) | $12,000.00 |
What chaff prints
4:39 $12,000.00 is not "5% of the sale price" worked out on the sale price $250,000.00 ($12,500.00)
A grade-point average the course rows do not givegpa-mismatchon by defaultJapanese / English
A grade-point average that is not what the course grades and credits give
Example
| Course | Credits | Grade | | --- | --- | --- | | Food Safety | 4 | B | | Nutrition | 2 | C | | Pastry Practicum | 6 | A | Grades are A (4), B (3), C (2) and D (1). GPA: 3.52
What chaff prints
9:6 The GPA "3.52" is written, but the course grades and credits give 3.33
A date the calendar does not haveimpossible-dateon by defaultJapanese / English
A date not on the calendar ("February 30"), or a year two calendars disagree on
Example
Applications close on April 31.
What chaff prints
1:23 "April 31" is not on the calendar (that month has 30 days)
A time the clock does not haveimpossible-timeon by defaultJapanese / English
A time the clock does not have, such as "13 PM", "午後13時" or "10:75"
Example
The briefing starts at 13 PM.
What chaff prints
1:24 "13 PM" is not a time (with AM or PM, the hour runs to 12)
A total of payments that is not the payments added upinstallment-total-mismatchon by defaultJapanese / English
A total of payments that is not the number of payments times the payment
Example
- Number of payments: 24 - Monthly payment: $106.00 - Total of payments: $2,496.00
What chaff prints
2:20 The payments add up to $2,544.00 ($106.00 × 24), not the total of payments $2,496.00
An interest amount that is not the stated balance times the stated rateinterest-mismatchon by defaultJapanese / English
Interest on a statement that is not the stated balance times the stated rate
Example
Interest for the month: average balance $3,600.00 × rate 0.50% = $1.80
What chaff prints
1:66 The interest $1.80 is not the balance $3,600.00 at 0.50% ($18.00)
A minimum gap and maximum count that conflict, or a maximum unlike the table's
Example
Leave at least 8 hours between feedings, and do not give more than 4 feedings a day.
What chaff prints
1:68 4 feedings a day at least 8 hours apart take 24 hours from the first to the last, which does not fit in 24 hours
A layout that does not match the rooms listedlayout-code-mismatchon by defaultJapanese / English
A room layout such as "3 bedrooms" that does not match the rooms listed
Example
| Item | Details | | --- | --- | | Layout | 3 bedrooms, 1 bathroom | | Rooms | Living room, Bedroom 1, Bedroom 2, Bathroom |
What chaff prints
3:12 The layout "3 bedrooms" has 3 rooms, but the room list names 2
Quantity times unit price is not the line amountline-amount-mismatchon by defaultJapanese / English
A line of a quote or invoice whose quantity times price is not its amount
Example
| Item | Quantity | Unit price | Amount | | --- | --- | --- | --- | | Screens | 4 | $1,600 | $6,000 |
What chaff prints
3:26 The amount $6,000 is not quantity × unit price (4 × $1,600 = $6,400)
The meter readings' difference is not the usagemeter-usage-mismatchon by defaultJapanese / English
A utility bill whose current minus previous meter reading is not the usage
Example
Current reading: 48,650 kWh Previous reading: 47,900 kWh Electricity used: 720 kWh
What chaff prints
1:18 The readings' difference (48,650 kWh − 47,900 kWh = 750) is not the usage 720 kWh
A net amount that is not the gross amount minus the deductionsnet-amount-mismatchon by defaultJapanese / English
A net pay that is not the gross pay minus the total deductions
Example
- Gross pay: $1,661.00 - Total deductions: $264.59 - Net pay: $1,369.41
What chaff prints
3:12 "$1,369.41" is written, but the gross amount minus the deductions is $1,396.41
A net weight larger than the gross weightnet-over-grosson by defaultJapanese / English
A row of a packing list whose net weight is larger than its gross weight
Example
| Carton | Description | Net weight | Gross weight | | --- | --- | --- | --- | | No. 1 | Control unit | 68.0 kg | 65.0 kg |
What chaff prints
3:26 The net weight "68.0 kg" is larger than the gross weight "65.0 kg" on the same row
Shares of a whole that do not add up to 100%percent-sum-mismatchon by defaultJapanese / English
A breakdown whose percentages do not add up to 100%
Example
Revenue breakdown by region: - US: 60% - Europe: 30%
What chaff prints
3:7 The shares add up to 90%, not 100%
A period other than the one the title reportsperiod-label-conflicton by defaultJapanese / English
Not the title's period: Q3 in a Q2 release, tax year 2025 in a 2026 statement
Example
# Consolidated Financial Results for FY2026 Consolidated results for FY2025 are shown below.
What chaff prints
3:26 "FY2025" is not the period the title reports, "FY2026"
An amount that is not the stated number of paymentsperiod-multiple-mismatchon by defaultJapanese / English
An amount said to be 12 monthly payments that is not 12 times the monthly one
Example
| How you pay | Premium | | --- | --- | | Monthly | $24 | | Annually (12 monthly payments) | $298 |
What chaff prints
4:13 $298 is not 12 × the Monthly amount ($24), though it says 12 monthly payments
A part of a period that is longer than the periodperiod-part-exceeds-wholeon by defaultJapanese / English
A part of a period longer than the whole: 18 months within a 12-month warranty
Example
# Limited Warranty Within the 12-month warranty period, the free replacement period is 18 months.
What chaff prints
3:69 "18 months" is longer than the period it is part of, "12-month"
Phone number with two digits swappedphone-number-varianton by defaultJapanese / English
A phone number written elsewhere with two digits swapped
Example
# Notice To apply, phone: 0120-123-456 Contact, phone: 0120-123-465
What chaff prints
5:17 The phone number 0120-123-465 is 0120-123-456 with two neighbouring digits swapped
An amount per use times the uses that goes over the stated maximumproduct-exceeds-maximumon by defaultJapanese / English
An amount per use times the uses per period that is over that period's maximum
Example
Take 2 tablets at a time, up to 3 times a day. The maximum daily dose is 4 tablets.
What chaff prints
1:74 2 tablets each, 3 times a day, makes 6 tablets, more than the stated maximum of 4 tablets
A measured range whose upper end is below its lower endquantity-range-reversedon by defaultJapanese / English
A measured range that ends lower than it starts, such as "-10 to -40 °C"
Example
Operating temperature: -10 to -40 °C (no freezing)
What chaff prints
1:24 The range "-10 to -40 °C" ends below where it starts
Bands that overlap or leave a gaprange-band-mismatchon by defaultJapanese / English
Neighbouring bands that overlap or leave a gap, such as "7 to 12", "12 to 14"
Example
| Age | Dose | | --- | --- | | 1 to 6 years | 1 chew | | 8 years and over | 2 chews |
What chaff prints
4:3 The bands "1 to 6 years" and "8 years and over" leave a gap between them
A margin the two values it divides do not giveratio-mismatchon by defaultJapanese / English
A margin in a table or sentence that is not its profit divided by its sales
Example
| Item | FY2025 | FY2026 | | --- | --- | --- | | Net sales | 1,200 | 1,320 | | Operating profit | 84 | 96 | | Operating margin | 7.0% | 8.0% |
What chaff prints
5:29 Operating margin "8.0%" is written, but its two values give 7.3%
A flag that does not match the result and its reference rangereference-flag-mismatchon by defaultJapanese / English
A lab result flagged high though within its range, or normal though outside it
Example
| Test | Result | Reference range | Flag | | --- | --- | --- | --- | | HbA1c | 5.2 % | 4.0–5.6 % | H | | Vitamin D | 18 ng/mL | 30–100 ng/mL | Normal |
What chaff prints
3:31 "HbA1c" is 5.2 %, within its reference range (4.0–5.6 %), but is flagged "H" 4:41 "Vitamin D" is 18 ng/mL, outside its reference range (30–100 ng/mL), but is flagged "Normal"
The same receipt or invoice number on two rows of an itemised tablereference-number-repeatedon by defaultJapanese / English
The same receipt or invoice number written on two rows of one itemised table
Example
| Date | Receipt no. | Description | Amount | | --- | --- | --- | --- | | April 6, 2026 | K-118 | Train fare | $12.40 | | April 8, 2026 | K-119 | Stationery | $21.10 | | April 9, 2026 | K-119 | Taxi | $35.50 |
What chaff prints
5:19 "K-119" in the column "Receipt no." is already on line 4
Booking or reference number with two characters swappedreference-number-varianton by defaultJapanese / English
A booking number written once with two neighbours swapped (MN-48215, MN-48251)
Example
# Your booking Booking number: MN-48215 When you call, please give your booking number, MN-48251.
What chaff prints
5:49 The number MN-48251 is MN-48215 with two neighbouring characters swapped
A reference whose name does not match its target's headingreference-title-mismatchon by default (info)Japanese / English
A reference's title ("Section 5 (Privacy)") that differs from the heading
Example
# Terms ## 1. Scope For fees, see Section 2 (Refunds). ## 2. Pricing The fee is monthly.
What chaff prints
5:26 Section 2 is called "Refunds" here, but its heading is "Pricing"
A reference to a topic its target never mentionsreference-topic-missingon by default (info)Japanese / English
A reference that names a topic ("see Section 2 for pricing") never found there
Example
# Guide ## 1. Scope See Section 2 for refunds. ## 2. Pricing The price is monthly.
What chaff prints
5:5 "refunds" does not appear in Section 2 (Pricing)
A test result in another unit than its reference rangereference-unit-mismatchon by defaultJapanese / English
A results table row whose result and reference range are in different units
Example
| Test | Result | Reference range | | --- | --- | --- | | Creatinine | 0.82 mmol/L | 0.57–1.11 mg/dL |
What chaff prints
3:16 The result "0.82 mmol/L" for "Creatinine" is in another unit than its reference range "0.57–1.11 mg/dL"
A relative date that does not match its base daterelative-date-mismatchon by defaultJapanese / English
A date given as "two weeks later, on May 16" that is not that far away
Example
Applications close on May 1, 2026. Two weeks later, on May 16, 2026, results are sent.
What chaff prints
1:56 Two weeks later from May 1, 2026 is May 15, 2026, but the date is given as May 16, 2026
A deposit that is not the stated months of rentrent-multiple-mismatchon by defaultJapanese / English
A deposit amount that is not the stated months of rent
Example
| Item | Amount | | --- | --- | | Rent | $1,600 | | Deposit | 2 months ($3,000) |
What chaff prints
4:13 $3,000 is not 2 months of the rent ($1,600)
A forecast revision that moves the other wayrevision-direction-mismatchon by defaultJapanese / English
A forecast said to be revised up whose new figure is lower, or the reverse
Example
We are revising upward the full-year forecast. | Item | Previous forecast | Revised forecast | | --- | --- | --- | | Net sales | 5,200 | 5,000 |
What chaff prints
5:23 "revising upward" is written, but Net sales goes the other way, from 5,200 to 5,000
A running balance the row above and this row's amounts do not giverunning-balance-mismatchon by defaultJapanese / English
A running balance that is not the balance above plus or minus this row's amounts
Example
| No. | Payment | Balance after payment | | --- | --- | --- | | 1 | $104.00 | $2,392.00 | | 2 | $104.00 | $2,298.00 |
What chaff prints
4:17 The balance "$2,298.00" is written, but the row above and this row give $2,288.00
One row of a servings table that does not scale with the othersscaled-quantity-mismatchon by defaultJapanese / English
A recipe table with one row that does not scale with the servings
Example
| Ingredient | Serves 4 | Serves 8 | | --- | --- | --- | | Ground beef | 500 g | 1 kg | | Onion | 1 | 2 | | Milk | 60 ml | 120 ml | | Ketchup | 4 tablespoons | 4 tablespoons |
What chaff prints
6:29 "Ketchup" Serves 8 "4 tablespoons" does not scale like the other 3 rows (from Serves 4 "4 tablespoons", the ratio gives 8)
A serial or lot number range that ends below where it startsserial-range-reversedon by defaultJapanese / English
A serial or lot number range that ends below its start, such as "L5240 to L5210"
Example
Serial numbers: B3900 to B3100
What chaff prints
1:17 The number range "B3900 to B3100" ends below where it starts
An amount paid that is not the stated share of the totalshare-amount-mismatchon by defaultJapanese / English
An amount paid on a medical bill that is not the stated share (30%) of the total
Example
| Total charges | Patient share | Amount paid | | --- | --- | --- | | $600.00 | 30% | $108.00 |
What chaff prints
3:19 The amount $108.00 is not 30% of the total $600.00 ($180.00)
A share above 100%share-over-hundredon by defaultJapanese / English
A share of a group over 100%, such as "120% of respondents"
Example
In the survey, 120% of respondents said they were satisfied.
What chaff prints
1:16 "120%" is a share of respondents, so it cannot pass 100%
A total time that is not the sum of the steps' timesstep-time-sum-mismatchon by defaultJapanese / English
A recipe or guide whose total time is not the sum of its steps' times
Example
Total time: 30 minutes 1. Slice the onions (5 minutes). 2. Fry them over a low heat (20 minutes). 3. Add the water and simmer (15 minutes).
What chaff prints
1:13 "30 minutes" is not the sum of the times in the 3 steps (40 minutes)
A summary value that differs from the bodysummary-fact-mismatchon by defaultJapanese / English
A value in the summary (a deadline, a fee) that differs from the body
Example
# Workshop The fee is $300. ## Registration The fee is $350.
What chaff prints
3:12 The summary gives "The fee" as $300, but the body gives $350
A table that mixes scales of amounttable-unit-mixon by defaultJapanese / English
A cell in thousands in a table in millions, or a row a thousand times the others
Example
| Item | Prior year | Current year | | --- | --- | --- | | Net sales | $2,400 million | $2,640 million | | Operating profit | $168 million | $198 million | | Net profit | $110,000 thousand | $130,000 thousand |
What chaff prints
5:16 "Net profit" is written "$110,000 thousand", in another scale than the table's (million)
A tax that is not its rate of the subtotaltax-mismatchon by defaultJapanese / English
A tax line, or a price list's price with tax, that does not match the tax rate
Example
| Item | Amount | | --- | --- | | Design | $3,000 | | Build | $5,000 | | Subtotal | $8,000 | | Sales tax (10%) | $880 |
What chaff prints
6:22 The tax $880 is not 10% of the amount above it ($800)
A member's tier that their own points or nights do not reachtier-threshold-mismatchon by defaultJapanese / English
A stated tier whose member's points or nights fall outside that tier's band
Example
- Status: Platinum - Nights stayed last year: 24 nights - Gold: 20 nights or more stayed last year - Platinum: 30 nights or more stayed last year
What chaff prints
2:28 The tier "Platinum" needs "30 nights or more stayed last year", but "24 nights" falls in "Gold"
A time out of order in a day's scheduletime-orderon by defaultJapanese / English
One time out of order in an itinerary or a day's programme
Example
- 9:00 AM Tour of the plant - 12:00 PM Lunch - 11:00 AM Report meeting - 6:30 PM Dinner
What chaff prints
3:3 11:00 AM breaks the order of the times around it (after 12:00 PM)
A time range that ends before it startstime-range-reversedon by defaultJapanese / English
A time range whose end comes before its start
Example
The workshop runs from 2:00 to 1:30 pm.
What chaff prints
1:24 The time range "2:00 to 1:30 pm." ends before it starts
A total that is not the sum of its itemstotal-mismatchon by defaultJapanese / English
A total in a quote, invoice or contract that is not the sum of its items
Example
| Item | Amount | | --- | --- | | Design | $3,000 | | Build | $5,000 | | Total | $9,000 |
What chaff prints
5:12 The total $9,000 is not the sum of its items ($8,000)
One item given in two units that do not convertunit-mismatchon by defaultJapanese / English
The same item in two units that do not convert ("5 km" and "3000 m")
Example
Distance: 5 km - Start: the station - Distance: 3000 m
What chaff prints
4:13 "Distance" is 3000 m here, but 5 km earlier in the same section, and they do not convert
A variance that is not the difference of the budget and the actualvariance-mismatchon by defaultJapanese / English
A table row whose variance is not the difference of its budget and actual
Example
| Item | Budget | Actual | Variance | | --- | --- | --- | --- | | Street lighting | $480.00 | $469.20 | ($10.80) | | Emergency supplies | $400.00 | $434.50 | $43.50 | | Seniors' lunch | $600.00 | $590.00 | ($10.00) |
What chaff prints
4:44 "Emergency supplies" shows a variance of "$43.50", but its budget and actual give "$34.50"
A walking time that does not match the stated distancewalk-time-distance-mismatchon by defaultJapanese / English
A walking time that does not match the distance beside it
Example
| Access | Ashford Station, a 3-minute walk (600 m) | Walking times assume 80 m per minute along the road, rounded up to the next minute.
What chaff prints
1:31 "3-minute walk" does not match "600 m" (8 minutes at 80 m per minute)
Number without a sourceunsourced-numberchaff testJapanese / English
A number the reader has no way to check (checked by an AI)
Example
Nine in ten users are happy with this feature.
What chaff prints
No machine decides this one. npx chaffjs test has an AI read the passage.

Signs of generated text

Traits common in generated text. None of them alone says the text was generated; they mark places to reread.
Several signals of generated text togetherai-generated-compositeon by defaultJapanese / English
Many signs of generated text in one document (a place to reread, not a verdict)
Example
# Rethinking stock control In today's fast-paced world, data plays a crucial role. Let us delve into why. - Accuracy - Speed - Cost Every day we: - Count - Record - Review Common mistakes: - Missed counts - Gaps in the record - No review
What chaff prints
3:1 "ai-tell, rule-of-three, padded-intro" occur together in this document (3 signals, 2 needed)
chaff.yaml used for this example
genre: blog/tech rules: ai-generated-composite: strict
The outline is unlike human articlesai-structureon by default (info)Japanese / English
An outline that lies past human articles on several structure measures at once
Example
# Rethinking our demo ## Challenges ### Fewer people came Attendance dropped. ### The same people presented Two people gave most of the talks. ### Topics were far from work Most topics had nothing to do with our work. ## Solutions ### Pick topics from work We chose topics from the week's work. ### Keep it short We cut each slot to five minutes. ### Write it down We kept notes of every talk. ## Lessons learned - **Systems**: willpower alone does not last - **Small steps**: anyone can give a short talk
What chaff prints
3:1 3 structure measures lie past 90% of human articles (2 needed): sections of one or two paragraphs, headings split into three, list items opening with a bold label
chaff.yaml used for this example
genre: blog/tech rules: ai-structure: strict
Too many list items led by a bold labelbold-label-liston by default (info)Japanese
List items, one after another, that open with a bold label and a colon
Example
# 新しい在庫システム - **速さ**:一覧が 1 秒で出ます。 - **正確さ**:数え間違いが減ります。 - **安さ**:月の費用が下がります。 - **使いやすさ**:画面が分かりやすくなりました。 - **安全**:権限を細かく分けられます。
What chaff prints
3:1 「速さ」など、太字の札で始まる項目が 5 個あります(5 個から)
chaff.yaml used for this example
genre: blog/tech
Too many colon lead-ins to listscolon-lead-inon by default (info)Japanese
Section after section that opens with a sentence ending in a colon before a list
Example
準備は以下の通りです: - 鍵 - 地図 当日の流れは次の通りです: - 集合 - 出発
What chaff prints
1:1 コロンで箇条書きへ渡す文が 1000 字あたり 3.6 個あります(2 個まで) 6:1 コロンで箇条書きへ渡す文が 1000 字あたり 3.6 個あります(2 個まで)
The rule measures the whole document, so this example was tried with an ordinary passage (about 200 words) after it that gives chaff nothing to report.
Headings decorated with emojiemoji-headingon by default (info)Japanese / English
Headings with an emoji in them ("## 🚀 Getting started"), one after another
Example
# Counting stock ## 🚀 Getting started We count the stock in the warehouse every morning. ## 🛠️ Steps Count shelf by shelf and write it in the sheet. ## ✅ Summary When the count is done, share the sheet.
What chaff prints
3:1 Heading "🚀 Getting started" has an emoji (3 headings with one, 3 needed) 7:1 Heading "🛠️ Steps" has an emoji (3 headings with one, 3 needed) 11:1 Heading "✅ Summary" has an emoji (3 headings with one, 3 needed)
chaff.yaml used for this example
genre: blog/tech
Too many dashesno-em-dashon by default (info)Japanese / English
Too many dashes, which is also one of the better-known marks of generated text
Example
The new prices — which start next month — will show on invoices. Payment is due — as before — at the end of the month.
What chaff prints
1:16 16 dashes per 1000 words (limit 8)
The rule measures the whole document, so this example was tried with an ordinary passage (about 200 words) after it that gives chaff nothing to report.
Paragraph lengths are too uniformparagraph-length-varianceon by default (info)Japanese / English
Paragraphs all of about the same length, as if poured into a mould
Example
First, install the tool. Pick the version for your computer from the official download page. Next, open the settings. The gear icon at the top right shows everything that you can change. Then, invite your team. Enter their addresses on the invite page on the left and press send. After that, choose the rules. In the middle of the settings page, set the level of each rule you want. Then, write it down. Note which settings you changed in a place where your team can read it. Finally, check that it works. Add a sample document and look for the findings on the screen.
What chaff prints
1:1 Paragraph length varies by only 3% (want at least 30%)
chaff.yaml used for this example
genre: blog/tech
Everything comes in threesrule-of-threeon by default (info)Japanese / English
Lists that almost all have exactly three items, as if padded or trimmed to fit
Example
# Stock control Good stock control is: - Accurate - Fast - Cheap Every day we: - Count - Record - Review Common mistakes: - Missed counts - Gaps in the record - No review
What chaff prints
5:1 3 of 3 lists have exactly three items (70% allowed)
chaff.yaml used for this example
genre: blog/tech
Section lengths are too uniformsection-length-uniformityon by default (info)Japanese / English
Every section filled to the same size, which is what a template does
Example
# Introducing the new tool ## Install Pick the version for your computer from the official page. ## Set up Press the gear icon and choose your language and document type. ## Invite Enter your team's addresses on the invite page and send. ## Check Add a sample document and look for findings on the screen. ## Update When a new version comes out, install it again from the same page.
What chaff prints
1:27 Section length varies by only 6% (want at least 35%)
chaff.yaml used for this example
genre: blog/tech
Monotonous sentence rhythmsentence-rhythmon by defaultJapanese / English
Sentences that are all about the same length, so the text reads as a drone
Example
Today we look at the new tool in detail. First you open the settings page here. Then you pick the option you want to use. Next you switch the option on with a click. Finally you press save and close it. Now the first part of setup is done. Next we invite the rest of the team. The invite page sits on the left side.
What chaff prints
1:1 Sentence length varies by only 6% (want 30%)
chaff.yaml used for this example
genre: blog/tech
Phrasing common in generated textai-tellon by default (info)Japanese / English
Phrases common in generated text ("delve into", "plays a crucial role") piled up
Example
In today's fast-paced world, data plays a crucial role. Let us delve into why.
What chaff prints
1:1 "delve into, in today's fast-paced world, plays a crucial role" appear together (score 26, limit 18)
Too many sentences that announce before they sayannouncing-openeron by default (info)Japanese / English
Openers that announce a point before making it ("The key point is") piled up
Example
The key point is that settings come first. Here's the thing: logs matter too. Honestly, the manual is out of date.
What chaff prints
1:1 "The key point is" and other announcing openers start 3 sentences (3 needed) 1:44 "Here's the thing" and other announcing openers start 3 sentences (3 needed) 1:79 "Honestly," and other announcing openers start 3 sentences (3 needed)
Chat-reply residueassistant-residueon by defaultJapanese / English
Words left from a pasted chat reply, such as "I hope this helps"
Example
As of my last knowledge update, plans for a new wing were under discussion.
What chaff prints
1:1 "as of my last knowledge update" is chat-reply wording (score 10, from 10)
Too many contrast framescontrast-framingon by default (info)Japanese / English
Contrasts piled up ("It's not X, it's Y"), knocking down an X nobody said
Example
This tool is not just software, but a culture. It's not a feature. It's a promise.
What chaff prints
1:1 "not just" and other contrast frames: 8.2 per 1000 words (limit 3) 1:48 "it's not" and other contrast frames: 8.2 per 1000 words (limit 3)
The rule measures the whole document, so this example was tried with an ordinary passage (about 200 words) after it that gives chaff nothing to report.
Too many decorative figuresfigurative-densityon by default (info)Japanese / English
Figures such as "like magic" or "secret sauce" piled up instead of the mechanism
Example
The installer works like magic. Our secret sauce is a one-line incantation that magically fixes every path.
What chaff prints
1:1 "like magic" and other decorative figures: 16 per 1000 words 1:33 "magically" and other decorative figures: 16 per 1000 words 1:33 "incantation" and other decorative figures: 16 per 1000 words 1:33 "secret sauce" and other decorative figures: 16 per 1000 words
The rule measures the whole document, so this example was tried with an ordinary passage (about 200 words) after it that gives chaff nothing to report.
Too many stock transitionsstock-transitionon by default (info)Japanese / English
Too many sentences opening with "Moreover" or "Additionally"
Example
Moreover, costs go down. Additionally, the work gets faster. Furthermore, the team is happier.
What chaff prints
1:1 "Moreover" and other stock transitions open 12.4 sentences per 1000 words (limit 6) 1:26 "Additionally" and other stock transitions open 12.4 sentences per 1000 words (limit 6) 1:62 "Furthermore" and other stock transitions open 12.4 sentences per 1000 words (limit 6)
The rule measures the whole document, so this example was tried with an ordinary passage (about 200 words) after it that gives chaff nothing to report.
Too much translationesetranslationese-densityon by default (info)Japanese
Japanese that copies English syntax (を可能にする, 重要な役割を果たす, あなたは) too often
Example
この機能は、あなたが設定を共有することを可能にします。キャッシュは速度において重要な役割を果たします。あなたは設定画面からいつでも変えることができます。
What chaff prints
1:1 「を可能にする」など、翻訳調の言い回しが 1000 字あたり 5 個あります(1 個まで) 1:28 「重要な役割を果たす」など、翻訳調の言い回しが 1000 字あたり 5 個あります(1 個まで) 1:52 「あなたは」など、翻訳調の言い回しが 1000 字あたり 5 個あります(1 個まで)
The rule measures the whole document, so this example was tried with an ordinary passage (about 200 words) after it that gives chaff nothing to report.

Your team's words

Rules that check only what your team lists in chaff.yaml: spellings, jargon, required headings. With nothing listed, they say nothing.
A required heading is missingrequired-sectionswhen listed in chaff.yamlJapanese / English
A heading the team requires (such as "Risks") missing, set in chaff.yaml
Example
# Moving to the new accounting system ## Benefits The month closes three days sooner.
What chaff prints
1:1 No heading for "Risks"
chaff.yaml used for this example
required_sections: - Risks
Words that only work insideinternal-jargonwhen listed in chaff.yamlJapanese / English
Words that only work inside your team, from jargon in chaff.yaml
Example
I will ping the vendor about the quote.
What chaff prints
1:1 "ping" may only be understood inside your team (1 such word)
chaff.yaml used for this example
jargon: - ping
Not the team's spellingpreferred-termwhen listed in chaff.yamlJapanese / English
A spelling the team chose not to use ("e-mail" for "email"), from chaff.yaml
Example
Please send it by e-mail.
What chaff prints
1:19 Write "email", not "e-mail"
chaff.yaml used for this example
prefer: e-mail: email
A provision's verb form is not the one the house rule usesrequirement-modalwhen listed in chaff.yamlJapanese / English
A requirement's verb ("must", "shall") that the team's house rule does not use
Example
The supplier shall deliver the goods within 30 days.
What chaff prints
1:14 Write "must" instead of "shall"
chaff.yaml used for this example
genre: technical/spec options: requirement-modal: shall: must