Feature · Regression Intelligence
Ṛta compares your current constraints against a saved baseline and tells you exactly what changed: what is new, what got resolved, what changed meaning, and what stayed the same.
In plain words
A regression is a change that makes things worse. Ṛta saves a snapshot of your constraint quality (a baseline), then on every later change it compares the new results to that snapshot. New problems are regressions; fixed problems are resolutions.
Four states, each meaningful:
$ rta check v2.sdc --baseline base.json
Readiness diff vs baseline:
RESOLVED SDC-008 input delay ≥ clock period
NEW SDC-151 reset tree unconstrained
UNCHANGED SDC-030 missing output delay
readiness: REVIEW_REQUIRED (was READY)
- 1 regression
Real-world example
A merge brings in a "cleanup" that removes an old input delay line. The SDC still validates, but an input port is now unconstrained, coverage dropped and nobody noticed because the file "looked fine".
# today - establish the baseline
rta check your_block.sdc --save-baseline base.json
# in CI - compare every change
rta check your_block.sdc --baseline base.json \
--gate STRICT
# exit 1 if any NEW finding appears
Watch findings resolve over time instead of re-reading the same list each week.
Regressions fail the pipeline, so quality can only go up.
Findings are keyed by meaning, so diffs stay stable across refactors.
Try it