Step 3: Write User Stories
User stories turn scope into testable behavior. The format is simple:
As a [user], I want to [action], so that [benefit].
For the book tracker:
- As a reader, I want to add a book by title and author, so that I can start tracking it.
- As a reader, I want to mark a book as finished, so that I can see my progress.
- As a reader, I want to rate a finished book 1–5 stars, so that I remember what I liked.
Each story is a unit you can build and verify independently. If you can't picture how you'd test a story by clicking around the app, it's too vague — split it or rewrite it.
The so that clause is the part people drop, and it's the most important. "As a reader, I want a search box" tells the AI what to build but not why, so it can't make good trade-offs. "As a reader, I want to find a book in my list by typing part of its title, so that I don't have to scroll through dozens of entries" tells it the actual job — and now a simple filter-as-you-type might beat a heavyweight search engine. The benefit is the spec for the spec: it explains the feature well enough that the AI (and future-you) can tell a good implementation from a wrong one.