Semantic diff
culprit diff REF_A REF_B --eval-set FILE reads the configured prompt at both revisions without checking either one out.
An eval set supports exact, case-insensitive containment, regular expression, and LLM-judge assertions:
cases:
- id: concise-greeting
input: Say hello to Ada.
assertions:
- type: exact
value: Hello, Ada!
- type: contains
value: Ada
- type: regex
value: "^Hello"
- type: llm_judge
value: The answer is friendly and concise.
threshold: 0.8
The empirical layer shows each case's before/after score and output. The judge layer summarizes that evidence, but is explicitly advisory. Cache keys include prompt contents, the complete eval-set bytes, provider, model, and case ID.
The command prints its worst-case call estimate before executing and asks for confirmation above the configured threshold. --yes is intended for deliberate automation.