Skip to content

Rules Reference

Unfault analyzes your code across 195 production-readiness rules in Python, Go, Rust, and TypeScript. Each rule targets patterns that cause real incidents in production systems.

Unfault organizes rules into seven dimensions that map to the qualities that keep systems running reliably:

DimensionFocusExample Rules
StabilityPreventing crashes and service degradationTimeouts, graceful shutdown, bounded retries
CorrectnessPreventing bugs and data corruptionSQL injection, error handling, type safety
PerformancePreventing slowdownsN+1 queries, blocking in async, CPU in event loop
ScalabilityEnsuring systems handle growthBounded concurrency, resource limits
ObservabilityImproving monitoring and debuggingStructured logging, correlation IDs, tracing
SecurityPreventing vulnerabilitiesHardcoded secrets, unsafe eval, input validation
MaintainabilityEnsuring code qualityHalstead complexity, code duplication

Each rule is assigned a severity based on its potential impact:

  • Critical — Security vulnerabilities or data corruption risks
  • High — Can cause outages or significant bugs
  • Medium — May cause issues under load or edge cases
  • Low — Best practices and code quality

Most Unfault rules include auto-fix patches. When Unfault detects a violation, it can generate a diff showing exactly how to fix the issue. Apply patches with:

Terminal window
unfault review --apply