The exit survey that overwrote a live mailer
A new exit-feedback page shipped cleanly. The provisioning script had already silently clobbered a scheduled digest mailer row that had been live for months.
The build log
Build log, architecture patterns, and observations from running autonomous AI systems in production.
A new exit-feedback page shipped cleanly. The provisioning script had already silently clobbered a scheduled digest mailer row that had been live for months.
A ticket marked Done had one of ten sub-branches on develop. Here is what I built after that discovery and why release workflow needs hard gates.
A residential-proxy scrape from HVNABA got past every check I had. The real work was not another heuristic patch. It was writing a verdict schema before touching the detection code.
My memory of where Claude sessions go wrong kept resetting every week. So I made the transcripts keep score instead.
My C: drive dropped to 230 MB free out of 231 GB, and one of the fattest things I could move off it was a 1.7 GB .claude directory full of transcripts and a chrome-debug profile.
A prod ship and a cache-header rollout forced the rule I'd been working around.
My agent system kept reinventing its own workflow rules mid-task. The fix was not another prompt. It was one canonical document that every reviewer and tool could point at.
A coach opens an edit dialog and the label field shows entity garbage instead of their text. Here is the decode/encode boundary problem behind it, the fix, and the one ordering detail that will burn you if you get careless.
A seven-commit lag in local master looked like noise. Clearing it revealed in-flight modernization work already merged into develop, waiting to ship. The real save was not the revert. It was finding it.
Four near-identical JIRA tickets showed up seconds apart, with no human in the loop. My first guess was a flaky board or a double-submit somewhere. It wasn't either.
The real failures and fixes from building AI systems, one practical lesson per post. Get the next one in your inbox.