All rules

Complexity Control

Detects over-engineering: single-use interfaces, abstract classes without abstract members, and unnecessary indirection added in the diff.

Why this rule exists

Speculative abstraction is a tax on every future reader. An IFoo with one implementation and no test double doubles the navigation cost without adding flexibility.

Code example

Triggers the rule
+ public interface IFoo { void Bar(); }
+ public class Foo : IFoo { public void Bar() { ... } }
+ // IFoo has exactly one implementation and no tests use it
Passes the rule
+ public class Foo { public void Bar() { ... } }
+ // Extract IFoo when the second implementation or test double appears.

Configuration

Disable or adjust the severity of this rule in .gauntletci.json:

{
  "rules": {
    "GCI0045": { "enabled": true, "severity": "Info" }
  }
}

See Configuration for the full schema.

Related rules

Implemented in src/GauntletCI.Core/Rules/Implementations/GCI0045_*.cs.

About the author

Eric Cogen -- Founder, GauntletCI

Twenty years as a senior technical consultant building and modernizing enterprise platforms across .NET, AWS, serverless, microservices, and AI-driven systems.