Memory hygiene — the weekly, monthly, quarterly routine
Memory without care degrades. Here is the maintenance schedule that keeps it useful for years instead of months. Five tasks per week, three per month, one per quarter. Total time: 20 minutes a week.
Memory hygiene — the weekly, monthly, quarterly routine
A memory system is a database, not a cache. The vendors who sell you memory do not sell you the maintenance ritual that keeps it useful. This recipe is the routine. Twenty minutes per week, fifteen per month, thirty per quarter. Skip the routine, your memory degrades inside six months.
Step 1: Internalize the database mindset
Treat memory like a kitchen. You can cook in a clean kitchen. You can also cook in a dirty kitchen, but everything takes longer, you lose track of where things are, and eventually the food tastes wrong. Cleaning is not optional, it is the precondition for cooking.
Same with memory. The AI can work with messy memory. But context-pollution kicks in (Recipe 4.9), retrieval gets fuzzy, sycophancy compounds. Cleaning weekly costs less than cleaning never plus rebuilding from scratch in nine months.
Step 2: Run the weekly routine (15 minutes)
Once a week. Pick a day, stick to it. We use Sunday evening because the week's learnings are still fresh.
Task 1: Surface stale learnings. Most memory servers track when each learning was last accessed. Stale = high age, low recent usage. They might be wrong, outdated, or just irrelevant now. Run nex_proactive or your equivalent. You get a list of learnings with stale_learning priority. Read through. For each one decide: still true and useful → call nex_learn_update with a fresh last_verified date. Still true but rarely needed → leave it alone, it will surface on retrieval if relevant. No longer true → call nex_learn_archive (soft delete, recoverable). Wrong from the start → archive plus add a corrected version.
Task 2: Resolve open contradictions. Run nex_contradictions(action: "list"). Returns pairs of facts that conflict. Read each, decide which is current, invalidate the other.
Task 3: Tag what was added this week. Look at the entities and learnings created in the last seven days. Make sure they have project tags (Recipe 4.2). Untagged stuff bleeds across contexts (privacy drift).
Task 4: Verify the always-on switch. Open a fresh session. Don't say anything about memory. Ask a project-specific question. If the AI answers with concrete details from your knowledge graph, the always-on policy is working. If not, run nex_profile save and re-test next session.
Task 5: Note one anti-pattern. Once a week, write down one thing your AI got wrong. Even small. "It suggested using lodash where I prefer vanilla". Save as a learning with category mistake or tag anti-pattern. Compound effect over a year is enormous.
Total: ~15 minutes weekly.
Step 3: Run the monthly routine (15 minutes, on the 1st of the month)
Dedupe scan. Even with gatekeeper-level dedup on writes, near-duplicates accumulate over time. Different wordings of the same fact end up as separate learnings. Run nex_deduplicate(action: "scan", minSimilarity: 0.85). Surfaces duplicate candidates. Merge them. The graph stays clean.
Decay confidence on idle entities. Run nex_decay run. Reduces confidence on facts that have not been accessed recently. This is what FadeMem does in StudioMeyer Memory and what Mem0 calls confidence rebalancing. Fully automatic.
Synthesize learning clusters. When you have 5+ learnings in the same category that point at a similar pattern, synthesize them into a single semantic guide. Run nex_synthesize(action: "scan"). Lists candidate clusters. For each one, decide whether the synthesis is worth running, then nex_synthesize(action: "generate", category: "deploy"). Result: a synthesized guide that distills the cluster. The original learnings stay intact, but the synthesis is what gets surfaced on retrieval — much higher signal-to-noise.
Total: ~15 minutes monthly.
Step 4: Run the quarterly routine (30 minutes, every 3 months)
Knowledge profile reset. Your top-15 entities and 20-key-facts snapshot needs to reflect what actually matters now, not what mattered in February. Your active project may have shifted. Run nex_profile(action: "save"). Idempotent, takes 200ms.
Audit privacy contamination. Search for personal-tagged stuff in work projects, work-tagged stuff in personal context. If you find leaks (Recipe 4.9, privacy drift), tag-correct them or archive. Run nex_entity_search(query: "personal", limit: 50).
Prune by relevance. Review entities with low recent activity. Anything with zero observations added in 90 days and zero retrievals in 60 days is probably dead weight. For each: archive if irrelevant, observe if still relevant but you forgot.
Re-evaluate the server. Once a quarter ask: is the memory server I picked still the right one? Has my project changed? Did Mem0 release something I should switch to? Did StudioMeyer Memory hit a feature I need? Recipe 4.8 is your re-evaluation grid. Go through it again.
Document what you learned. Write a short note: "Q1 2026 memory state — what I learned this quarter, what changed about my use, what worked, what didn't". Save as a learning with category meta or tag retrospective. Future-you in a year benefits enormously.
Total: ~30 minutes quarterly.
Step 5: Make the routine habitual
The weekly routine is the only one that actually has to be habitual. The monthly and quarterly are easy if the weekly is in place.
Pick a time slot. Add a recurring calendar event. Sunday 8 PM. Title: "Memory hygiene". Description: link to this recipe.
Or self-policing. Tell your AI to remind you. Many memory servers support setting nex_delegate tasks with due dates. The AI itself surfaces "you have not run weekly memory hygiene in 8 days" on next session start.
Track a single metric. "How many stale learnings did I archive this week" or "how many contradictions did I resolve". Over a year you can see whether the routine is keeping pace with growth or falling behind.
When you skip a week or two
Nothing breaks. The system keeps working. Stale learnings just accumulate slightly more. If you skip three weeks, the weekly task takes 25 minutes instead of 15 once you come back. Past a month, do a monthly + skip the catch-up weekly tasks — same effect, less guilt.
The point is rhythm, not perfectionism.
What this recipe does not solve
It does not solve sycophancy at the architectural level (Recipe 4.9 covers that — the technical limit is real). It does not solve the cross-tool problem (Recipe 4.5). It does not solve "I picked the wrong vendor" — that is Recipe 4.8 plus a migration plan.
What it solves: the slow, invisible degradation that is the real reason most memory deployments stop being useful after a few months.
What's next
You finished Phase 4. Memory is set up (4.1), tagged (4.2), graphed (4.3), imported (4.4), cross-tool (4.5), decided (4.6), Auto-Memory-aware (4.7), informed by comparison (4.8), risk-aware (4.9), and now maintenance-routine ready (this recipe).
Phase 5 is daily-use patterns — how you actually work with the system you just built. From here memory is no longer a topic, it is just the substrate.