Спецификация - описание того, как нужно делать.
Документация - описание того, что уже сделано.
На пример у нас есть две различных JDK - oracle и open. Все они реализуют одни и теже спеки, но подходы в реализации могут отличаться. Но в обоих случаях мы можем быть уверены, что
String s = "hello " + "world";
нам вернёт фразу целиком, а не попробует сложить значения в матиматическом смысле