Reality Check · Technical Walkthrough
How Reality Check turns intent into evidence
microsoft/amplifier-bundle-reality-check · v0.2.0 · AlphaIt is an Amplifier bundle that verifies delivered software against what was asked — instead of trusting an agent that just says “done.”
So how do you trust a verdict when an LLM produced it?
A deterministic checkpoint, amplifier-reality-check, sits between the LLM steps. A bad software_type is rejected by Pydantic — no model opinion required.
A non-LLM gate exists. Now — what is it gating?
The intent-analyzer writes acceptance tests; three testers run them; the report agent consolidates the results into report.raw.yaml.
Five agents, all authored by an LLM — and that's the weak point.
When the model authors the acceptance tests and the report, its “looks good” proves nothing — the output can wander from the schema or simply be invalid.
The fix isn't a smarter model. It's a checkpoint the model can't argue with.
extra='forbid', strict=True forbids unknown keys and refuses to coerce types. Each test needs an 8-char hex id, a valid type, and at least one step.
The intent hand-off is gated. Now gate the report.
^[0-9a-f]{8}$, auto-injected & idempotentIt buckets every test into passed / failures / missing, each with an evidence string, and computes a pass_rate like 3/5.
Both authoring hand-offs are gated — but who enforces it?
Both LLM stages run in while-loops capped at 3 attempts. A bash guard runs exit 1 — failing the whole recipe — if the CLI never exits 0.
Intent becomes evidence-backed pass/fail, not a model's word.
Don't ask the model to be trustworthy. Wrap each authoring hand-off in a machine-checkable checkpoint and loop until it passes. That's how intent becomes evidence you can trust.
Convergence is a recipe property, not a model promise.
Primary sources: microsoft/amplifier-bundle-reality-check (the capability) and bkrabach/reality-check-greeting-app (the 85-line Flask test fixture).
Feature status: Development Status :: 3 — Alpha; tool version 0.2.0 (bundle 0.2.1); authored by the Microsoft MADE:Explorations Team.
Commands run:
ls agents/ and cat AGENTS.md, behaviors/reality-check.yaml — confirmed the 5 LLM agentsuv run amplifier-reality-check --help — 3 subcommands (validate-acceptance-tests, validate-report, schema)validate-acceptance-tests on valid + invalid YAML; echo $? — observed exit 0 / exit 1sed -n '1,90p' src/…/acceptance_tests.py — ConfigDict(extra='forbid', strict=True)grep of report.py — passed/failures/missing buckets and pass_rate formulacat recipes/reality-check-pipeline.yaml — both loops max_while_iterations: 3 + guard stepsuv run pytest -q — 89 collected, 88 pass, 1 stale version assertiongit log / gh repo view / git shortlog -sne --all — timeline & contributorsContributors: David Koleczek (25 commits, lead), Brian Krabach (5 commits + sole author of greeting-app), Manoj Prabhakar Paidiparthy (3 commits). 26 commits total in the tool repo.
Gaps: No run log of Reality Check executed end-to-end against the greeting-app was found — only the fixture code and the tool's own test suite were verified. CLI checkpoints gate the two YAML-authoring hand-offs (acceptance tests, report), not every agent invocation.