Skip to content
unswell

Rules catalog

Every rule the engine ships, generated from the engine.

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

1 rule

density.connective-overuse

Remove repeated transitions where the connection is already clear.

Alpha defaults are editorial policy proposals; corpus precision has not been established.

version 1severity warninggate nonegroup rhetorical-patternsscope paragraphon by defaultweight 20cap 40experimental

filler

7 rules

filler.announced-importance

State the fact without announcing its importance.

Alpha defaults are editorial policy proposals; corpus precision has not been established.

version 1severity warninggate nonegroup scaffoldingscope sentenceon by defaultweight 15cap 30experimental

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.

version 1severity warninggate nonegroup scaffoldingscope documentoff by defaultweight 12cap 24experimental

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.

version 1severity warninggate nonegroup scaffoldingscope sentenceon by defaultweight 15cap 30experimental

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.

version 1severity warninggate nonegroup scaffoldingscope documentoff by defaultweight 12cap 24experimental

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.

version 1severity warninggate nonegroup inflationscope sentenceoff by defaultweight 12cap 24experimental

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.

version 1severity warninggate nonegroup inflationscope paragraphoff by defaultweight 12cap 24experimental

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.

version 1severity warninggate nonegroup scaffoldingscope sentenceon by defaultweight 15cap 30experimental

format

2 rules

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.

version 1severity warninggate nonegroup readabilityscope paragraphoff by defaultweight 0cap 0experimental

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.

version 1severity warninggate nonegroup readabilityscope sectionoff by defaultweight 0cap 0experimental

hype

4 rules

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.

version 1severity warninggate nonegroup inflationscope sentenceoff by defaultweight 0cap 0experimental

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.

version 1severity warninggate nonegroup inflationscope documentoff by defaultweight 12cap 24experimental

hype.modifier-cluster

Replace the cluster of evaluative modifiers with specific properties.

Alpha defaults are editorial policy proposals; corpus precision has not been established.

version 1severity warninggate nonegroup inflationscope sentenceon by defaultweight 24cap 48experimental

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.

version 1severity warninggate nonegroup inflationscope sentenceoff by defaultweight 12cap 24experimental

policy

1 rule

policy.banned-phrases

Remove a phrase forbidden by this editorial policy.

Alpha defaults are editorial policy proposals; corpus precision has not been established.

version 1severity errorgate forbidgroup scaffoldingscope sentenceon by defaultweight 15cap 30experimental

readability

2 rules

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.

version 2severity warninggate nonegroup readabilityscope paragraphoff by defaultweight 0cap 0experimental

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.

version 1severity warninggate nonegroup readabilityscope paragraphoff by defaultweight 8cap 16experimental

repetition

9 rules

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.

version 1severity warninggate nonegroup repetitionscope documenton by defaultweight 30cap 60experimental

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.

version 1severity warninggate nonegroup repetitionscope sectionoff by defaultweight 6cap 12experimental

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.

version 2severity warninggate nonegroup repetitionscope documenton by defaultweight 22cap 44experimental

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.

version 1severity warninggate nonegroup repetitionscope documentoff by defaultweight 12cap 24experimental

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.

version 2severity warninggate nonegroup repetitionscope documenton by defaultweight 18cap 36experimental

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.

version 1severity warninggate nonegroup repetitionscope documentoff by defaultweight 18cap 36experimental

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.

version 1severity warninggate nonegroup repetitionscope documenton by defaultweight 15cap 30experimental

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.

version 1severity warninggate nonegroup repetitionscope sectionoff by defaultweight 12cap 24experimental

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.

version 1severity warninggate nonegroup repetitionscope documentoff by defaultweight 6cap 12experimental

scaffold

4 rules

scaffold.ai-self-reference

Remove the assistant's self-reference.

Alpha defaults are editorial policy proposals; corpus precision has not been established.

version 1severity errorgate forbidgroup scaffoldingscope sentenceon by defaultweight 15cap 30experimental

scaffold.chat-preamble

Start with the subject instead of a conversational acknowledgment.

Alpha defaults are editorial policy proposals; corpus precision has not been established.

version 1severity errorgate forbidgroup scaffoldingscope sentenceon by defaultweight 15cap 30experimental

scaffold.dive-in

Start with the subject instead of announcing the explanation.

Alpha defaults are editorial policy proposals; corpus precision has not been established.

version 1severity warninggate nonegroup scaffoldingscope sentenceon by defaultweight 15cap 30experimental

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.

version 1severity warninggate nonegroup scaffoldingscope sentenceon by defaultweight 15cap 30experimental

syntax

10 rules

syntax.long-sentence

Consider splitting this long sentence without losing its conditions.

Alpha defaults are editorial policy proposals; corpus precision has not been established.

version 1severity warninggate nonegroup syntax-loadscope sentenceon by defaultweight 30cap 60experimental

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.

version 1severity warninggate nonegroup syntax-loadscope sentenceoff by defaultweight 12cap 24experimental

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.

version 2severity warninggate nonegroup rhetorical-patternsscope documenton by defaultweight 18cap 36experimental

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.

version 4severity warninggate nonegroup syntax-loadscope sentenceoff by defaultweight 8cap 16experimental

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.

version 1severity warninggate nonegroup rhetorical-patternsscope documentoff by defaultweight 12cap 24experimental

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.

version 2severity warninggate nonegroup syntax-loadscope paragraphoff by defaultweight 8cap 16experimental

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.

version 1severity warninggate nonegroup syntax-loadscope documentoff by defaultweight 6cap 12experimental

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.

version 1severity warninggate nonegroup rhetorical-patternsscope documentoff by defaultweight 12cap 24experimental

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.

version 1severity warninggate nonegroup inflationscope documentoff by defaultweight 12cap 24experimental

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.

version 1severity warninggate nonegroup rhetorical-patternsscope documentoff by defaultweight 12cap 24experimental