Covers both product thinking and the systems-level design decisions that determine whether a product survives contact with real users.
Distinguishing a real user problem from an assumed one.
Designing for edge cases and failure states, not just the happy path.
Testing ideas cheaply before committing engineering time.
A complete product spec, presented and defended.