Skip to main content
FeatureFactory
← Blog
product planning3 min read·FeatureFactory

Writing product plans your AI agents can actually build from

A vague product plan wastes a human sprint. Handed to an agent, it wastes tokens and ships the wrong thing faster.

A vague requirements doc has always been expensive - it just used to fail slowly. A human engineer hits the ambiguity, feels the friction, and comes back to ask. An agent doesn't. Hand it an underspecified product plan and it will confidently build a plausible, internally consistent implementation of a misunderstanding - and do it fast enough that you don't notice until review.

So the bar for a product plan has quietly risen. The spec is no longer a starting point for a conversation; it's the interface to an executor that won't push back.

What agents need

A product plan an agent can build from has four things, and each one closes off a way for the agent to go wrong:

  • A crisp problem statement - who hurts, and how. Without it, the agent optimizes for the literal words instead of the intent.
  • Explicit acceptance criteria - testable and unambiguous. "Should be fast" is not a criterion; "p95 under 200ms for the list endpoint" is.
  • Non-goals - what not to build is half the spec. Agents love to be helpful; a non-goal is the guardrail that stops scope creep.
  • A success metric - the number this feature is supposed to move, so you can close the loop later and check whether it did.

Write criteria a machine could check

The single highest-leverage habit is phrasing acceptance criteria so a test could pass or fail on them. A useful format:

Given a signed-in user with an empty cart, when they add an out-of-stock item, then they see an inline "notify me" prompt and no item is added.

That sentence is unambiguous to a human, an agent, and a test suite alike. Vague criteria - "handle errors gracefully," "make it intuitive" - are exactly where agents improvise, and improvisation is where rework comes from.

Non-goals are not optional

The most common cause of a bloated agent PR is a missing non-goal. "Don't touch the auth flow." "No new dependencies." "Don't refactor the surrounding module." Stating the boundaries explicitly is faster than reviewing your way out of a forty-file diff after the fact.

Close the loop

A product plan isn't done when the feature ships - it's done when you've checked the success metric it named. That final step is what separates planning from wishful thinking, and it's the reason the metric belongs in the doc from the start.

Draft one in minutes with the Product Plan Generator, grade your criteria with the Acceptance Criteria Grader, or read the full how-to.

Measure what you ship - for real.

Put your team’s AI web-development on the outcome loop.

Get early access