Diff Integrity
Detects unrelated changes, formatting churn, and mixed scope within a single diff.
Why this rule exists
Mixed-scope diffs hide intent. When a single commit reformats whitespace, renames variables, and fixes a bug, reviewers cannot tell which lines actually change behavior. Bugs ride into production under cover of noise.
Code example
// Same commit: reformats 200 lines AND changes a calculation
- decimal total = price + tax;
+ decimal total = (price + tax) * discount;
+ // ...plus 200 lines of unrelated reformatting// Commit 1: reformatting only
// Commit 2: behavioral change
- decimal total = price + tax;
+ decimal total = (price + tax) * discount;Configuration
Disable or adjust the severity of this rule in .gauntletci.json:
{
"rules": {
"GCI0001": { "enabled": true, "severity": "Block" }
}
}See Configuration for the full schema.
Related rules
Behavioral Change Detection
Detects removed logic lines and changed method signatures that alter runtime behavior without corresponding test updates.
Pattern Consistency Deviation
Detects mixed sync/async naming conventions and service locator anti-patterns introduced inconsistently within the same file.
Discussed in
Why Code Review Misses Bugs
Code review catches style and obvious logic errors. It routinely misses behavioral drift, contract changes, and implicit assumptions.
What Is Diff-Based Analysis?
Diff-based analysis evaluates only what changed in a commit. Why that scope is the right unit of risk for pre-commit checks.
Implemented in src/GauntletCI.Core/Rules/Implementations/GCI0001_*.cs.
Eric Cogen -- Founder, GauntletCI
Twenty years in .NET production. Most of those years, the bugs that hurt me were not the ones tests caught. They were the assumptions I did not know I was making: a removed guard clause, a renamed method that still did the old thing, a catch {} that turned a page into a silent dashboard lie. GauntletCI is the checklist I wish I had run before every commit. It runs the rules I learned the hard way, so you do not have to.
