You ask a model for a JSON contract, run it once, get exactly that, and ship. Then one call in forty comes back with an enum that doesn't exist, or a number sent as a string — and none of those throw. guard-lab runs a prompt against a schema N times and shows the distribution of ways it breaks, sorted by what your code actually does about each one: crashes you already see, wrappers you can strip, and the ones that parse cleanly and are wrong. It also refuses to let a clean sweep read as proof — fifty runs with zero failures is still consistent with a 7% failure rate, and the tool says so.

Distribution