# Mnemosyne Memory Override

> 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.

- Skill: `mnemosyne-oss/mnemosyne-memory-override` (Agent Skill)
- Install (CLI): `npx skillmds@latest add mnemosyne-oss/mnemosyne-memory-override`
- Raw SKILL.md: https://api.skillmd.com/api/skills/mnemosyne-oss/mnemosyne-memory-override/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: mnemosyne-oss (https://skillmd.com/u/mnemosyne-oss)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/mnemosyne-oss/mnemosyne-memory-override

---


# 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:
1. Save to Mnemosyne first with `mnemosyne_remember`
2. Then REMOVE the old entry from `memory` with `memory(action="remove")`
3. This prevents stale duplicates and confusion

## Enforcement

If you catch yourself typing `memory(action=` for durable data:
1. CANCEL that tool call
2. Use Mnemosyne instead
3. Set importance >= 0.7 for anything that matters later
4. If you already polluted legacy memory, remove the entry immediately

