Change coupling
change_couplingIdentify files that change together in commits to uncover hidden dependencies static analysis misses. Uses temporal coupling metrics like shared commits and degree.
Instructions
Temporal coupling: files that keep changing in the same commits, a hidden dependency static analysis cannot see (e.g. code and the test or config that must always be edited with it). Per pair: shared commits, each file's revisions, degree = shared / min(revisions) (1.0 = every change to the rarer file also touched the other) and jaccard = shared / union. Rename-aware; merges and huge commits are ignored.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | Maximum number of pairs/partners to return. | |
| file | No | Optional file (relative to the repository root): return only the files coupled to it. | |
| since | No | Only count commits newer than this git date expression, e.g. '1 year ago', '6 months ago', '2025-01-01'. Empty string = all history. | 1 year ago |
| repo_path | Yes | Absolute path to a local git repository, or to any folder inside one (a sub-folder scopes the analysis to it). | |
| min_shared | No | Minimum number of shared commits for a pair. | |
| max_files_per_commit | No | Skip commits touching more files than this (mass reformatting, vendoring). |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||