Sketches, wireframes (annotated or not), and interactive prototypes, along with flows and site maps, are tools for working out design details and collaborating with a team. UX Specifications, on the other hand, provide formal documentation of UX design decisions and requirements. The specification document serves as the final, consolidated documentation of a design iteration and provides a foundation for the next iteration.
What is important is that the UX Specification spells out every detail of UX design in writing, mapped to visuals. In recent years I have moved away from detailed specification documents. As long as I have access to developers, I can communicate all design decisions long before any coding happens. I do, however, create detailed pattern library specifications that spell out use cases, interactions, and accessibility requirements for each component and pattern. This saves everyone a lot of time.
My earliest specifications were screenshots of wireframes accompanied by voluminous annotations in MS Word. I graduated to using final art instead of wireframes because the more literal mapping better communicated requirements. Later I started using InDesign, which looked better and facilitated automation of updating the visuals.
I’m sharing only a few samples because I don’t have any pattern library documentation to share (it all stays in wikis with its owners); plus, not everyone finds UX Specifications as fascinating to read as I do, and they’re usually quite long. The samples are arranged from “shortest” to longest.