Skip to content

Lint Rules

Lint rules report a finding without rewriting the source. They run under both prose check and prose format, they never produce an Edit, and any lint finding sets exit code 2. Every lint rule lives in the lint family and every rule in that family is a lint, so the category and the family share this one landing page.

bare-imports

Lint

Reports an unaliased bare import reached through at most max-attributes distinct attributes, which a from x import … would replace.

inlinable-bindings

Lint

Reports a function-local binding written once and read once whose value inlines at its read at no cost.

line-overflow

Lint

Reports a line still over its line budget once no layout rule can shorten it.

miscased-constants

Lint

Reports a module-level constant whose name is not SCREAMING_CASE and suggests the renamed form.

reassigned-constants

Lint

Reports a module-level SCREAMING_CASE name the module assigns more than once.

restated-types

Lint

Reports the parenthesized type in a docstring entry that the signature or the class body already annotates.

signature-annotations

Lint

Reports a parameter with no type annotation and a value-returning function with no return annotation.

step-narration

Lint

Reports an own-line comment that narrates a numbered step.

unsorted-positionals

Lint

Reports a run of positionally-bound names that is out of alphabetical order, without reordering it.

Each lint reports a pattern Prose can find but not resolve, because the right fix depends on a judgment the binary does not make. The Suppression chapter covers the per-line opt-out # prose: ignore[<rule>], the Exit Codes reference covers how the code gates a CI run, the Auto-Fix Rules page is the companion landing for the rules that rewrite, and the Configuration reference covers the per-rule enabled facet.