While testing is paramount, it gives me the wrong impression when you say “100% sure” that code will be working… that’s definitely not the case. Having tests is huge, but you cannot test everything, simply because a complex system will have permutations and edge cases that developer may not have considered.
TDD will definitely help with consistency, architecture and in many cases clarity. Unfortunately it doesn’t guarantee bug-free code, but does help to minimize the risk.
p.s. I would also include the “boy scout rule” on the list. Little clean up, formatting and docs added to the legacy code can go a long way.