Skip to content

ALL-HIST0003 · evidence

This page continues ALL-HIST0003 directly from its source docstring. Read its implementation.

One finding is stated per unexplained pair, located at the first of the two files so a reader opening the report lands somewhere real. Each names both files, how many focused commits carried both, and each file’s own commit count, because a pair nobody can name is a pair nobody can act on. The value is the number of unexplained pairs.

A pair involving a test is skipped, because a test changing with the code it exercises is the system working rather than a defect. A sweeping commit, meaning a reformat, a mass rename, or a dependency bump, never votes on a pair at all, since it would couple everything it touched to everything else. A pair the two files genuinely share through a third module is real coupling that this reports honestly, and the repair is usually to name the shared thing rather than to merge the two files.

A file the working tree no longer holds votes on nothing. Renames are followed forward, so a file arrives under the name it answers to today, but one deleted or taken apart since answers to no name at all and naming it would ask a reader to open what is not there.

The import reading is lexical, so a repository where no coupled pair names any other is one where the reader found no imports it understands rather than one where every pair is hidden. That case reports nothing, the same guard a claim about unreached routes needs.

  • Cites “Your Code as a Crime Scene”, chapter 7, temporal coupling
  • Cites “Software Design X-Rays”, chapter 5, change coupling across architectural boundaries
  • Cites “Detection of Logical Coupling Based on Product Release History”, ICSM 1998. Open reference