
Your acceptance criteria aren't missing. They're just lying.
Most teams don't have a missing acceptance criteria problem. They have a precision illusion problem - criteria that look done, pass refinement, and still leave every meaningful decision to whoever is building. Here's why that happens, where the line actually sits, and how to write criteria that close the right decisions without closing the wrong ones.

Gherkin basics: Given, When, Then is not a template - it's a thinking structure
Most developers encounter Gherkin in a test file and assume it's a test format. It isn't. Given, When, Then is a logic constraint - one that forces a separation of state, action, and observable result before anyone opens an IDE. The test is a side effect. The thinking is the point.

User stories are monologues. That’s why your refinement keeps breaking.
Your refinement meetings keep breaking the same stories. The team writes better ones next time. It breaks again. The problem isn't story quality - it's that the format itself turns requirements into a monologue.

Coding Agents are the sloppiest developers you'll ever hire
A coding agent doesn't fill spec gaps the way an experienced developer does. It exploits them. The difference isn't capability - it's consequence. This is a 2AM postmortem, and what it actually tells you about building with AI.

Spec-driven development starts one step too late
SDD tools like GitHub Spec Kit and AWS Kiro solve a real problem. But every one of them starts with a spec already in hand - and nobody asks how it got there.
