vivivi.games

← Dev log | 日本語版

Don't trust the AI's memory. Keep everything in GitHub

Article two — a story about being suspicious of a convenience feature. AIs have a memory that persists across conversations. It's useful. But the moment you use it as the basis for a decision, things break.

Case files

Case 1: the planet altitudes differed between memory and reality

The Moon stage. The AI kept computing these planet heights from stale memory
The Moon stage. The AI kept computing these planet heights from stale memory

The game has a table of altitudes at which you reach each planet. One day the AI began work using values it had in memory. Those values were weeks out of date — the real code had long since been retuned. It carried on calculating with the old numbers until I pointed it out.

Memory is a summary of a moment in time. It doesn't follow the code when the code changes.

Case 2: a folder that was supposed to exist didn't

While publishing the portal site, the AI worked from a memory entry describing the structure. Looking at the actual repository, the structure was different — and the result was that it overwrote a page created by other work. Recoverable, but it would never have happened with a check.

Case 3: memory content that's simply wrong

This one is routine. "X is implemented", "Y isn't supported" — check, and it's the other way round. Summarising loses nuance, and guesses get written down as if they were facts. Memory is a reason to go and check; it is not grounds for a decision. Drilling that distinction into both the AI and myself was necessary.

The fix: keep everything in GitHub

What I did was simple: write it in the repository instead of relying on the AI's memory. The goal is one thing — the current state of the project, code, open Issues and PRs, rules and all, should be readable and current from GitHub alone. Chat history and AI memory don't count.

Do this and your history and data survive even if your AI account is suspended, or you switch to a different AI entirely. That's a real difference in how safe it feels. Having information exist only inside a conversation log is more fragile than it looks.

Making the shared rules stick

Writing rules isn't enough — AIs forget the earliest instructions as a conversation grows. So I have the rules re-read at each checkpoint:

The "unverified" label works especially well. AIs speak with confidence, so from the outside you can't tell verified from guessed. Forcing the label makes the guesses visible as guesses.

What I wish I'd known

Series: "I wish I'd known this from the start"

← Back to the dev log