An internal release agent finished a deploy a little after 2 a.m. and then had nothing it could read.
The dashboards were green. But green is something you see, not something you fetch. The agent's next step, continue the rollout or pause and wait for a human, depended on a judgment that lived only on a screen nobody was looking at. So it did the one safe thing available to it. It stopped, and waited for someone to wake up and confirm what the graphs were already showing.
That gap stayed with me. The pipeline was automated end to end, except for the fifteen minutes right after the deploy, where it quietly fell back to a person. Someone still had to look at runtime signals and decide whether the thing that just shipped was behaving.
I had built a verdict layer for that exact window. It read raw deploy signals: error rates, latency, exception types, deploy metadata. It emitted one of three states. STABLE, WATCH, RISK. The problem wasn't the verdict. The problem was that I had built it for a human to read, and the agent that actually needed the answer at 2 a.m. couldn't get to it.
The second reader I hadn't designed for






