Upon first reading this, I wondered how I would feel if someone found a mistake and surreptitiously fixed it without notifying me. Ninja coding seems to have a set of prior assumptions that I don't know if I agree with. Here's what comes to mind:
- I am truly fixing these people's buggy code and not inserting a sneaky bug into it.
- It's better to fix code behind the backs of my coworkers rather than talk to them about a possible error that I have found in their code.
How would you feel if a CPAN maintainer liked your module a great deal, but found a small bug in it and changed it on the master repository without telling you? To many people coding is their craft and they are interested in producing good quality code. By not communicating possible errors to people you are essential stating "I, being the great coder in our group, have found several errors in your code. Instead of notifying you of these errors so you can be educated, it's easier for me to just fix things rather than tell you about them."
Depending on your situation, this might be a reasonable thing to do. If you're the lead programmer on a time-critical project, this may even be a good thing (at least in the short term). But I believe that fostering a programming environment of creativity in which people can learn from each other is good for everyone's coding, so in the long term you may want to rethink your ninja ways. By practicing better communication, you may teach your peers a thing or two (and perhaps even learn something yourself). If you demonstrate best practices of coding to those around you their "bad" coding style may be vanquished by your "good" coding style in time.
It's interesting that you're being assimilated by the bad code that you are fixing. I would say that one key to learning good style is communication, by reading books, talking to people, and understanding the concepts behind various styles of coding. Perhaps if you communicate better you would be a Zen Master, rather than a Ninja. :)