When code arrives faster than any human can think it through, the version control habits built around human memory stop working, and nobody notices until the log becomes unreadable.
The Details:
A commit message used to be a note a developer left for their own future self, a bookmark pointing back to reasoning that already lived in their head. When an AI generates the code, no such memory ever forms; the reasoning existed only inside a chat session that vanishes the moment it ends. The message now has to carry the why on its own, since there is no brain left to consult later.
Fluent code creates a false sense of safety in review. AI output tends to compile cleanly, use sane names, and follow familiar patterns, which triggers a skim-and-approve reflex exactly when the reviewer has zero independent knowledge of why any design choice was made. Review stops being a second opinion on a finished decision and becomes the only moment intent gets pinned down at all.
Treating an entire AI session as one commit destroys the value of bisecting later. If a run touches eight files but only one contains an actual behavior change, bundling them together means a future bisect lands on a blob that explains nothing. Splitting mechanical changes like renames from the substantive change, even imperfectly, turns the log into something a bisect can actually use.
The fix costs nothing in tooling: add three lines to any AI-assisted commit body stating what alternative was considered, why it lost, and what was deliberately left unresolved. That detail is what keeps a rejected approach from being proposed again next month by someone, or something, with no memory of the last attempt.
Bottom Line: The AI can write the code, but only a human can decide what the project remembers about why.
Enjoy this article?
Listen to the Claude Code Conversations radio show or join the community.