Let’s start at the micro level: how do you know when a team finishes a story? I want to know that the team met the acceptance criteria on the story and that the team met the working agreement on how it completes work.
For acceptance criteria, I like the Given-When-Then approach from behavior-driven development:
(Given) some context
(When) some action is carried out
(Then) you should see some set of observable consequences
This approach creates scenarios for a story. You might even use the number of scenarios as a guideline for how large the story is. For me, a guideline is four scenarios. Once I see more than four scenarios, I worry that the story isn’t small enough. (You might prefer a different number than my four.)