You ask Claude to "add caching to the user profile endpoint," and 30 seconds later you ship something that looks fine in review:
SET user_42 <json> — flat key, no namespace, collides the moment a second service shares the cluster.
No TTL — the entry lives forever until maxmemory evicts your hottest keys.
KEYS user_* in a cleanup job — single-threaded Redis stalls every other client for hundreds of ms.
new Redis() inside the request handler — file descriptors leak and the box falls over at moderate load.
The model didn't fail. It pattern-matched on blog posts where Redis is a toy with twelve keys and zero ops concerns. Production makes each one a real incident.
A CLAUDE.md at the root of your repo fixes this. Claude Code reads it on every task. Cursor, Aider, and Copilot do the same. Below are four of the thirteen rules I drop into every Redis project — full set in the free gist linked at the end.
Rule 1 — Namespace every key: app:env:entity:id[:at
Discussion
Break the silence
Take the opportunity to kick things off.