Compound engineering writes each lesson into the agent's prose. The ones that matter should be checks instead: prose drifts, a gate doesn't.

The canonical guide to compound engineering describes its final step, the one it names compound, in plain instructions: once a task is done, you "Add new patterns into CLAUDE.md, the file the agent reads at the start of every session." I followed that advice for months. The patterns piled up, the agent dutifully re-read them at the start of every session, and a convention I genuinely cared about kept drifting anyway. The rule was right there in the always-loaded file. The agent's output drifted from it under context pressure, fluently and confidently, reaching for whichever term it had seen most recently in the file it was editing rather than the one the rule named. That was never defiance. The model doesn't decide to break a rule; under a crowded prompt it simply weights the tokens in front of it above a line it read far earlier.

The fix that finally held was not a better paragraph. It was a twelve-line script that reads the staged diff and blocks the commit when the wrong word appears. The first time I ran it across the project, it flagged 737 violations of a rule I had already written down and trusted the agent to follow. (I told that terminology-drift story in full in Rails, Not Rules.) That gap between "written down" and "enforced" is the whole essay. The lesson worth keeping should not be added to the prose the agent must remember. It should become the thing that catches the mistake automatically the next time.