Brother, vou partir do princípio que o "Dev iniciante" a que você se refere é porque deve ser um dos primeiros trabalhos que você faz. Até porque, se fosse Dev Junior, provavelmente você teria supervisão e poderia questionar diretamente a equipe.
Se o cliente não especificou, acho que você deveria perguntar, uma vez que o cliente tem uma expectativa, e acho o alinhamento de expectativas importante tanto para você quanto para o cliente. Além disso, ainda vai ajudar a evitar frustrações de ambos. No entanto, acredito que você pode ter umas pistas, por exemplo, em outros projetos que esse mesmo cliente já recebeu de outros programadores, ou se você conversou com o cliente no início da contratação e mostrou alguma coisa minimamente documentada, você pode fazer o que já sabe. Logo, respondendo à primeira pergunta, o que eu faria é perguntar ao cliente, mesmo eu avaliando todo o contexto, pois o cliente está pagando.
Em relação ao tipo de documento, acho que é mais uma autoanálise dos desafios técnicos que você teve. Uma coisa que você tem que ter em mente é que, futuramente, você pode ter que dar manutenção no sistema. Logo, um documento com os pontos que você acha importante já é um bom começo. Mas, se você pensar de uma forma parecida com a minha, documentaria para você e para outros programadores, o que, na minha opinião, é o estado da arte da documentação, ou seja, aquela documentação que tem empatia com quem vai ler ela futuramente.