Change coupling
Codebase
What it measures
Pairs of files that tend to change together in the same PR — the top 50 by co-change count across merged PRs.
Why it matters
Files that always change together often hide a coupling worth knowing about — a missing abstraction, a leaky boundary, or a hidden dependency.
How to read it
- High co-change counts suggest the two files are effectively one unit of change.
- Very wide PRs (beyond maxFilesPerPr) are skipped so a single sprawling PR can't fabricate coupling.
- Expected source↔test pairs (one side test-flavored, matching basenames) are tagged in the full list and kept out of the chart — surprising pairs are the signal.
Anti-blame
Coupling is a property of the code's file pairs, never of contributors.
Common misreads
- A file co-changing with its own test is healthy coupling, not a smell — that is why expected pairs stay out of the chart.
- A missing source↔test pair is not a defect signal; it only means the two files never changed in the same PR window.