Risk Levels
Zeno uses four severity levels: Critical, High, Medium, and Low. Risk is always consequence-based — what happens if a bad change reaches production.
Severity is only one part of a ship-readiness finding. Zeno also reports its blocker class and certainty.
Blocker classes
Hard blocker
A failure that prevents the critical user flow from reaching its intended outcome or makes the selected launch context unsafe.
Examples include an unwired capture form, a missing authentication guard, a checkout that cannot complete, or a CLI command with no working entrypoint.
Soft blocker
An important gap that may be acceptable for a private preview but should be resolved before a public launch or paid traffic.
Code ownership risk
A maintainability, complexity, or safety-net problem that increases future change risk but does not automatically block launch.
Certainty levels
- Confirmed — directly supported by repository evidence
- Likely — strong evidence exists, but relevant behavior may live outside the scanned path
- Needs verification — static analysis cannot determine the runtime behavior
- Inferred — a plausible risk based on incomplete or indirect evidence
A finding can be high severity but still need verification. Conversely, a maintainability issue can be confirmed without being a launch blocker.
Critical
A bad change can cause:
- Authentication bypass
- Payment failure
- Data loss or corruption
- Security exposure
- Irreversible writes
- Production outage
Critical is rare. Zeno reserves it for paths where the blast radius is severe and often irreversible.
High
A bad change can cause:
- User-facing flow failure
- External API or webhook breakage
- Environment secret exposure
- Form submission or data write failure
- Business logic failure that reaches users
High issues are usually reversible, but they affect users or external systems directly.
Medium
A bad change can cause:
- Localized failure that is easy to detect and recover from
- Degraded behavior in complex or large files
- Maintainability problems that compound over time
Medium signals flag technical debt and complexity, not immediate production risk.
Low
A bad change affects:
- Isolated, presentational, or cosmetic code
- Utility functions with no external dependencies
- Simple, well-contained logic with no behavioral consequence
Low-risk files are generally safe to clean up with confidence.
What does NOT make something Critical
Zeno will not mark a file Critical solely because:
- The file is large
- The file has no tests
- The file uses browser globals
- The file has no exports
- The code is messy or hard to read
These are maintainability signals, not severity signals. A messy file is at most Medium until its specific behavior carries severe production consequence.