claude-codeagentic-developmentdebugginglessons-learnedquick-takes
December 31, 20255 min read

On Debugging Your Tools Before Debugging Your Faith🔧

When your AI assistant starts acting like it forgot how to do its job, check that you're actually running what you think you're running.

Here's a fun way to spend your holiday break: waste three to four days convinced that the AI revolution is overrated, only to discover you've been accidentally using software from months ago.

The Setup

I'd been on a roll. Six weeks into building a scouting and coaching application, and I hadn't written a single line of code myself. Claude Code was doing the heavy lifting, and the results were genuinely impressive—at least by my previous standards. With a few days off before New Year's, I figured I'd make a final push to ship V1 with features I hadn't even originally scoped.

Spoiler: that's not what happened.

The Breakdown

Instead of a victory lap, I found myself stuck in what I can only describe as coding purgatory. Fix Problem A, introduce Problem B. Fix Problem B, introduce Problem C. Fix Problem C, and—you guessed it—Problem A is back like a bad sequel.

Claude was doing bizarre things. It couldn't tell that December 2024 wasn't in the future. It seemed confused about whether December 2024 came before or after November 2025. Even when I explicitly spelled it out in my prompts like I was explaining calendar math to a toddler, it just... didn't stick.

The whole thing felt familiar. Like déjà vu from a few months back, before Sonnet 4.5 and Opus 4.5 dropped and dramatically improved code quality. Back then, you had to constantly babysit the AI—fighting regressions, digging it out of loops, correcting obvious mistakes.

But that hadn't been my experience lately. Something was off.

The Investigation

I ran /status in Claude Code. It said I was using Claude Sonnet 4 with some date back in May. Weird. Then I checked /model and saw my other option was Opus 4.1.

Opus 4.1? That's ancient history. Now I knew something was really wrong.

Jumped out to my shell, ran the npm installer again, checked my version. Sure enough: I was on some 1.x version of Claude Code. But how? I'd been updating regularly.

Here's what happened: somewhere along the line, a rogue version of Claude Code had installed itself in an NVM bin path. That old executable was sitting higher in my PATH priority, so every time I ran claude, I was firing up the fossil instead of the current version.

It's like thinking you're driving your new car to work every day, then realizing you've actually been taking your 2019 beater that's been hiding in the back of the garage. Same keys, same routine—completely different vehicle.

The Fix

Scorched earth.

I hunted down every single Claude Code executable I could find. Every nook, every cranny, every temp folder, every bin directory, every NVM path, every random location it could possibly hide. Deleted them all.

Then I searched again. And again. Only after I was absolutely certain there were no stowaways did I reinstall using the latest recommended method.

Then I checked the version. Then I checked it again. Then one more time for good measure.

Finally confident I was actually running modern Claude with the 4.5 models, I threw my accumulated frustrations back at it—all those problems I'd been wrestling with for days.

We were back in business. Problems that had taken days to not-solve took minutes to fix. The difference wasn't subtle.

The Expensive Lesson

I lost three to four days—maybe a full week when you count the mental drain. I'd essentially fired my senior developer and replaced them with a junior who'd never seen the codebase, then wondered why everything was falling apart.

But here's the silver lining: this was an accidental A/B test. I got a visceral reminder of how far these models have come in just a few months.

The old Claude Code (and similar tools like Windsurf and Cursor) required constant supervision. You'd fight it on regressions, pull it out of loops, double-check everything. The new Claude? It largely just... works. It holds context better, makes fewer obvious mistakes, and doesn't need you to babysit every decision.

That gap—the difference between "months ago" and "now"—is massive. And if we've come this far this fast, I can barely imagine where we'll be in another year. Five years? I'm not even going to try to predict that.

The Takeaway

If Claude (or any AI tool) suddenly starts acting like it forgot how to do its job, check your installation. Check your PATH. Check that you're actually running what you think you're running.

And maybe, just maybe, take some comfort in the frustration. It means the good version really is that much better.

I mentioned I've been building an app for six weeks without writing code myself. That's a story worth telling properly—the workflow, the tradeoffs, what actually works. Another time.

Anyway. Check your PATH.

👨‍💻

Written by AJ Brown

Strategy-minded Principal Engineer, Architect, Technology Leader & Motivator with 20+ years building distributed systems. Passionate about Agentic Software Delivery, event-driven architectures, and making software that delights users.