The part I'll steal is the format: every item is an invariant with a file tag, not a story about what broke. "[GOTCHA-03 / settlement.py] keep first-seen order, never sorted()" is something the agent can check its own diff against. "We had an ordering bug once" isn't, and that's what most memory files I've seen end up full of.
It also matches what I see on teams. The expensive misses are rarely things the code could have told the agent. They're choices someone made on purpose ("$0 auths are valid", "1000 bps is inclusive") that look like bugs from the outside, so a cold start has no way to know they were decided.
The one risk I'd watch in a real repo is drift. Those five lines were true on the day they were written, and after a refactor some of them won't be. A stale gotcha can be worse than none, because the agent will confidently "fix" correct code back to the old rule. Adding the date or commit each line was last checked makes that easy to spot on a re-read.
Have you thought about a run with one outdated item mixed into MEMORY.md? I'd love to see what that costs compared to a cold start.