density.connective-overuse
Remove repeated transitions where the connection is already clear.
Alpha defaults are editorial policy proposals; corpus precision has not been established.
Rules catalog
Forty builtin rules in nine families. This page is rendered from a data file that a Go program writes by walking the real rule catalog, and CI fails when the committed file and the engine disagree.
Read a row as a proposal. Every builtin rule is experimental: the thresholds are
initial editorial policy, and no corpus precision has been established for any of
them. Enable what your project wants to argue for, and say why in the
configuration file.
severity is presentation. gate is policy: forbid fails a run on any match,
none leaves the decision to the score. group is the correlation group, which
shares a cap across related rules, so it is not the same thing as the identifier
prefix that groups this page. weight and cap are index points.
Inspect any of these from the CLI: unswell rules list, unswell rules show <id>, and unswell rules test to execute the catalog’s own examples.
density.connective-overuse
Remove repeated transitions where the connection is already clear.
Alpha defaults are editorial policy proposals; corpus precision has not been established.
filler.announced-importance
State the fact without announcing its importance.
Alpha defaults are editorial policy proposals; corpus precision has not been established.
filler.empty-transition
Check whether these repeated opening transitions add information.
Counts nonoverlapping configured phrases in bounded prose windows; one occurrence is allowed by default.
Alpha defaults are editorial policy proposals; corpus precision has not been established. Only configured phrases are recognized; literal meanings and local exceptions require editorial review.
filler.modern-world-opening
Replace the generic opening with the document's subject.
Alpha defaults are editorial policy proposals; corpus precision has not been established.
filler.section-announcement
Replace repeated section announcements with their subject.
Counts nonoverlapping configured phrases in bounded prose windows; one occurrence is allowed by default.
Alpha defaults are editorial policy proposals; corpus precision has not been established. Only configured phrases are recognized; literal meanings and local exceptions require editorial review.
filler.stacked-hedging
Check whether each hedge expresses a distinct uncertainty; retain needed qualifications.
Counts distinct configured modal/adverb cues in one clause; commas, punctuation, conjunctions, and code end a clause.
Alpha defaults are editorial policy proposals; corpus precision has not been established. A token boundary is not a dependency parse. Multiple independent uncertainties can be justified.
filler.weak-intensifiers
Check whether these intensifiers add a measurable distinction.
Counts configured adverbs before adjectives/adverbs per 100 prose words, after the minimum word count.
Alpha defaults are editorial policy proposals; corpus precision has not been established. POS roles are heuristic. The rule does not require deleting distinctions with technical meaning.
filler.wordy-phrase
Consider a shorter phrase that preserves the condition or meaning.
Alpha defaults are editorial policy proposals; corpus precision has not been established.
format.em-dash-density
Em dashes exceed the selected local density; punctuation can be intentional.
Counts U+2014 in selected prose per 100 prose words, with mapped source ranges including encoded Markdown entities.
Alpha defaults are editorial policy proposals; corpus precision has not been established. This surface measurement does not establish a grammatical error, a need for revision, or authorship.
format.list-fragmentation
Several short lists fragment this section; check whether the grouping helps readers.
Counts complete short flat unordered lists in a bounded section window using grammar-derived list ownership.
Alpha defaults are editorial policy proposals; corpus precision has not been established. This surface measurement does not establish a grammatical error, a need for revision, or authorship. Ordered/task/nested lists, sentence items, procedure openings, identifiers, and selected reference headings are excluded.
hype.absolute-claim
Check whether this guarantee has conditions or exceptions.
Matches configured phrases in affirmative prose, excluding questions and explicit qualifications conservatively.
Alpha defaults are editorial policy proposals; corpus precision has not been established. This lexical screen does not determine truth, semantic vagueness, or whether every condition is stated.
hype.metaphor-cluster
Replace clustered stock metaphors with specific properties.
Counts nonoverlapping configured phrases in bounded prose windows; one occurrence is allowed by default.
Alpha defaults are editorial policy proposals; corpus precision has not been established. Only configured phrases are recognized; literal meanings and local exceptions require editorial review.
hype.modifier-cluster
Replace the cluster of evaluative modifiers with specific properties.
Alpha defaults are editorial policy proposals; corpus precision has not been established.
hype.vague-praise
Replace general praise with a specific property or measured result.
Matches configured phrases in affirmative prose, excluding questions and explicit qualifications conservatively.
Alpha defaults are editorial policy proposals; corpus precision has not been established. This lexical screen does not determine truth, semantic vagueness, or whether every condition is stated.
policy.banned-phrases
Remove a phrase forbidden by this editorial policy.
Alpha defaults are editorial policy proposals; corpus precision has not been established.
readability.grade-metric
The ARI formula exceeds the selected level; consider the audience and keep necessary technical terms.
Applies 4.71*characters/words + 0.5*words/sentences - 21.43 to local extracted prose words, excluding identifier-shaped tokens and counting each part of a hyphenated compound as a word.
Alpha defaults are editorial policy proposals; corpus precision has not been established. This surface measurement does not establish a grammatical error, a need for revision, or authorship. Characters are Unicode letters and digits within prose tokens. A token with an inner uppercase letter, a digit, an underscore, a period, or a slash is an identifier and is not counted. No age, comprehension, quality, or authorship is predicted.
readability.long-paragraph
Consider paragraph boundaries while keeping each condition with the statement it qualifies.
Requires both paragraph length and a configured count of long sentences; reports local descriptive measurements.
Alpha defaults are editorial policy proposals; corpus precision has not been established. This surface measurement does not establish a grammatical error, a need for revision, or authorship. Length, lexical diversity, and POS ratios are descriptive; reference material can justify them.
repetition.exact-sentence
This sentence is repeated; consider whether every occurrence is needed.
Alpha defaults are editorial policy proposals; corpus precision has not been established.
repetition.heading-echo
The first paragraph closely echoes its heading; check whether it adds information.
Compares a selected heading with its immediately following paragraph using exact set Jaccard.
Alpha defaults are editorial policy proposals; corpus precision has not been established. Lexical and POS signals do not establish repeated meaning; technical exceptions require a declared policy. Short definitions may be useful; code and intervening blocks break adjacency.
repetition.near-sentence
These sentences have high lexical overlap; check for repeated information.
Compares indexed sentence candidates with set Jaccard and a shared technical-contrast signature.
Alpha defaults are editorial policy proposals; corpus precision has not been established. Modal, condition, and state cues are retained in token order. Numeric-unit protection retains the token after a number, not a complete unit expression. Equal signatures do not establish semantic equivalence.
repetition.ngram-density
This phrase recurs in a short prose window; check whether each use is needed.
Groups repeated consecutive prose n-grams in sentence windows; longer covering phrases take precedence.
Alpha defaults are editorial policy proposals; corpus precision has not been established. Lexical and POS signals do not establish repeated meaning; technical exceptions require a declared policy. Activation counts occurrences; reported coverage uses the prose words between the first and last matching sentence.
repetition.paragraph-openers
Several paragraphs repeat the same opening formula.
Groups opening words from each paragraph's first sentence. The word minimum applies to the complete paragraph.
Alpha defaults are editorial policy proposals; corpus precision has not been established. Repeated openings do not establish duplicate meaning; technical facts may differ.
repetition.paragraph-overlap
These prose blocks have high lexical overlap; check for repeated information.
Builds connected clusters of Jaccard-qualified block pairs through an expiring inverted index.
Alpha defaults are editorial policy proposals; corpus precision has not been established. Lexical and POS signals do not establish repeated meaning; technical exceptions require a declared policy. The block window bounds each pair, not the complete cluster; not every pair in a connected cluster must qualify.
repetition.sentence-openers
Several sentences repeat the same opening; consider removing repeated setup.
Alpha defaults are editorial policy proposals; corpus precision has not been established.
repetition.summary-echo
This summary has high lexical overlap with preceding prose; check what it adds.
Compares paragraphs under explicitly configured selected summary headings with preceding nonsummary paragraphs.
Alpha defaults are editorial policy proposals; corpus precision has not been established. Lexical and POS signals do not establish repeated meaning; technical exceptions require a declared policy. Summary scope follows grammar-derived heading ancestry. Other titles require configuration; lexical overlap can be intentional.
repetition.syntax-template
Several sentences repeat a POS shape; check whether the structure serves the text.
Groups complete normalized POS shapes with at least two lexical realizations; imperative openings and lists are excluded.
Alpha defaults are editorial policy proposals; corpus precision has not been established. Lexical and POS signals do not establish repeated meaning; technical exceptions require a declared policy. POS grouping is a surface heuristic, not a dependency analysis or a claim that the facts are duplicated.
scaffold.ai-self-reference
Remove the assistant's self-reference.
Alpha defaults are editorial policy proposals; corpus precision has not been established.
scaffold.chat-preamble
Start with the subject instead of a conversational acknowledgment.
Alpha defaults are editorial policy proposals; corpus precision has not been established.
scaffold.dive-in
Start with the subject instead of announcing the explanation.
Alpha defaults are editorial policy proposals; corpus precision has not been established.
scaffold.follow-up-offer
Remove the conversational follow-up offer from this document.
Alpha defaults are editorial policy proposals; corpus precision has not been established.
syntax.long-sentence
Consider splitting this long sentence without losing its conditions.
Alpha defaults are editorial policy proposals; corpus precision has not been established.
syntax.nominalization-chain
Consider a direct verb while preserving the subject, conditions, and technical meaning.
Matches a configured weak verb, a configured common noun, and an of-complement with a common-noun head.
Alpha defaults are editorial policy proposals; corpus precision has not been established. This surface measurement does not establish a grammatical error, a need for revision, or authorship. Inflected verb forms are explicit dictionary entries. Suffixes alone never activate this rule.
syntax.not-only-density
Repeated paired contrasts make this passage formulaic.
Counts ordered not-only/not-just followed by but in bounded prose windows, allowing one matching sentence.
Alpha defaults are editorial policy proposals; corpus precision has not been established. Version 2 stops at structural/protected boundaries and requires the contrast markers in source order.
syntax.noun-stack
Review this common-noun sequence; keep established technical terms.
Counts NN modifiers followed by an NN/NNS head within a shallow NP chunk, stopping at terms, identifiers, and configured verb forms in predicate position.
Alpha defaults are editorial policy proposals; corpus precision has not been established. This surface measurement does not establish a grammatical error, a need for revision, or authorship. A shallow NP is not a dependency tree, and a noun sequence can be an appropriate domain term. Interior NNS tags cause abstention: they can be plural modifiers or misclassified finite verbs. The negative modal "cannot" breaks a noun run even when tagged NN; other tagging ambiguity remains possible. Configured verb forms are literal words; a form that is also a noun modifier shortens a genuine stack.
syntax.paired-contrast-density
Check whether repeated paired contrasts carry distinct information.
Counts adjacent 'It is not about'/'It is about' sentence pairs, including contractions, in bounded prose windows.
Alpha defaults are editorial policy proposals; corpus precision has not been established. Only the declared opening structures are recognized; no semantic equivalence is inferred.
syntax.parenthetical-load
Review the load of balanced insertions; retain conditions, qualifications, and necessary definitions.
Measures nonexempt words, pair count, and nesting of balanced parentheses and square brackets within a prose block.
Alpha defaults are editorial policy proposals; corpus precision has not been established. This surface measurement does not establish a grammatical error, a need for revision, or authorship. Unbalanced or protected-crossing frames are not matched. Depth is capped at 256 with an explicit error. An insertion below min_insertion_words, such as an issue reference or a license label, contributes to none of the three measurements, including nesting.
syntax.passive-candidate-density
Several sentences contain be-plus-participle candidates; review voice only where the meaning allows it.
Counts sentences containing a be verb, up to four adverbs, and VBN in bounded contiguous prose windows.
Alpha defaults are editorial policy proposals; corpus precision has not been established. This surface measurement does not establish a grammatical error, a need for revision, or authorship. The same POS shape can describe a state. This rule is not syntax.passive-density and does not establish grammatical voice.
syntax.rhetorical-question-density
Check repeated question-and-short-answer transitions.
Counts configured complete questions followed in the same block by a short nonquestion answer.
Alpha defaults are editorial policy proposals; corpus precision has not been established. Arbitrary questions are not classified. Numeric/code answers are excluded; disable for FAQ paths.
syntax.triad-density
Check repeated triads of evaluative modifiers against specific properties.
Counts three-item lists from the evaluative dictionary with at least two adjective tags; one triad is allowed.
Alpha defaults are editorial policy proposals; corpus precision has not been established. One noun tag is tolerated for an ambiguous modifier. This is a POS/dictionary heuristic, not a dependency parse.
syntax.whether-preface-density
Reduce repeated whether-you prefaces while preserving alternatives.
Counts whether-you-are prefaces containing 'or' before a comma within 32 tokens; one occurrence is allowed.
Alpha defaults are editorial policy proposals; corpus precision has not been established. Recognizes one opening template, not arbitrary conditional clauses.