When something that should work doesn't, suspect the environment before rewriting the code — wrong directory, stale build, missing env var, version mismatch, dirty state. Use when a command fails unexpectedly, tests fail that "can't" fail, behavior contradicts the code you're reading, or the error is command-not-found, module-not-found, connection refused, permission denied, "works in CI", or "works on my machine".