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.

bare-imports

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

inert-directives

Reports a skip or ignore directive that holds nothing out.

inlinable-bindings

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

line-overflow

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

miscased-constants

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

reassigned-constants

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

restated-types

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

signature-annotations

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

step-narration

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

unsorted-positionals

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 Rules page lists every rule beside its family, and the Configuration reference covers the per-rule enabled facet.