Every long-running engineering project develops a small library of hard-won rules. A flag that has to be set in a particular environment, or the system runs at one-hundredth its real speed. A startup ritual that has to happen in a specific order, or three components fight for the same resource and lose. A configuration file whose contents are the result of three weeks of empirical work, where every value is non-obvious and every value matters.
Each of those rules typically gets discovered the same way: the system breaks, somebody figures out why, and the lesson gets written down. The rule lives in a comment, or a README, or a wiki page, or, if you're being a little more careful, a "decisions" document with the date and the reason. The team feels like the lesson is now safe. It has been codified.
Six weeks later, the same rule is broken again. Not always by a different person; sometimes by the same person who wrote the rule down. The break looks accidental from the outside — "we made a small simplification" — but it is actually the predictable failure mode of treating a paragraph as a guarantee.
Why a rule that is written down still drifts
Three reasons keep showing up in the post-mortems. None of them is unusual; all of them are universal in any project that runs longer than a sprint.
Inheritance. A new component reuses an old one without re-reading the rules the old one was designed under. A new endpoint copies a config from an adjacent endpoint. A new build script borrows a fragment from an older one. The borrowed code carries assumptions the new context doesn't honour, and the rule that was true in the original context silently does not hold in the new one. Nobody is wrong; the rule is just not where the new author was looking.
Simplification. A future engineer looks at the configuration and thinks, "this looks needlessly complicated." They simplify. The complication, of course, was not needless. It was the precise shape required to satisfy the rule. The simplification removes it. Tests pass. Things run. Nobody notices the regression for weeks, because the regression is not a crash — it's a degradation in a property that nobody is checking.
Forgetting. Six weeks is enough time for a person to forget a rule they themselves wrote. A year is enough time for a team to lose half of them. The rule does not move; the people change, or the people drift, or the people simply stop reading the doc that holds the rule. The doc is still there. The rule is no longer being enforced.
The doc says what should be true. Nothing in the system checks that it still is. Over a long enough timeline, that gap is a leak. Every rule held in a paragraph is a rule waiting to be silently broken.