digline

Start here

If you already know what a silent regression is, skip to the Guide. This page is for everyone else.

The problem, in one story

I run a small script that reads a few hundred AI articles every morning and asks a language model to pick the five worth reading. It worked. Then one day it started skipping the good ones.

Nothing had crashed. No test had failed. The code was the same as the week before. What had changed was the behaviour of the model — a prompt tweak here, a model update there — and behaviour is not something a unit test checks. The script still returned five articles. They were just the wrong five.

That is an LLM regression: your system still runs, still answers, still passes its tests, and is quietly worse than it was.

Why your tests don't see it

Ordinary tests compare an output with an expected value. A language model doesn't give you an expected value. Ask it the same question twice and you may get two different answers, both acceptable. So teams either stop testing the model's behaviour, or they write a test that passes today and can't tell you anything about tomorrow.

The practical questions turn out to be:

What digline does

digline is a gate you put in front of that question. You write down, once, what you expect from your system as a set of checks — deterministic ones (the answer is valid JSON, contains no phone numbers, mentions the customer's name) and judged ones (a second model rates the answer against a rubric). You run them against your system. When you're happy with the result, you promote it: it becomes the baseline, a file committed in your repository next to the code.

From then on, every run is compared with that baseline, and the report answers the only question that matters:

Nothing got worse compared with the reference. 2 checks moved within noise. Every case could be judged. 1 case is suspended. The suite is unchanged from the reference. 1 file under test changed since the reference.

or

14 checks got worse compared with the reference. 7 cases could not be judged. No case is suspended. The suite is unchanged from the reference. The files under test are the same as the reference.

The baseline is a file in git. It has history, it can be diffed, and nobody promotes it but you. There is no dashboard to log into and no service that receives your data — digline runs where your code runs.

Thirty seconds, with pictures

Episode 1 of a short series on LLM regression. Served from this site — no third-party player, no cookies.

Where to go next

Ten words you'll meet along the way: run, baseline, compare, promote, check, judge, tolerance, noise floor, regression, gate. Each is explained the first time it appears in the Guide.