Linter
Catches structural inconsistencies that are syntactically valid but semantically suspect. Lower oracle strength than a type checker, but faster feedback on style and common traps.
A linter sits between compilation and type checking — it catches things the compiler won’t (unused variables, unreachable code, style violations) but with less authority. A linter can be wrong; a compiler cannot.
Sensor properties
| Property | Value |
|---|---|
| Oracle strength | Medium — suggestions, not facts |
| Independence | High — external to the code |
| Scope | Module-level |
| Feedback latency | Milliseconds |
| Actionability | Guiding — shows the exact line and rule |
| Type | Predictive |
What it cannot detect
A linter cannot detect behavioral correctness — it operates on syntax and patterns, not execution. It also produces false positives, which erodes its authority over time.