A class or interface whose surface mixes multiple cohesive sub-concepts; the agent reasoning about any single concept must skim past the others to find what it needs.
Each type has one purpose; the agent loads a small focused file to reason about any single concept.
Before the refactoring
class Person {name;officeAreaCode;officeNumber;telephoneNumber() { return `(${this.officeAreaCode}) ${this.officeNumber}`; }}
After the refactoring
class Phone {areaCode;number;toString() { return `(${this.areaCode}) ${this.number}`; }}class Person { name; phone; }
The agent's reasoning context per method inflates with unrelated members; changes to one concept require reasoning about all of them.
Extracting too eagerly — 1-2 fields with no behavior — adds a file the agent must load with no encapsulation gain.
Each type holds one responsibility's data and methods; queries about one responsibility load only its file, and the unrelated payload that previously sat in the same window for every read is gone.
Extracting candidate concepts that are just trivial field groups creates files the agent must navigate without buying any encapsulation gain.