It captures the why and what of the system from a business or user perspective. Existing code don't inherently capture the original business problem or design choices that led to that code.
The answer is exactly on you question. Code is detailed. It need to has every implementation detail, a spec is high level view demoted of all unnecessary details!