ns-ui
Two eval runs compared as a shear profile — every case is a hairline anchored at the left and offset at its right end by the score delta, sorted so the whole suite resolves into one signed curve with a flat, quiet middle and two tapering tails.
Use when two runs of the same eval suite need to be compared case by case and the question is where the candidate moved rather than what the headline average is — the sorted shear profile makes the count of real gains and real regressions countable at a glance and shows how little of the suite actually moved; pick diff-unified-viewer or approval-inline-diff when the diff is textual rather than scored, compare-table-reach-rule when the comparison is a small table of named features, and stat-row-baseline-spark when a single aggregate metric against its baseline is all that matters.
Install
npx shadcn add https://design.helpmarq.com /r/eval-regression-shear.jsonNightly eval sweep · run 2481
candidate 2.4.1-rc3 vs baseline 2.3.0
Each hairline is one case, anchored left and offset right by its score delta. Move the pointer down the stack — or Tab in and use the arrow keys — to fan the rows apart and read the cases under the caliper.
| Prop | Type | Default | Description |
|---|---|---|---|
| cases | ShearCase[] | — | The two runs, one entry per eval case. |
| tieEps? | number | — | |delta| below this counts as unchanged. Default 0.005. |
| passThreshold? | number | — | Score at or above which a case counts as passing. Default 0.5. |
| shearScale? | number | — | Pixels of shear per 1.0 of delta, clamped to +/-56px. Default 260. |
| label? | string | — | Accessible name for the case list. |
| className? | string | — | — |