Symptom

The agent finds long dotted access paths through several object hops; renaming any intermediate field silently breaks every caller.

Goal

Callers reach for the wrapper's methods directly; the agent reads one type signature instead of walking the delegate chain to predict what the call returns.

Before the refactoring

const street = order.customer.address.street;

After the refactoring

// inside Order: customerStreet() { return this.customer.address.street; }
const street = order.customerStreet();
Example source: Illustrative example written for this site, not a quotation from any source.
Pressure

Every link in the chain is a coupling point the agent holds in working memory; refactoring any intermediate shape requires updating every chain access.

Tradeoff

Each hidden delegate adds a passthrough method on the host; for chains used in one place the passthrough is overhead the agent now maintains in two places.

Relief

Callers read one type's methods to reach the delegate's behavior; the delegate's shape changes without breaking caller code, because the wrapper's signature is the only contract the agent's generated code depends on.

Trap

Wrapping every dotted chain in passthroughs migrates the chain from call sites into the host's surface — the agent now wades through a wall of delegations to find real behavior.