all lessons · Trust, but verify · 10 of 17

The misleading 200

The CDN says OK. The page is last week's.

The deploy finished. The agent curls the URL, gets a 200, and reports the change live.

The 200 came from the CDN’s single-page fallback, which serves the home page for any path it does not know. The route the agent deployed does not exist on the edge yet. Status codes lie by omission.

Deploy verification is where agents are most tempted to stop early, because the tool said success and the server said OK. Three habits close the gap.

Check content, not status

Every app manifest here carries a landmark: a string that only appears on that app’s real page. The health check fetches the URL and asserts the landmark is in the body. A 200 that serves the home page fails the check, because the home page does not contain the landmark. This is the single change that made “is it live” a question with a true answer.

Compare what is deployed with what you built

Static builds here stamp the commit hash into the page. After a deploy, the agent reads the stamp from the live URL and compares it with the local HEAD. If they differ, the upload either did not land or the edge is still serving the old version. No amount of green from the deploy tool overrides that comparison.

Fleet-wide, not one app at a time

One app being stale is a bug. Three being stale is a broken pipeline. A read-only skill walks every app’s manifest, fetches every subdomain, checks every landmark and stamp, and prints a table. It runs before any announcement and whenever something feels off. Its whole purpose is to catch the app you forgot was there.

Silence is also a status code

The same lesson applies to tools that report by not saying anything. A code-review wrapper here produced zero findings for over a week. It was not clean; an upstream CLI had changed its flags and its output format at the same time, and the wrapper’s filter was discarding everything. “No findings” and “broken pipe” look identical downstream. When a checker has been quiet for a while, verify it can still find a planted problem.

Success from the deploy tool, OK from the edge, silence from the reviewer: all three are claims. Fetch the content, compare the stamp, plant a bug once in a while.