A function reads from a query (global, singleton, instance state) instead of accepting the value as a parameter; the agent reasoning about it must model the query's state.
Dependencies are visible in the signature; the agent reasons about the function as a pure transformation of its inputs.
Before the refactoring
function rebate(order) {return order.total * currency().rate;}
After the refactoring
function rebate(order, rate) {return order.total * rate;}
The agent cannot test or compose the function without reproducing the query's state; reasoning about side effects requires modeling global timing.
Pushing every internal query to a parameter bloats signatures the agent must thread through call sites — appropriate only for queries that touch global or volatile state.
The agent reasons about pure transformations; tests target the function in isolation; signatures document dependencies.
Externalizing every internal query — including ones reading stable encapsulated state — bloats signatures the agent must thread through every call site for marginal isolation benefit.