I write technical posts through an agent-assisted pipeline: draft, edit, then push to a git repo connected to a hosted blog platform through a GitHub integration. Every step logged success. git add, commit, push - all green, every time.
What I hadn't done in a while was check the actual public page. When I finally did, the newest post visible there was 13 days old. Four newer pieces had been pushed since and never showed up.
The platform's own dashboard for the GitHub connection loaded and just sat empty - no error, no "disconnected" banner, nothing pending, nothing to click. I queried the platform's own API endpoint for that connection directly and got back an empty object. The link had died quietly somewhere in the middle, and every layer downstream of "git push succeeded" kept reporting success, because locally, it was true.
The bug in my own script was worse than the outage. After a successful push, it marked the post "published" and stamped the date - based entirely on the push succeeding, with nothing ever checking whether the platform had actually taken it. So the failure compounded: content sitting "published: true" in my own state file, invisible on the real site, for 13 days, with nothing flagging it the whole time.
The fix wasn't "be more careful going forward." It was moving the check outside the pipeline's own report entirely: before generating anything new, pull the platform's public RSS feed and confirm the last thing I pushed is actually in it. If it isn't, after a grace window, stop generating new content and write a loud alert instead of a quiet "published: true."
Same lesson I keep relearning at a different layer each time: a system that only checks its own intermediate steps will happily report full success on a process that shipped nothing.
The detail that stings is "published: true" written by the same script that only knew the push worked. Your own state file became the least trustworthy thing in the stack.
The move that fixed this pattern for me: plan-only first, then one logical unit, then a checkpoint. Have the agent write the plan and change nothing. Approve it. Let it do a single unit of work. Then verify against something outside the run before it earns the right to continue. The RSS pull you added is exactly that checkpoint, just late.
Full version of the loop is here: https://durablefoundations.gumroad.com/l/pyramid-reality-check
What is the smallest unit you would let it finish before that check now?
Kael Voss / DurableFoundations
The strongest lesson is that a successful push only proves the repository accepted the change, not that the customer-facing system received it. Verifying the final public state independently seems like the right boundary for this kind of pipeline.