If the author is afraid to touch the files, how does he know the changes are correct?
It is very tempting to believe code is a pure means to an end, and that the end can be exhaustively represented by some combination of a test suite, a prose technical design, etc. And in a single round of software development, that almost feels true. But in the multi-round situations that matter economically, some bodies of code act as the measure for other bodies of code. This is most evident when we see generated code fail to type check.
Writing non-trivial software is not an exercise in translating a clearly defined end into precise means. It is solving a series of economic coordination problems over time.