One filing test for every piece of context: does it change weekly? Yes → it's a fact, keep it in a file. No → it's behavior, make it a standing rule or skill.
The commonest structural mess in an AI setup isn't missing context — it's context filed at the wrong altitude. Universal rules repeated in every project. This week's numbers fossilised into standing instructions, still steering the model three months after they stopped being true. The same behaviour re-pasted as a prompt for the fortieth time because it never got promoted to a rule. Everything is somewhere; nothing is where its rate of change says it belongs.
The routing rule is a rate-of-change test, applied per piece: does this change weekly? Then it's a fact — keep it in a file you attach when relevant, where updating it is normal and staleness is visible. Is it stable? Then it's behaviour — make it standing structure: a rule that always loads, a skill that triggers on match. Facts live where they're easy to refresh; behaviour lives where it never has to be repeated. Filing something at the wrong altitude gives you the worst of both — stale facts that always load, or stable rules you re-type forever.
The corollary is DRY for context, and it has teeth: a universal rule stated twice will eventually be stated differently twice — one copy gets updated, the other doesn't — and from then on the system contradicts itself and silently picks a side per run. Each stable behaviour gets exactly one home; everything else points at it. That's not tidiness, it's the same single-source-of-truth discipline that keeps a data platform sane, applied to instructions.
Get the filing right and the daily experience changes character. You stop assembling context per conversation — hunting for that one prompt, re-explaining the same preference — and start just talking, because everything stable already loaded itself and everything volatile is one attach away. The setup stops being something you operate and becomes something you inhabit.