The button four people called done
You asked for a button that emails shoppers when a sold-out product is back. You ask if it is done. Design says done, they drew it. Dev says done, they merged it. QA has not opened it yet. It is not on the live site. Four people said "done" and not one customer has been emailed.
"Done" is a relay, not a finish line
Each stage on your build has its own finish line, and that line is the entry ticket for the next stage. When one stage calls something done that the next stage cannot use, the work bounces back and your calendar slips. A shared definition of done is just the checklist each stage passes before it hands off the baton.

Deciding how to get it built? The free Vibe Code or Hire a Developer assessment scores your project in 8 questions and tells you whether to vibe code it, use a site builder, hire, or split the work.
Discovery is done when the "then" is written
Not "we talked about it on a call." Done here means the who, the when, and the then are written down, and the "then" is an outcome you can watch happen. If nobody can point at a sentence and check it later, discovery is not finished, no matter how good the meeting felt.
Design is done when every state is drawn
Not just the pretty hero shot. Done means the empty state, the loading state, the error state, and the mobile view are all drawn, plus the edge cases from your story. A design that only shows the happy path hands dev a guess for every screen a real customer will actually hit.
Dev is done when it matches the story, not just when it merges
"It is merged" is not done. Done means it was built to the story, it matches the design, and it works on the exact browsers and screens the story named. The edge-case lines you wrote are handled, not skipped. Merged code that nobody checked against your "then" is just a guess with a green checkmark.
QA is done when every "then" passes
Not "it opened without crashing." Done means every "then" line and every edge case has been checked and passes on the screens the story named. Anything that fails gets written up with your bug template so it is fixed, not forgotten. QA is where the sentences you wrote meet reality.
Prod is done when it is live and reversible
Staging is not done. Done means the feature is on the real site, the analytics are firing, and someone knows how to roll it back if it misbehaves at 2am. A feature that works everywhere except the place your customers stand is not finished, it is rehearsing.
You are done when you watch your own "then" happen
The last checkpoint is yours. Done for you is not "looks good." It is opening the live URL, doing the thing, and watching the exact "then" you wrote back in discovery happen with your own eyes. That single sentence has traveled the whole chain, and you are the one who confirms it landed.
The whole thing in one line
Write the "then" once, and make every stage prove it before handing off. Six people, one sentence, checked against reality until the last person checking it is you.