A compromise is to only enforce pre-commit rules when merging to main or some other important branch. Be as sloppy as you want on your own branches and make stuff proper when you're ready.
So you can go wild in your own branches and draft MRs but anything you want someone else to review has to pass.