# Diagnoses URL: /diagnoses Use OpenHTF diagnoses to analyze results after measurement validation, classify failure modes, and drive conditional execution between phases. Analyze measurements after validation to classify failure modes and drive conditional logic. Measurements tell you *what* happened. Diagnoses tell you *why*. After a phase validates its measurements, diagnosers inspect the results and produce structured diagnosis objects. These can classify failure modes, set priorities, and trigger conditional execution of later phases. Create a `DiagResultEnum` to define the possible outcomes of your diagnosers. Each value must be unique across all diagnosers in the same test. A phase diagnoser runs after a single phase completes. It receives the `PhaseRecord` and returns one or more `Diagnosis` objects. A test diagnoser runs after all phases complete. It receives the full `TestRecord` and the `DiagnosesStore` containing all phase-level diagnoses. The diagnosis result value from your enum. Human-readable explanation of the diagnosis. Whether this diagnosis should cause the phase or test to fail. Importance level: `HIGHEST`, `NORMAL` (default), or `INFORMATIVE`. You can attach validators that only apply when specific diagnoses are present, using `.validate_on()`. When `HIGH_POWER` is diagnosed, the stricter 1.0–5.0 range replaces the default 0.1–1.0 range.