A specification is a document that defines conformance requirements for an artifact, practice, or convention. It answers the question: what must an implementation do to be considered conforming?

Specifications differ from descriptions (which say what something is), tutorials (which show how to use something), and texts (which argue a position). A specification is normative — it defines what MUST, SHOULD, and MAY be done.