In the last article I went through what breaks when you obfuscate Java code before sending it to an AI assistant — Spring Data, JPA, Lombok, the whole framework iceberg. That was about getting the obfuscated source out in a state the AI can work on.
This one is about the much subtler half: getting the AI's changes back in.
It looks trivial. You sent Cls_a1b2c3d4 to the AI, the AI returned a modified Cls_a1b2c3d4, you have a mapping table, just walk the file and replace each obfuscated identifier with its original. Done in twenty lines of code.
Except your real file — the one a human will read tomorrow morning — now has no comments, no Javadoc, no blank lines between methods, no formatting choices you made over six months. The obfuscation pipeline stripped all of that on the way out. Reversing the rename doesn't bring it back.
This is the story of why naive reverse-translation is wrong, why it's a 3-way merge problem, not a translation problem, and what the merge actually has to handle in practice.











