"A hang costs more than a red. A red at least names itself."
The Artifact a Person Runs
A unit suite proves the code in a test host. The family's desktop apps also carry an installed-app gate that proves the bundle in /Applications: launched through LaunchServices with open, so it is its own responsible process with its own permissions; started as a fresh instance with -ApplePersistenceIgnoreState YES and an explicit result file, so it neither depends on nor overwrites the owner's saved windows; and judged by markers in its own log. The first check of that gate is the one from the LaunchServices lesson: the installed executable's hash equals this checkout's build product, because another checkout can replace the slot between install and test.
open -W Waits Forever
Each stage of the coding engine's gate ran open -n -W -a App --env … and then looked for a success marker. When one stage's app stopped printing its marker and never quit, the gate did not fail. It blocked, with no timeout and no output. A sample of the app showed a healthy main thread in the ordinary run loop: the app simply had nothing left to do, and the wait was the defect. The regression had been invisible for months, because an earlier stage had been failing first. The rule is short: every wait gets a bound. Background the launcher, poll it against a deadline, and on expiry stop the launcher and only the app instance that stage started, print the stage log, and fail with the stage's name and the bound. Deadlines are generous on purpose; the point is that a stage that stops answering ends in seconds with a name attached. The same script had a second silent death: a helper whose output was redirected to a file failed under set -e and ended the gate with nothing on screen, so every redirected failure is re-read on the failure path.
Stages Only a Person's Terminal Can Run
One stage dragged a split-view divider through the Accessibility API. From an agent's shell it failed at once, because Accessibility belongs to the responsible process and the agent's host app did not hold it. No retry fixes that. The stage stays in the script, fails with a named reason when run without the grant, and is reported as operator-only, while the stage after it is still proven by seeding the state the drag would have produced. Report the boundary honestly rather than a green.
Proofs That Cannot Pass by Accident
To prove a desktop client reads files from a remote Mac, the smoke test gave both machines the same absolute path with different bytes and a different file count, and asserted on both; typing hostname into the remote terminal did the same for the shell. A pass could not come from the local disk. On the iOS side, a Simulator with a Korean keyboard turned ASCII typed through the hardware keyboard into Korean letters until the Simulator's keyboard list was changed and the app relaunched.