Gone. Just gone. Two weeks of work. Gone to waste? Two minutes earlier I had been perfectly happy. The new feature worked on the first try. Exactly the way I’d described it. I clicked through the application one more time, just out of habit, and suddenly stopped. Two features that had been working flawlessly for weeks were gone. Not broken. Just gone.
So I started digging: comparing files, tracing changes, restoring older versions from backups. Probably half an hour of extra work. It wasn’t the first time this had happened. And every time I found myself asking the same question: How can an AI delete something it should already know exists?
The answer is surprisingly mundane. It also says a lot about what working with tools like ChatGPT or Claude is actually like. Most people probably imagine an AI working on a software project the way another developer would. It knows the current state of the code, adds new features, suggests improvements. It remembers what already exists, what decisions have been made, which mistakes have already been fixed.
But that’s not really what happens. The AI isn’t working on the software itself. It’s working only on the slice of it it can currently see. There isn’t a project folder sitting open in front of it. Every response is built from whatever context is available at that moment. If an earlier change isn’t part of that context—or if an outdated version of a file becomes the reference point—the AI may implement the new feature with great care, but on top of an older foundation. It looks as if something was deleted. In reality, that information simply wasn’t part of the world the AI was working from anymore.
The Problem Isn’t Memory. It’s Context.
Over the past few weeks, I’ve run into situations like this more times than I can count. I’ve been using ChatGPT to build two web apps. Both grew out of the same idea: capture things before memory quietly edits them. Dots collects the small signals from my training days—sleep, workload, recovery. Shots does the same for coffee. Neither app tries to make decisions for me. They help me make better ones. Plan my training with more confidence. Turn my morning coffee ritual into consistently better coffee.
So how do you deal with these pitfalls? How do you stop the AI from introducing errors, removing features, forgetting previous work?
Eventually I realized the real problem wasn’t the code. It was the collaboration.
A few months ago, I assumed I’d simply be giving tasks to an AI. Instead, I had to learn how to work with one. And like any collaboration, having a shared goal isn’t enough. You also need a shared reality. People build that almost automatically. We remember earlier decisions. We know the backstory. We remember why that seemingly unnecessary exception exists. We rely on signals beyond language—facial expressions, gestures, routines, shared shorthand. An AI only knows what I give it, over and over again. That changed the way I work.
From Prompting to Collaboration
At first, my prompts sounded something like, »I’ve got an idea for another feature. Please add it.« Now they’re much closer to this: »Only change this function. Everything else must stay exactly as it is. Here’s the current version of the relevant files.« I work in much smaller steps. I check intermediate results more often. I leave less room for interpretation. Not because the AI has become worse. Because I’ve become better at understanding how it works.
There was another lesson, too. Good prompts help. Good specifications matter far more. At some point I started documenting the fundamental decisions behind Dots and Shots. The logic behind individual calculations. Why a feature behaves the way it does. Which rules must never be changed. The difference was immediate. The AI made far fewer mistakes. Not because it knew more, but because I left it with less to guess.
The surprising part is that the longer I worked on these two applications, the less it felt like programming. Not just because much of what they contain is code I couldn’t have written myself. More and more, it felt like coordinating a very small team. I had to document knowledge. Make decisions traceable. Spot misunderstandings. Set priorities. Make sure one change didn’t quietly break something somewhere else. The only unusual thing about that team was that it had exactly two members: me and an AI.
That may be the biggest lesson I’ve taken away from the past few weeks. For me, AI isn’t primarily changing programming. It’s changing collaboration. Getting good results has less to do with finding the perfect prompt than with creating context, making decisions explicit, and organizing complexity so that someone new—or someone artificial—can find their way through it.
