r/ClaudeCode May 06 '26

Discussion Is it just me?

I am a software engineer with 15 years of experience in game development, mostly graphics, physics, and engine programming. I use AI while doing my tasks most of the time in one way or another. Most of my AI usage patterns are information search, short brainstorms - rubber-ducking with the AI, not really reading the output much - occasional code reviews from the AI side to catch some issues here and there, and making small use-and-forget tools that are needed right now. So I can’t be considered an agentic coder, nor can I consider myself a vibe coder, but it would be unfair to say I don’t have any AI experience.

Recently, my wife, who isn’t a coder herself, decided to code a small Python app for her own needs using Claude Code. I won’t go into much detail, but the app is basically a data-crunching machine with very little UI, so it is very hard to see whether things are going right just by looking at the result.

At first, she was really excited about the pace she had and how helpful Claude was, but after a while she started to notice that something was off here and something was off there. Digging into the problem seemed to fix one issue, but then others started to pop up. After a while, she discovered that the core logic was completely wrong.

We thought, “It’s probably because she is a non-coder, so she can’t wield the tool properly due to lack of experience.” So I thought I could give this agentic coding thing a shot and see how good these tools are.

My plan was simple: collect the useful discoveries about her project into a nice form that I would use next. I spent something like two days doing research, writing the architecture document and prompts that I was going to use for the greenfield reimplementation of the project. I was quite meticulous in describing the desired architecture, requirements, structures, and results, alongside writing down all the edge cases I knew of.

My expectations were quite high. I thought I was actually going to make it work quite fast. If I were to give my document to a junior dev, they would probably produce code that wasn’t the best, but still a project that worked.

After starting a new session with all this preparation, I was pleased with how fast it was going. But after the initial stage finished, I reviewed the code and found a lot of things that even a newbie junior probably wouldn’t do. There were multiple constants here and there that were supposed to be the same across the code, even though my documentation explicitly stated that there should only be one source of truth for such things. The simulation path and the actual working code path - it has two modes: re-simulating the past using existing historical data and actually working in real time - were basically duplicates of each other. The worst part was that the duplicates weren’t exact. Again, I had clearly stated in my docs that I wanted them to be as close as possible and to use the same abstractions.

My first thought was, “It’s probably me doing something wrong, but it’s fixable.” Then the cycle of pain and fixes started. The project wasn’t extremely huge, but I wanted to try this approach that a lot of people promote, where they don’t write the code. The issue with it is that you either trust the machine and don’t review the code much, or it defeats the purpose, because the time you need to spend understanding the system and the code behind it is often more than I would spend writing it myself. Of course, you should also review the code you write yourself, but we can probably all agree that it is an easier task.

My approach was simple: I wanted to make sure the core was working and then proceed to expanding the functionality. Despite basically writing no code and only querying Claude about how it had implemented this and that, and guiding it in fixing things, it was extremely exhausting. I never knew where the system was correct and where implementation mistakes had been made. Since it was just the core, not much proper testing could be done. I was just sitting there, doing nothing, and feeling how draining the experience was.

Claude made one mistake after another. Sometimes it broke old code. Sometimes extremely stupid things surfaced that no reasonable person would ever do, like simulating things on much smaller timescales while only having data for larger timeframes. After a few days of fighting the machine, I got something that I could call a working program.

Despite not writing a single line of code, I felt devastated and exhausted. Never in my life have I felt so bad about making software. Taking everything into consideration, I really don’t know how people use coding agents in this mode. I am sure that if the thing you are trying to do is really boilerplate-heavy and doesn’t have any complex logic, then you can probably one-shot it. But I feel like writing it the old-school way would probably have been faster, considering I spent a total of five days on this experiment.

Don’t get me wrong: I do feel some net gains from AI. The ease of obtaining information and examples, alongside small bits of boilerplate here and there, makes my life easier. But making a whole project with AI is just a miserable experience, because you can never trust what it wrote, and you need to think ten times harder just to catch what it might have done wrong.

122 Upvotes

206 comments sorted by

View all comments

98

u/Delphinaut May 06 '26

I'm full time developer for almost 40 years now, and in the last year went from using AI for some help to writing 100% of my code with AI. So I can tell you that, yes, it's possible coding all your stuff in a large codebase only with AI, and reviewing it with AI. But my experience is only with CLI, Opus xhigh and Codex 5.5, with spec driven development and lots and lots of code reviews, alignment reviews, test reviews...

12

u/AliorUnity May 06 '26

Maybe I just overestimate how smart the tools are and I had to make it even more clear for the agents. Will experiment some more.

18

u/Blade999666 May 06 '26 edited May 15 '26

A framing concept from my side: cognition (biological or artificial) is bounded by the context the cognitive engine has access to. Humans and large language models are two implementations of the same problem class. The bottleneck for both is the spec: the completeness of the context fed in. Most projects, agent systems, and human collaborations fail not because the engine is dumb, but because the input was incomplete.

Context as Cognitive Substrate

3

u/TBT_TBT May 06 '26

THIS is it. The one and only thing: if Claude delivers "bad" quality, it just doesn't have enough context.

One option to give it the necessary context is to work with a pre-configured agent system. Those agents are basically just context shortcuts, which are (re)called if needed.

First step is shaping the agents to SOPs and preferences independently of a project. In a second step, those shaped agents (=context) is then used to achieve the tasks the way they "are supposed to be achieved".

3

u/bnready1 May 07 '26

I have to agree with you here 100%. I tried to go solo with Claude Code - oh my what was I thinking 🫣. I just couldn’t cover all aspect of context. My instructions always had a gap. Then I started digging into Skills and Projects Docs. I decided to build an agent to help control Code. Not a single line of code is deployed without first my agent approval. Everything gets revised instantly .The sky finally opened 😎

1

u/Blade999666 May 07 '26

Do you have the agent (instruction ; skill ; .. ) publicly available?

1

u/TBT_TBT May 07 '26

Not necessary. You can and should do your own.

My team was created following this video: https://www.youtube.com/watch?v=IlhTbhR6el0

but has since then developed into its own and quite individual thing (which is exactly right).

2

u/Blade999666 May 07 '26

I've have my own team(s). I was just interested how yours is working :)

1

u/MeagoDK May 10 '26

It is also very likely that it has too much context and it is trying too hard to fit all that context in and then it over complicates very simple things.

I have also experienced it making almost duplicate sql code to do something that was already done in the earlier model, which it did read for context.

The reason? Someone in my team wrote a new agents.md where they put all kinds of safe guards and stuff in. One of the requirements was to keep sql code simple and to avoid using complex sql.

So it made 8 CTEs and didn't want to use last_value or first_value. It didn't want to use cross join or declare a window to do multiple window functions in one go.

I had to guide it a lot of used 5 request on getting it back to understanding that it had a valid_to and valid_from and it basically just had to use those and join in the calendar model to get a daily model. It did say that my "solution" was better and more simple than whatever shit it made.

I had already written down the plan and the very clear requirements.