Claude Code, Part 2: A Deeper Dive — and a Dead End

After sharing my initial disappointment with Claude Code, I didn’t want to give up just yet.
I took the feedback seriously. Maybe it just needed clearer context and better guidance. So I went back and created a detailed CLAUDE.md
file for my Swift-based news reader project. It covered:
✅ How to build the project
✅ How to run tests
✅ Code style expectations
✅ Existing mocks and helpers
✅ A commit script that runs
swiftlint
, tests, and pushes only if clean
With that in place, I restarted — hoping this time it would behave like the thoughtful, capable coding assistant it aspires to be.
🌱 A Promising Start
I asked Claude to analyze my code for duplication and propose refactors. It responded with solid suggestions — especially around test code:
Shared setup/teardown logic
Custom assertions
Helper functions to eliminate repetitive test boilerplate
This was exciting. Test refactoring is often overlooked, so seeing it propose meaningful improvements there was a great signal.
🤦 And Then It Went Sideways
But as soon as it started applying the changes, cracks showed:
❌ It mixed incompatible error handling styles —
setUpWithError()
in some places,tearDown
withdo/catch + XCTFail()
in others.❌ It added helpers for single-line expressions, which felt like unnecessary indirection.
❌ It missed several small but obvious cleanups I would’ve expected it to catch.
Still, I gave it feedback. It responded well and made the requested corrections. So far, so good — and surprisingly, I had actually saved time by having it do the grunt work.
🚨 But Wait… It Didn’t Finish
Once it started preparing the changes for commit, I noticed it had only refactored some test classes.
I prompted it: “Please continue with the rest.”
It cheerfully agreed. And began processing them — two at a time.
By the third batch… 💥
API Error: 400 input length and max_tokens exceed context limit: 185160 + 20000 > 200000
vbnet Copy Edit
And that was it.
Every prompt after that failed — even simple ones like “What now?”. The context was too large. The session was broken. And if I restarted, I’d lose all continuity.
🧱 Stuck — Again
To recap:
I had a half-finished refactor.
No way to continue from where I left off.
No mechanism to resume intelligently.
A small, documented Swift project. Nothing crazy.
And a completely unhelpful error with no recovery path.
Another $20 lesson.
📌 Final Verdict (For Now)
I want these tools to succeed. I want to believe in agent-based workflows that understand entire codebases and help developers focus on meaningful work. But Claude Code just isn’t ready — even for small, structured projects with clear instructions.
For now, it’s back to Claude chat and agent-assisted workflows where I control the context and pace. At least then, I don’t end up debugging the AI more than my code.
💬 If you’ve cracked the code on making Claude Code (or any other dev-focused LLM tool) work for full-repo workflows, I’m genuinely interested in your process.
Subscribe to my newsletter
Read articles from Mark Striebeck directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
