Filter
HalfRule
A filter that asks whether the codebase is accumulating indirection and dependencies faster than the problem actually demands.
The question this filter asks
Are we shipping at least half as much value as the abstraction and dependency surface we are creating to support it?
CLI watch output, HTML reports, and programmatic FilterVerdict evaluation.
The overall verdict passes at the configured passingScore (0.70 by default).
Abstraction discipline and dependency pruning.
Signals it scores
Each verdict combines several sub-scores so teams can see what is pulling the filter up or down.
Scores single-implementation interface growth and penalizes ceremony without real polymorphism.
Scores unused dependency count so dead packages do not compound over time.
Scores external dependency count per project against a target ratio of eight or fewer.
How to interpret the result
A low HalfRule score means the solution is spending complexity on wrappers, packages, or generic surfaces that are not buying real flexibility.
- If Premature abstraction drops, simplify single-use interfaces and one-off generic abstractions.
- If Dependency accumulation drops, remove package references that contribute no used symbols.
- If Dependency sprawl drops, consolidate packages so each project carries fewer external concerns.
What to do next when it drops
Filters are only useful if they drive a clear next move.
- Inline or delete abstractions that only have one concrete path through the system.
- Remove unused package references before they become accepted background noise.
- Review whether generic parameters and extra projects are solving a present problem or just defending against speculation.
Related pages
Jump to the command or analyzer docs that typically trigger action from this filter.