Things change -- the best decision made a year ago may not be the best decision now. The system is designed so that pieces can be swapped out without affecting other systems.
The system is designed so that if it's easier for you to write a command line tool to do something, you can -- without anyone being the wiser.
Do the simplest thing that could possibly work. One of the hallmarks of a good design is that there's nothing that could be taken away and have it still work. If you have to make lots of rules and exceptions to get a technology to integrate, you're doing it wrong.
...without an extremely good reason
And make sure that they know they've been handed the rope.
The developer should never have to repeat themselves. That is to say, once something has been said, it must not be said again.
- We use the Airbnb Javascript Style Guide.