All notable changes to Straud are recorded here.
Why this file matters more than it does for most tools. Straud's checks and
thresholds change as its calibration improves, so the same data can produce a
different verdict under a different version. Every report records the version
that produced it (straud --version). If you are comparing a result to an
older one, check here first — the difference may be Straud, not your strategy.
This project follows Semantic Versioning. For Straud, a major version means a check's behaviour changed in a way that can alter a verdict on unchanged data.
Verdict and severity labels renamed for clarity. The same four verdicts and four severities, in the same order, under clearer names:
| was | now | why |
|---|---|---|
| verdict Fatal flaw | verdict Fatal | shorter, and it reads as a verdict rather than as a finding |
| verdict Fragile | verdict Conditional | Fragile sounded weaker than Unproven; it is in fact the stronger result, because a signal was found. Conditional says what it is: real, subject to assumptions holding |
| severity Fatal | severity Critical | one word was doing two jobs. A Critical finding is what produces a Fatal verdict; naming them differently keeps the two ladders apart |
No check, threshold or exit code changed — a report on unchanged data reaches
the same conclusion under the same conditions and returns the same exit code.
If you match on verdict text, Fatal flaw → Fatal and Fragile →
Conditional; in the Python API, Verdict.FATAL_FLAW → Verdict.FATAL,
Verdict.FRAGILE → Verdict.CONDITIONAL, Severity.FATAL →
Severity.CRITICAL.
--expected-effect) and counterparty
identification (--counterparty).--policy strict|standard|lenient to choose how much severity stops a
pipeline. Findings are identical under all three; only the exit code moves.straud --version, and a version stamp recorded in every report.SHA256SUMS.txt.coverage_gaps measured gap length by calendar-day adjacency, so on a
business-day calendar a long hole was reported as at most five days.STRAUD_ROOT, so most relative paths were refused.First release.