Post

What Did Not Work: AI Spin Loops, Identity Drift, and My Ben/Hiram Naming Debt

What Did Not Work: AI Spin Loops, Identity Drift, and My Ben/Hiram Naming Debt

This is the uncomfortable companion to the other two posts from this run:

Those explain what got better. This one is about the parts that still burned time.

Where the Loop Started Spinning

From Feb 17 to Feb 22, a few files were touched over and over. Some of that was normal iteration, but some of it was AI spin: lots of movement, weak convergence, and commit messages that stayed broad. It looked productive in the moment, but the repeated churn was a signal that the underlying contract was still fuzzy.

One concrete bug in that window was commit c13b46be: a species name mismatch that swapped the threat icon. That is not a hard math bug. It is identity drift.

The Ben/Hiram Problem in Plain Terms

The Ben/Hiram naming layer is exactly the kind of surface where this happens. There are compatibility mappings across hero IDs, save keys, UI labels, and older naming expectations. Some of this is intentional and necessary. The problem is that the truth is distributed.

When the identity contract is spread across enums, string tables, save aliases, and UI arrays, both humans and models can make locally reasonable edits that are globally wrong. The code compiles, the behavior drifts.

That is why this class of bug tends to look silly after the fact and expensive while you are in it.

POMO: What I Learned

I have been using a simple POMO frame here: Problem, Observation, Model update, Operating change.

The first problem was spin loops in the same hotspots. Observation: too many mixed-intent passes. Model update: velocity was masking unresolved ambiguity. Operating change: smaller intent units and explicit acceptance criteria per pass.

The second problem was identity drift. Observation: IDs, names, save keys, and display labels were aliased in too many places. Model update: this is a contract issue, not a prompt issue. Operating change: move to one canonical identity map and generate downstream mappings from it.

The third problem was symptom fixes without invariant checks. Observation: local bugs got patched, but recurrence stayed easy. Model update: reminders are weak, executable constraints are strong. Operating change: add validation checks that fail when mappings diverge.

Is This New or Already Covered?

I touched parts of this earlier in When AI Multiplies Velocity and Chaos, but this post is narrower and more direct: identity contract debt is its own root-cause category.

The other posts in this series focus on workflow and tooling. This one is the reminder that no amount of tooling polish saves you if your core naming contracts stay implicit.

The next win is not faster patching. It is making this class of bug harder to create in the first place.

This post is licensed under CC BY 4.0 by the author.