Skip to content

Thinking in Epics and Stories

Stadium 8 builds what you describe, so the quality of the output depends on the quality of your input. Your part breaks down into two things: define your epics and define your stories. Claude handles the rest.

An epic is a major feature area: a part of your application a user would recognise as a distinct thing.

EpicWhat it might cover
User authenticationLogin, logout, protected pages, session handling
Product catalogueListing, filtering, search, product detail page
Order managementCreating, tracking, updating and cancelling an order
Admin panelUser management, configuration, reporting
DashboardOverview figures, recent activity, quick actions

A good epic is something you could ship without the rest being done. If two epics are so tangled you can’t imagine one without the other, they’re one epic.

Claude works out which epics depend on others when it plans them. If your order management needs signed-in users, for example, the plan builds authentication first.

A story is one thing a user can do, or one thing the system does that a user would notice. It lives inside an epic.

Stories are always written from the user’s point of view:

  • “A user can log in with their email and password.”
  • “The product list shows a ‘no results’ message when no items match the filter.”
  • “An admin can deactivate a user account.”
  • “An order confirmation email is sent when a purchase is completed.”

Not like this:

ExampleWhy it doesn’t work
”Set up the authentication middleware”A technical task, not user behaviour
”Build the product management system”Too large. It’s an epic, not a story.
”Improve the dashboard”Too vague. Improve it how?
Your jobClaude’s job
Prepare your inputs: specs, designs, API schema, sample dataRead everything and build a plan
Approve the project setup and the epic planBreak the application into epics and map their dependencies
Approve each epic’s storiesBreak each epic into user-visible, testable stories
Test each epic in your browser at the manual testWrite the tests and code, run the quality gates, and fix failures
Make decisions when Claude asksRecord its decisions in the epic’s journal, and flag assumptions for you to check
Confirm each merge into mainOpen the pull request, wait for the checks, and merge on your confirmation
Optionally, plan the next epic ahead with /planPark the planned epic, ready for /start to build