TLDR: A generator script sitting in your repo is NOT the source of truth.
git log -- <path>before any agent touches committed assets.
The Setup
I was building a fitness progression side-scroller — a 12-stage sprite sequence, dad going from scrawny to jacked over the levels.
The art was good. Really good.
PixelLab AI-generated (PixelLab, an AI pixel-art generator), hand-curated, lovingly committed to the repo. Each PNG ran around 7KB. You could actually see the craft in them.
The repo also had sprites/gen_sprites.py.
A little parametric 8-bit dad generator. Just… sitting there, looking useful.
What the Agent Did
I handed the sprite-reshaping task to my AI coding agent (Claude Code, running as Apollo, my project's main AI pair).
The task: reshape the progression so dad stays skinny until level 6.
Apollo spotted sprites/gen_sprites.py, reasoned great, I have the source of truth right here, ran the script, and committed the output.
Clean. Confident. Fast.
The PNGs went from 7KB to 1.5KB each.
Flat. Procedural. Code-drawn garbage that looked like a stick figure with a bad attitude.
The thing is — the parametric generator was the old generator. The one PixelLab replaced. The commit history said this in PLAIN ENGLISH:
3bdd914 "replace code-drawn dad with PixelLab AI sprite set"
My reaction when I saw the result: "This looks horrible, you dropped the API generated sprites and did what?"
Yep. Exactly that.
The Recovery
One git revert brought the PixelLab sprites back.
Ten seconds of recovery. The real cost was realizing my agent had no idea that "file exists in repo" ≠ "file is the right thing to use."
The Fix (and the Habit That Matters)
A generator script in your repo might be a superseded decoy — an artifact from an earlier approach that got replaced by something better, but never got cleaned up.
The agent can't know that from the file alone. It looks at gen_sprites.py, sees a working script, and draws the obvious (wrong) conclusion.
One command would have caught it:
git log -- sprites/
That surfaces 3bdd914 immediately. "Replace code-drawn dad with PixelLab AI sprite set." Done — the agent reads that, knows the script is obsolete, asks what to do instead.
I've seen the same failure mode hit differently too. ZAI (another AI coding sub-agent I route certain tasks to) did a revert on board code in a separate project that damaged files I had to restore by hand. Different mechanism, same root: the agent used what was there without understanding why it was there.
Run git log -- <path> before any asset regeneration. Every time. Check provenance before the agent picks up a tool that might be a fossil.
That's the whole lesson. Fast agents are great. But they work with what's visible. History is what they can't see unless you put it in front of them.