Short answer: your agent isn't guessing badly — it's guessing at all. The plan it needs lives in your head and in scattered notes no agent ever reads, so on every task it reconstructs your intent from the code plus your last prompt. Small misreads compound into confidently-built wrong things. This is agent drift, and it gets worse as the codebase and the team grow.
Three things that cause agent drift
The spec isn't machine-readable. A Notion page or a README is prose; an agent can't reliably extract "this system must not touch billing" from a paragraph. It needs boundaries and acceptance criteria as structure, not vibes.
The plan goes stale the moment code starts. You designed it, the agent built something slightly different, nobody updated the doc — so the next session builds on a fiction.
Nothing flows back. When the agent discovers a needed change mid-build, it just does it. Your design and your code silently diverge, and you find out later.






