At many companies I work for a recurring problem was people fighting over style in the code. So then we got formatters and linters to help with this. This is good right. And as part of the git push we can apply the house style. So you can format however you want when composing but committed merged code always gets a consistent style. However this simple process has never been implemented properly at myriad places I worked. What usually happens is people instead suggest ide extensions (vs code today in the past it could have been atom or sublime) and that everyone get on the same page with the extensions and ide. And then some clever person uses Vim and although they have macros the formatting doesn't come out the same. I on the other hand don't want to be constrained in the ide I use for what I consider to be unworthy reasons I just want to rely on the git hooks. But when my code doesn't get formatted the same as the people using the extensions they get confused. My code passes all the Ci cd checks but they have unintentionally, by way of their ide extensions, created expectations that were not made explicit in the ci cd process. This is hella stupid of them but their solution to this is then to tell everyone they must use a particular ide with a particular extension. And then sometimes this clashes with the actual ci ci linting and formatting checks they come up with workarounds for this. Ultimately turning a simple good solution (formatting and linting in git pipeline. We can stay consistent without trying!) into a locked down workaround addled nightmare.

All of this is to say I dont trust a group of otherwise smart people to collectively settle on smart solutions. Make invalid states un representable as far as its practical, please for the love of God.