A class, function, or namespace that exists but does nothing meaningful — a one-line wrapper, an empty subclass, a passthrough method.
A class, function, or namespace whose body the agent traces through only to find no decisions or transformations — every hop is pure overhead in reasoning context.
Trivial wrappers disappear; the call site says exactly what's happening.
Trivial wrappers disappear; the call site reads exactly as what's happening and the agent skips the indirection.
Smellier version
function getName(user) {return user.name;}const n = getName(user);
Fresher version
const n = user.name;
Reader pays a navigation cost to discover the wrapper adds nothing; future changes are tempted to add real work to it.
The agent navigates through layers that add nothing; future maintainers (human or agent) face a choice between leaving dead weight or extracting a real reason for it.
Inlining the wrapper at every call site can leak its body across files; if the wrapper later genuinely needs work, the team will have to re-extract it after the fact.
Inlining scatters the wrapper's body across call sites; if the wrapper was a seam (mocking boundary, extension point), removing it forecloses options the agent might need later.
Shorter call chains, less indirection to unwrap when reading; one fewer file to maintain.
Shorter call chains; the agent loads one fewer definition per reasoning step; the call site reads as exactly what's happening.
Aggressive inlining of trivial-looking wrappers that actually mark a real seam — the wrapper's emptiness was the point (extension point, mocking boundary), and removing it forecloses options.
Mechanically inlining everything that looks trivial — including wrappers that mark a real seam — collapses extension points the agent will need to re-introduce later at higher cost.