Eu sou bem minimalista com documentação, como diz o Agile manifesto "working software over extensive documentation".

Em geral boa nomenclatura no software (vide capítulo meaningful names do clean code), diagramas de classe e sequência uml e um documento markdown.

Tudo isso cabe no mesmo repositorio git, no README.md é possível embarcar os diagramas usando MermaidUML no github.