В проектах с открытым исходным кодом я вижу следующие два способа написания спецификаций:
Спецификации в комментариях
@spec start_link() -> {ok, pid()}
Спецификации в исходном коде
-spec start_link() -> {ok, pid()}
Что разница? Один из них предпочтительнее другого?