Project memory that lives in the repo has to stay honest as the repo moves. That is fine if the memory is small and gets read on every task, but the three approaches only pay off if the files stay close enough to the code that a reviewer notices the drift. Make updating the memory part of the change itself. Otherwise it is another artefact that was correct at some point.