A shared file helps only where the rules are genuinely shared. I'd keep one canonical source for common constraints and generate thin tool-specific files where the tools differ, then have CI detect drift. Trying to force every tool's behaviour into one universal file can just move the sprawl into conditionals and exceptions.