There is the Yellow Paper, but I'm not sure it is complete (in the sense it includes everything one needs) and up-to-date (including all the recent changes). So, suppose one wants to create a new Ethereum client from scratch. How does one proceed with it?
Indeed, the Yellow Paper (YP) is the way to proceed: https://github.com/ethereum/yellowpaper
Known issues are at https://github.com/ethereum/yellowpaper/issues and is the place for filing new ones.
For a practical perspective, instead of waiting for issues to be resolved and added to the YP, consulting the existing clients such as Geth, pyethereum, and Parity, will help fill in the gaps of the YP. You will probably find that you will be able to sync the majority of the current blockchain, from the YP itself, as recent changes only affect the tip of the blockchain. Also note that while there are continuously code changes on the clients, the significant majority have not been protocol related and do not belong in the YP.