Symptom

A class whose methods all delegate straight through to another object — no decisions, no transformations.

Goal

Callers talk directly to the real object; trivial passthroughs are deleted.

Smellier version

class Manager {
reports() {
return this.team.members();
}
}

Fresher version

// Expose team directly when the wrapper adds nothing.
manager.team.members();
Example source: Illustrative example written for this site, not a quotation from any source.
Pressure

An entire layer of indirection that adds no value; readers must follow every call to the real implementation.

Tradeoff

Removing the middle man exposes the underlying object's full surface to every consumer; consumers that only needed a few methods now have access to all of them.

Relief

Fewer files, shorter call stacks, the implementation's location is obvious.

Trap

Deleting any class whose methods mostly delegate, even ones that add legitimate authorization, validation, or auditing on top — the trivial-looking layer was load-bearing.