The same model gives noticeably different suggestions depending on how much of the project it can see. The improvement from added context is larger than the improvement from a better model.

Why the current file is not enough

Code depends on definitions, types, conventions and helpers that live in other files, none of which are visible from the buffer being edited.

Without them, the assistant infers what a function probably does from its name, which is right often enough to be dangerous.

The characteristic failure is a call to a plausible function with a plausible signature that does not exist, which looks entirely reasonable until it is run.

What the assistant is actually given

Tools assemble context automatically from open files, recently edited files, imports, type definitions and search results matching the current work.

Everything selected consumes budget, so the assembly is a ranking problem rather than a matter of including the repository.

Understanding that the tool is choosing a handful of files explains why suggestions improve markedly when the relevant file is simply left open.

How conventions transfer

With surrounding code visible, suggestions adopt the project's error handling, logging, naming and testing patterns rather than generic ones.

This matters more than correctness in a narrow sense, since code that is right and stylistically foreign still costs a reviewer time.

Consistent codebases therefore get better assistance than inconsistent ones, because the pattern is unambiguous in the samples the tool retrieved.

Why large repositories are harder

A large project contains many plausible candidates for any given context, and relevance ranking degrades as the pool grows.

Multiple implementations of a similar concept, left over from migrations, are especially damaging because the assistant may follow the deprecated one.

Deleting dead code and old patterns improves suggestion quality directly, which is an unusual case of a cleanup task with an immediate measurable payoff.

What developers control

Keeping the relevant files open, working in a focused directory and naming things descriptively all change what the tool retrieves.

Project instruction files, where supported, supply the conventions that are never inferable from code alone, such as which library is preferred and which pattern is being migrated away from.

These interventions cost minutes and have more effect on daily output than switching between models, which is the opposite of where most teams direct their attention.