TL;DR: Agents "violate product rules" mostly because they can't see which behaviors are confirmed decisions vs. temporary implementation details. Modern harnesses (AGENTS.md, memory, specs, monitors) steer code execution, but they still don't provide product truth. A behavior spec adds that missing layer with trust levels and explicit must/must-not behaviors. I started noticing a pattern with coding agents in my codebase. The agent would make a change that looked reasonable — cleaner code, passing tests — but it broke a product decision I'd already made. Most of the time, these weren't bugs. The agent was correct based on what it could see. It just didn't know what I knew — product decisions, trade-offs, things I'd explicitly confirmed or rejected that existed nowhere in the code. The agent saw a Stripe integration. It didn't know I was actively evaluating switching to Polar.…