Docs menu

Concepts

The severity model

WARN and INFO, the four kinds of finding, and the three rules that bound what a run can claim.

SeverityMeaning
WARNSomething to act on. Three different things arrive this way, and kind tells them apart: a live obligation applies to your declared profile (obligation); a jurisdiction-wide crawl-law attribute LexLint flags as worth acting on, such as an unsettled or restrictive posture (posture); or LexLint lacks current data for a jurisdiction you declared (coverage).
INFOContext, not a live duty on you. Three different things arrive this way, and kind tells them apart: an instrument LexLint cannot say is in force today (pending); a jurisdiction-wide statement of how the local law treats crawling as a whole (posture), which cites nothing and binds nobody on its own; and a note about what was not reported (coverage), such as instruments that exist but no longer bind.
KindMeaning
obligationA specific instrument binds the declared profile now.
coverageA note about what was not reported, never a pass: LexLint could not read something, holds no data for a declared jurisdiction, cannot map what it holds to a declared activity, or holds an instrument that no longer binds.
postureHow this jurisdiction's law treats crawling as a whole: whether browsewrap binds, what weight robots.txt carries, whether a public page is outside computer-crime law. Jurisdiction-wide attributes rather than instruments, so they bind nobody on their own and cite nothing. Appear only when crawls_web is declared.
pendingAn instrument LexLint cannot say is in force today: proposed, not yet in force (from a later day, or from a date not yet set), blocked by a court, or carrying a status LexLint has no policy for. An injunction can be lifted, and a start date missing from the record does not mean the law is not in force, so treat this as a duty to watch, not one to ignore.

A posture finding whose value is unsettled is a warning, not a pass. "The law here is silent, untested, or in flux" is among the most actionable things a crawler author can be told.

LexLint never reports an ERROR severity. A lint cannot be sure an activity is prohibited rather than merely regulated, and it will not assert unlawfulness on the strength of a matched instrument. Treat a live WARN obligation as the thing to act on.

Three rules bound what the output can claim. A jurisdiction LexLint has no current data for is a WARN, never a silent pass. Every finding carries its as-of date and a staleness flag, because laws change faster than any law library can follow. And the passing state is no basic issues found: the word "compliant" does not appear in LexLint output, because a lint cannot know that.