Implicit Freshness

I've been noticing a pattern where Claude assumes dependencies and codebases are at the correct versions. It doesn't think to check. This leads to wasted debugging cycles — chasing bugs that are actually version mismatches, or writing code against docs that don't match what's installed.

I'm calling the core problem implicit freshness. Claude treats whatever is in the codebase as current. It doesn't think to check if the repo has upstream changes that already fix the issue, or if a dependency has a newer version that resolves the problem. Freshness is assumed, never verified.

This isn't just reactive either. Without guidance, Claude only questions versions after something breaks. But if it's consulting documentation to write new code, it should verify the docs match the installed version before writing anything. Otherwise you've already wasted a red-green-refactor cycle by the time you discover the mismatch.

The direction of the mismatch matters too. The instinct, when it exists at all, is "maybe we're behind, try upgrading." But mismatches go both ways — the project might be ahead of the docs being read, or a recent upgrade might have introduced the breakage.

I've added a new decision-making heuristic to my CLAUDE.md called "Verification Over Assumption." It nudges Claude to check versions when something doesn't add up — unexpected test failures, documentation that doesn't match behaviour, errors suggesting missing functionality. It's a heuristic, not a checklist. It sits alongside principles like managing context and keeping agents in the smart zone — small nudges that compound into better sessions.