We start with the task, not the screen. Watching or talking through how the work is done today — including what is done outside the software — establishes the sequence the interface has to support and the points where people currently hesitate or make mistakes.
Every state gets designed, not just the happy one: empty, loading, partial, error, no-permission, and too-much-data. These are where products feel unfinished, and they are cheap to specify and expensive to invent under deadline.
The output is a working design system — tokens, components and their states, implemented in code rather than described in a document. That is what keeps the twentieth screen consistent with the first, and it is what lets developers build new screens without a designer in the loop for every one.