AI testing that doesn't flake.

Write the test in plain English. noflake pins the interpretation: the same test checks the same things every run, forever.

no demo call. no sales thread. your invite email is the onboarding.

yoursite.com/pricing
TEST 001 · pricing.spec
Check the pricing page shows three plans and the Pro plan costs $29/mo
interpretation pinned · run #47 · 18.4s · plan unchanged since run #1PASS

Both of your options lie to you.

EXHIBIT A

The noisy robot

An AI agent that grades its own homework. Same test, three runs, three different stories. None of them about your site.

agent.log · "checkout still works" · 3 runsnoisy-agent v2.1
09:14:00$ agent test "checkout still works"
09:14:02run #1 · click "Buy now"→ clicked .nav-logo instead
09:14:07✓ PASS - "checkout works great!"reality: the page was a 404
11:02:41run #2 · same test, same build
11:02:49✗ FAIL - "can't find the buy button"reality: same page, same button
14:26:19run #3 · same test, same build
14:26:24✓ PASS - "all good, ship it."
PASS- it hallucinated. the page was a 404.
EXHIBIT B

The dead test suite

Brittle selectors pinned to the DOM. Every redesign breaks them, and your team learns to ignore red.

checkout.spec.tslast green: 14 months ago
test('pro plan shows $29/mo', () => {
- await page.click('#root >
- div:nth-child(4) > button')
+ test.skip() // breaks every redesign
+ // TODO: re-enable "next sprint", May 2024
})
FAIL- the selector broke. the site was fine.
incident #231 · duration: 72h · detected by: customer tweet

Your pricing page was broken for three days. A customer tweet told you.

M
Maya Okafor@mayaships · Mar 3

hey @yourco is the pricing page supposed to be a blank white screen? been like that since tuesday… trying to give you money here 😅

41128602

English in. Verdict out. Same every time.

PHASE 01 · ENGLISH INwrite what you mean, once
00:00.00

“Check the pricing page shows three plans and the Pro plan costs $29/mo”

INTERPRETATION · PINNED SINCE RUN #1 · NEVER RE-DERIVED[1] /pricing responds 200[2] exactly three plan cards render[3] plan “Pro” shows price “$29/mo”
PHASE 02 · DETERMINISTIC RUNreal Chromium · semantic reads · AI consulted only on surprises
00:00.41goto yoursite.com/pricing→ 200 · 412ms
00:00.89read semantic structure847 nodes · 3 sections role="plan"
00:01.24assert plan count == 3found 3✓ ok
00:01.31assert “Pro” price == “$29/mo”found “$29/mo”✓ ok
00:19.40compile evidence4 assertions · 2 screenshots · 1 DOM snapshot
PHASE 03 · VERDICTthree honest answers, receipts attached
PASS
runtime 19.4s · run #47 · verdict identical since run #1what it checked, what it saw, why it decided, attached to every run.
section:how-it-works · 1 run traced · 0 surprisesPASS

Every verdict comes with receipts.

When noflake says FAIL, it shows you the quoted page text, the assertion that broke, and every action it took to get there.

acme.com/pricing
$9/mo
$NaN/moFAIL
$99/mo
NOFLAKE · RUN #4211pricing-page.test · 2026-07-14 09:12 UTC
pricing page loads1.2s
three plan cards visible2.8s
Starter shows $9/mo3.4s
Pro shows $29/mo4.1s
── QUOTED FROM PAGE ──"Pro $NaN/mo"

TRACE goto /pricing → wait nav → read plan cards → assert ×4

VERDICTFAIL

Grounded verdicts

Every claim is checked against the page itself. Hallucinated evidence is auto-rejected before it ever reaches you.

Receipts on every failure

Quoted page text, per-assertion checks, and the full action trace. No "trust me" verdicts.

BLOCKED

A first-class verdict

Can't judge is not a pass. When noflake is blocked, it says so, and shows why.

Alerts only on change

A verdict that flips is news. Everything else is silence. No daily digest, no noise.

20×3SITES × RUNS
90%IDENTICAL VERDICTS
▸ assert: zero_false_passes
0FALSE PASSES IN 120 RUNS
Nobody else prints a number.