The real debt in vibecoding isn't in your code, it's in your prompts, and it compounds faster

by

Noticed something a few weeks into a bigger project. Early on, a prompt like "add a delete button" just worked, one sentence, done. Now the same size request needs four sentences of context just to not break something else, which auth flow to respect, which of the two similar-looking components to touch, which past decision not to accidentally undo.

That's not classic technical debt. The code itself might be totally fine. The debt is that every prompt now has to carry more context just to stay correct, and that context requirement grows quietly, prompt by prompt, without ever showing up as a line in the codebase you'd notice.

The trap is it feels like the project getting more complex, which is normal and expected. But it's actually something narrower: the AI's working memory of your decisions is shrinking relative to how many decisions exist, so you're the one who has to keep re-supplying context it should already "know." At some point you're basically writing documentation into every prompt just to get back to where a one-line request used to work.

The only thing that's slowed this down for me: treating repeated context as a signal, not a nuisance. If I'm explaining the same constraint for the third time in different prompts, that's not me being thorough, that's a sign the constraint needs to live somewhere permanent (a note, a comment, a doc the agent can be pointed to) instead of being retyped from memory every time.

Has anyone else noticed their prompts getting heavier over time even when the actual feature requests stay small? What's the earliest sign for you that this was happening before it got annoying?

20 views

Add a comment

Replies

Best

Your third-time-explaining rule is the right trigger. What I would add is that where it moves to matters, because a doc decays the same way a prompt does. It gets long, it goes stale, and then it is competing for attention exactly like before, just in a different file.

The split that held up for us on the support side: can the constraint fail loudly, or can it only be read? Anything you can turn into a check keeps working when nobody remembers it. Prose is a reminder, and a reminder loses to whatever was said most recently.

Earliest sign for me was re-explaining the same constraint twice inside one session. Not across weeks, within one sitting. That is the moment the model stopped carrying it and you started.

the third-time rule is the part that clicked for me too, but I'd push on the failure mode a bit more - even a doc that doesn't go stale in content can go stale in relevance. I've had notes that were still 100% accurate but nobody remembered to mention them because the agent had no reason to go looking. so the constraint was correct, findable in theory, and still got violated because retrieval depended on someone recalling it existed. that feels like a different problem than "where does it live" - it's whether anything proactively surfaces "hey, this decision you made in week 2 is relevant to what you're doing right now" instead of waiting to be asked. curious if anyone's actually gotten that kind of proactive surfacing to work, or if it's still on the human to remember to check

 Findable and retrieved are two different states, and the way out is to stop making retrieval conditional on someone remembering.

On the support side every inbound message triggers a lookup whether or not anyone thinks one is needed, so relevance gets decided by the retriever rather than by memory. That is the version of proactive surfacing that actually works for us, mostly because it is invisible when it is wrong.

The honest part is that it moves the failure rather than removing it. Instead of nobody remembered the note, you get top three by similarity buried the one that mattered. Still better, because that one is inspectable afterwards and the old one was not.

For code the equivalent is retrieving on every task rather than on every question you happen to ask. Has anyone tried it at plan time instead of edit time?

Earliest sign for me was pasting the same paragraph of "here's why we do it this way" into a new chat for the third time in a week. Once I noticed I was copy-pasting my own explanation, it was obviously a storage problem, not a prompting problem.