Reality Check

Proving "done" means done

The Problem

When an AI says "done," it graded its own homework.

The agent verifies its work in the same conversation that wrote it. "Tests pass" gets declared — and the last real check falls back on you.

The team behind Reality Check names this gap in their own words.

The authors say AI software is verified in the very context it was built.

The microsoft/amplifier-bundle-reality-check README opens by naming exactly this failure mode — false "done" claims.

So what does an in-conversation check actually fail to prove?

"Tests pass" can't honestly say a browser really rendered "Hello, {name}!"

A one-shot self-check inside the build chat cannot truthfully assert that a real browser loaded the form, typed a name, submitted, and saw the greeting render.

To prove it, you need a real target that forces real interaction.

  1. Load Open GET / — the form with a name input and a "Greet me" button.
  2. Type & submit Enter a name, POST to /greet.
  3. Confirm Verify <h1 id="greeting">Hello, {name}!</h1> actually renders.

An 89-line Flask fixture, built solely to force real browser interaction.

bkrabach/reality-check-greeting-app is a tiny Flask app: two routes designed to require a real browser. Its description says so outright — an end-to-end testing fixture.

With a real target set, how does Reality Check verify against it?

89
lines inserted (5 files)
1
commit (2087bef, 2026-04-30)
2
routes: GET / and POST /greet
Flask
by bkrabach (Brian Krabach)

First it asks "what does done mean?" before any validator runs.

The intent-analyzer — the "what does done mean?" agent — derives verifiable acceptance tests from user intent as the pipeline's first stage.

Then those tests are checked from outside the build chat.

  1. Intent-analyzer runs first Derives acceptance tests from user intent, before any validator.
  2. CLI-validated loop validate-acceptance-tests gates it, capped at 3 attempts.
  3. Then validators run Tests route by method: browser / cli / other.

Each validator runs as a one-shot sub-session against a real deployed container.

Validators run separate from the build conversation, against software deployed in an isolated Digital Twin Universe / Incus environment — a fresh perspective, not the build chat.

And the point proves itself, live, in the bundle's own repo.

The bundle's own suite fails the exact way Reality Check exists to catch.

test_version "passed history" asserting a stale 0.1.0 — but the CLI actually reports 0.2.0. An in-conversation self-check that agreed with itself, yet doesn't match reality.

That's why "done" has to be evidence, not a claim.

# uv run pytest -q 1 failed, 88 passed in 7.78s (89 total) # tests/test_cli.py:42 assert "0.1.0" in result.stdout AssertionError: "0.1.0" not in "amplifier-reality-check, version 0.2.0" # uv run amplifier-reality-check --version amplifier-reality-check, version 0.2.0
The Takeaway

"Done" isn't a claim you accept. It's evidence a fresh check hands you.

Replace self-graded assertions with independently-produced evidence — verified from a fresh perspective, in a real deployed environment.

Sources

Research Methodology

Reality Check bundle — Development Status :: 3 - Alpha

Data as of: latest commit 2026-07-09 on microsoft/amplifier-bundle-reality-check (26 commits). Greeting-app single commit 2087bef, 2026-04-30.

Repos: primary-source fixture bkrabach/reality-check-greeting-app; core feature microsoft/amplifier-bundle-reality-check. Independently re-verified in a fresh session by cloning both repos and re-running every cited command.

Commands run:

Primary contributors: David Koleczek (19 commits, two Git identities), Brian Krabach (4), Manoj Prabhakar Paidiparthy / manojp99 (3). Greeting-app: bkrabach (sole author, 1 commit).

Gaps: Whether the failing test_version is a deliberate teaching artifact or an accidental stale test is not stated in the repo — presented as observed irony. The bundle.md version 0.2.1 vs pyproject/CLI 0.2.0 drift is factual but unexplained. Production-usage metrics (projects reality-checked, defects caught in the wild) were not found and are not asserted.

More Amplifier Stories