
A test failed on the line that runs git init. The natural move is to fix that line. Add a check that the directory is not empty and move on: the test is green, the task is closed.
Now the real story from the source. git init really did run in the wrong place - it created a repository inside the project's own source tree. A check for an empty directory would have turned the test green. And it would have left the cause alive: the test was reading a temporary directory before that directory existed at all.
Root Cause Tracing is a technique from the Superpowers collection that formalises moving the other way: from the symptom back up through the call chain and the values, until you find the point where correct state first became incorrect. That is where the fix belongs.
The value here is not a new technology. Debugging through a call stack is older than most readers. The value is that the discipline is written down as a process with prohibitions - and it is written for an agent, for whom the urge to patch the visible spot is especially strong.
The iron law
The technique does not live on its own. In the repository it sits inside a larger skill and is part of it - skills/systematic-debugging/root-cause-tracing.md. Third-party catalogues carry a separate "root-cause-tracing" card, but the source is arranged this way, and that matters: tracing backward is one tool inside the process, not the process itself.
The process opens with a line that leaves no room for negotiation:
Then come four phases, none of which may be skipped: root cause investigation, pattern analysis, hypothesis and testing, and only then implementation. Until phase one is closed, proposing fixes is forbidden.
There is a separate note on when the process is needed most: under time pressure, when an "obvious quick fix" is begging to be made, when you have already tried several fixes and when the previous one did not work. Which is to say, in exactly the circumstances where it usually gets abandoned.