Multi-clause conditional expressions whose domain meaning isn't readable from the syntax; the agent must parse the expression every time it encounters it.
Conditions read as named domain decisions; the agent reasons about isSummer(date) instead of re-deriving the month range.
Before the refactoring
if (date < SUMMER_START || date > SUMMER_END) {charge = qty * winterRate + winterFee;} else {charge = qty * summerRate;}
After the refactoring
charge = isSummer(date)? summerCharge(qty): winterCharge(qty);
The agent re-parses the expression at every reference; debugging the condition's value requires the agent to mentally evaluate the full chain.
Extracted names that aren't crisper than the original condition add a layer of indirection — the agent now follows a name to find the same expression.
Each condition and branch lives at one named function the agent reads against the function's name instead of recovering the predicate's domain meaning from its boolean expression.
Extracting names that don't sharpen the condition — `isMonthBetweenFiveAndEight` instead of `isSummer` — adds indirection without revealing intent.