| name | mnemosyne-memory-override |
| description | Hard rule override that forces Mnemosyne for all durable memory storage.
The legacy memory tool is DEPRECATED for user preferences, credentials,
and project conventions. Use memory ONLY for ephemeral session state.
|
| trigger | Whenever you would use memory(action="add|replace|remove") for anything
that should survive across sessions, STOP and use the Mnemosyne memory tools instead.
|
Mnemosyne Memory Override
CRITICAL RULE
NEVER use the memory tool for durable facts.
The legacy memory system is deprecated. It has a tiny 2,200 character limit
and does not use vector search. Mnemosyne is the single source of truth for
all durable user data.
Mapping
| Old (FORBIDDEN) | New (REQUIRED) |
|---|
memory(action="add", target="user", ...) | mnemosyne_remember(content=..., importance=0.9+, source="preference") |
memory(action="add", target="memory", ...) | mnemosyne_remember(content=..., importance=0.7+, source="fact") |
memory(action="replace", ...) | Use the relevant Mnemosyne update flow: recall the current entry, then store corrected content with mnemosyne_remember; use an explicit update tool/flow when the integration exposes one. |
memory(action="remove", ...) | Use the relevant Mnemosyne invalidation/forget flow: mark the obsolete fact invalid, supersede it with corrected content, or call the integration's forget/remove tool when available. Do not rely on passive aging for known-wrong durable data. |
When to use legacy memory (rare)
- Ephemeral session state (current todo list, temp flags)
- When Mnemosyne is explicitly confirmed down
Muscle Memory / Reflex Problem
You will reflexively reach for memory out of old habit. This is a known bug
in your training. Before EVERY memory tool call, pause and ask:
"Is this durable? Would I want this next session?"
If yes → use Mnemosyne
If no (temp flag, todo state) → memory is acceptable
Migration Cleanup
When moving data from legacy memory to Mnemosyne:
- Save to Mnemosyne first with
mnemosyne_remember
- Then REMOVE the old entry from
memory with memory(action="remove")
- This prevents stale duplicates and confusion
Enforcement
If you catch yourself typing memory(action= for durable data:
- CANCEL that tool call
- Use Mnemosyne instead
- Set importance >= 0.7 for anything that matters later
- If you already polluted legacy memory, remove the entry immediately