Create clear specifications and acceptance criteria before writing code. Use for any new feature, significant change, or when requirements are ambiguous. Trigger when the user says "spec", "requirements", "what should we build", or before starting non-trivial implementation.