Proving "done" means done
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 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?
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.
GET / — the form with a name input and a "Greet me" button./greet.<h1 id="greeting">Hello, {name}!</h1> actually renders.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?
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.
validate-acceptance-tests gates it, capped at 3 attempts.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.
dtu-launch step deploys the software in a Digital Twin Universe (Incus) container.evidence string per pass/fail result.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.
Replace self-graded assertions with independently-produced evidence — verified from a fresh perspective, in a real deployed environment.
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:
gh repo view bkrabach/reality-check-greeting-app — description & README fixture claimgit rev-list --count HEAD, git show --stat HEAD, wc -l app.py Dockerfile requirements.txt README.md — 1 commit, 5 files, 89 insertionsgit show --pretty --date=iso HEAD — commit 2087bef, bkrabach, 2026-04-30cat app.py — GET / form + POST /greet renders <h1 id="greeting">Hello, {name}!</h1>cat README.md / pyproject.toml — self-verification framing; deps digital-twin-universe + giteagrep -n 'one-shot sub-session' agents/*.md — intent-analyzer, browser/generic/terminal-tester, reportgrep -n 'evidence…NonEmptyStr' report.py — RawResultEntry requires status (pass|fail) + non-empty evidencegrep max_while_iterations recipes/reality-check-pipeline.yaml — intent & report loops capped at 3uv run amplifier-reality-check --help / --version — 3 subcommands; version 0.2.0wc -l src/*.py tests/*.py, uv run pytest -q — 1714 src / 1769 test lines; 89 tests, 88 pass, 1 failgit log --pretty='%an' | sort | uniq -c — contributor counts (26 commits)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.