Skip to content
Sarj Code Standards

no-vague-suppression-description

Suppressions need a concrete description of the exception.

Why

Generic reasons satisfy review conventions without making the suppressed risk auditable or removable.

Fix

Name the concrete tool mismatch or safety invariant and the condition that would allow removal. Cite an upstream issue or affected version when that is the durable boundary.

Examples

Before — flagged Generic reason does not make the suppression auditable
adapter.py
value = vendor.value # ruff: ignore[attr-defined] -- false positive
After — preferred Concrete runtime mismatch explains the suppression
adapter.py
value = vendor.value # type: ignore[attr-defined] -- vendor stubs omit the runtime field
Before — flagged A scoped suppression still needs an explanation
adapter.py
value = vendor.value # pyright: ignore[reportAny]
After — preferred Explain the concrete dependency typing boundary
adapter.py
value = vendor.value # pyright: ignore[reportAny] -- the dependency's runtime value has no published stub