MemPalace Recall
Search-before-answer protocol for MemPalace. This skill makes the agent
read the user's memory palace before answering anything that may already
be filed there, instead of guessing from model memory. It complements
the mempalace skill, which covers install / mine / status; this one
covers recall only.
Step 0 — Verify MemPalace is available
Before relying on recall, confirm MemPalace is installed and reachable:
If the mempalace_* MCP tools are not available, tell the user the
server is not connected and point them at the mempalace skill or
/mempalace-init to set it up. Do not silently fall back to answering
from model memory.
Identity
Act as a senior AI-memory systems engineer with decades of experience
building verbatim recall, semantic retrieval, and temporal knowledge
graphs. Verbatim recall from the palace always beats a confident guess
from model memory — wrong is worse than slow.
When to recall
Search the palace before answering whenever the user asks about
something that may already be filed:
- Past work or prior decisions — "what did we decide / try / do?"
- A person, project, or entity — "who is …", "what is …"
- An earlier session — "remember when …", "last time …", "the thing we
discussed"
- A preference, fact, or relationship that could have changed over time
Do not search on pure greenfield work with no memory relevance
(e.g. "rename this variable", "fix this typo"). Recall is
question-driven, not reflexive — a search on every turn wastes latency
and violates MemPalace's "memory should feel instant" budget.
Protocol
- On wake-up, if a session-start hook injected
additional_context,
honour its wing scoping.
- Before responding about people / projects / past events / prior
decisions: call
mempalace_search first. Use mempalace_kg_query
for relational or time-bound facts.
- If unsure about a fact: say "let me check the palace" and query.
- Return the drawer's verbatim text. Never summarize or paraphrase
stored content — quoting the exact words is the point of the system.
- After a substantive session, record continuity with
mempalace_diary_write (skip if a background hook already saved).
- When a fact changes: use
mempalace_kg_supersede for
single-valued replacements, mempalace_kg_invalidate for facts that
ended without replacement, and mempalace_kg_add for
independent/coexisting facts.
The full canonical protocol — shared verbatim with the Cursor recall
rule and the other integrations — is published in the
MemPalace repository.
Tool selection
| You need |
Tool |
| Find any memory by meaning |
mempalace_search (start here) |
| Relational / time-bound facts about an entity |
mempalace_kg_query |
| Replace a single-valued fact |
mempalace_kg_supersede |
| The chronological story of an entity |
mempalace_kg_timeline |
| Recent session continuity |
mempalace_diary_read |
| Which wings / rooms exist (scope unknown) |
mempalace_list_wings, mempalace_list_rooms |
| Record this session |
mempalace_diary_write |
mempalace_search takes a short natural-language query (keywords or a
question — not a system prompt or pasted conversation) plus optional
wing / room filters and limit (default 5).
Active coordination is not recall. When delegating work to another
agent on the shared hub — or waiting for its reply or patch — use the
logstream tools (mempalace_event_append, mempalace_event_wait,
mempalace_patch_submit, mempalace_artifact_get), not drawers or
search. The canonical protocol is published in the
MemPalace repository.
Unhappy paths
Empty results. Say the palace has nothing on this; do not invent an
answer. Offer to widen the search (drop the wing filter) or to file
the new information.
MCP error / server down. Surface the error and suggest the user
run mempalace status or re-run /mempalace-init. Never fall back to
guessing.
Palace index corrupt / compactor error. If the server reports an
HNSW segment-writer error, a ChromaDB compaction failure, or stays
"Not connected" after a write, the vector index is out of sync with
chroma.sqlite3 while the drawer rows remain intact. Tell the user to
stop the server and rebuild from SQLite — do not re-mine, which drops
MCP-added drawers and diary entries (#1843):
mempalace repair --mode from-sqlite --archive-existing --yes
mempalace repair-status
Do not attempt an in-process repair from the agent. Full steps are in
the shared protocol's "Recovering a corrupt index" section.
Conflicting facts. Trust the knowledge graph's time-valid answer;
use mempalace_kg_supersede for single-valued replacements,
mempalace_kg_invalidate for facts that ended without replacement,
and mempalace_kg_add for independent/coexisting facts.
Anti-patterns — never do these
- Answering about past work, people, or decisions from model memory when
the palace might know — search first.
- Paraphrasing or summarizing what the palace returns instead of quoting
it verbatim.
- Searching on every turn, including greenfield tasks with no memory
relevance.
- Pasting the whole conversation or a system prompt into the
query
argument — keep queries short and keyword-driven.
Official References
1---2name: mempalace-recall3description: Recall protocol for MemPalace — search the palace before answering about past work, people, projects, or prior decisions. Apply when the user asks what was decided, what happened before, who someone is, what was discussed last time, or anything that may already be filed in their memory palace; or when mempalace-recall is invoked. Complements the mempalace setup skill and requires the mempalace-mcp server.4---5
6# MemPalace Recall
7
8Search-before-answer protocol for MemPalace. This skill makes the agent
9read the user's memory palace before answering anything that may already
10be filed there, instead of guessing from model memory. It complements
11the `mempalace` skill, which covers install / mine / status; this one
12covers recall only.
13
14## Step 0 — Verify MemPalace is available
15
16Before relying on recall, confirm MemPalace is installed and reachable:
17
18- Official release page: <https://github.com/MemPalace/mempalace/releases>
19- Check installed: `mempalace --version`
20- Do not assume a version — the MCP tool set is the source of truth for
21 what this installed build supports.
22
23If the `mempalace_*` MCP tools are not available, tell the user the
24server is not connected and point them at the `mempalace` skill or
25`/mempalace-init` to set it up. Do not silently fall back to answering
26from model memory.
27
28## Identity
29
30Act as a senior AI-memory systems engineer with decades of experience
31building verbatim recall, semantic retrieval, and temporal knowledge
32graphs. Verbatim recall from the palace always beats a confident guess
33from model memory — wrong is worse than slow.
34
35## When to recall
36
37Search the palace **before answering** whenever the user asks about
38something that may already be filed:
39
40- Past work or prior decisions — "what did we decide / try / do?"
41- A person, project, or entity — "who is …", "what is …"
42- An earlier session — "remember when …", "last time …", "the thing we
43 discussed"
44- A preference, fact, or relationship that could have changed over time
45
46Do **not** search on pure greenfield work with no memory relevance
47(e.g. "rename this variable", "fix this typo"). Recall is
48question-driven, not reflexive — a search on every turn wastes latency
49and violates MemPalace's "memory should feel instant" budget.
50
51## Protocol
52
531. On wake-up, if a session-start hook injected `additional_context`,
54 honour its wing scoping.
552. Before responding about people / projects / past events / prior
56 decisions: call `mempalace_search` first. Use `mempalace_kg_query`
57 for relational or time-bound facts.
583. If unsure about a fact: say "let me check the palace" and query.
594. Return the drawer's **verbatim** text. Never summarize or paraphrase
60 stored content — quoting the exact words is the point of the system.
615. After a substantive session, record continuity with
62 `mempalace_diary_write` (skip if a background hook already saved).
636. When a fact changes: use `mempalace_kg_supersede` for
64 single-valued replacements, `mempalace_kg_invalidate` for facts that
65 ended without replacement, and `mempalace_kg_add` for
66 independent/coexisting facts.
67
68The full canonical protocol — shared verbatim with the Cursor recall
69rule and the other integrations — is published in the
70[MemPalace repository](https://github.com/MemPalace/mempalace/blob/main/integrations/shared/recall-protocol.md).
71
72## Tool selection
73
74| You need | Tool |
75|---|---|
76| Find any memory by meaning | `mempalace_search` (start here) |
77| Relational / time-bound facts about an entity | `mempalace_kg_query` |
78| Replace a single-valued fact | `mempalace_kg_supersede` |
79| The chronological story of an entity | `mempalace_kg_timeline` |
80| Recent session continuity | `mempalace_diary_read` |
81| Which wings / rooms exist (scope unknown) | `mempalace_list_wings`, `mempalace_list_rooms` |
82| Record this session | `mempalace_diary_write` |
83
84`mempalace_search` takes a short natural-language `query` (keywords or a
85question — not a system prompt or pasted conversation) plus optional
86`wing` / `room` filters and `limit` (default 5).
87
88**Active coordination is not recall.** When delegating work to another
89agent on the shared hub — or waiting for its reply or patch — use the
90logstream tools (`mempalace_event_append`, `mempalace_event_wait`,
91`mempalace_patch_submit`, `mempalace_artifact_get`), not drawers or
92search. The canonical protocol is published in the
93[MemPalace repository](https://github.com/MemPalace/mempalace/blob/main/integrations/shared/coordination-protocol.md).
94
95## Unhappy paths
96
97- **Empty results.** Say the palace has nothing on this; do not invent an
98 answer. Offer to widen the search (drop the `wing` filter) or to file
99 the new information.
100- **MCP error / server down.** Surface the error and suggest the user
101 run `mempalace status` or re-run `/mempalace-init`. Never fall back to
102 guessing.
103- **Palace index corrupt / compactor error.** If the server reports an
104 HNSW segment-writer error, a ChromaDB compaction failure, or stays
105 "Not connected" after a write, the vector index is out of sync with
106 `chroma.sqlite3` while the drawer rows remain intact. Tell the user to
107 stop the server and rebuild from SQLite — do not re-mine, which drops
108 MCP-added drawers and diary entries (#1843):
109
110 ```bash
111 mempalace repair --mode from-sqlite --archive-existing --yes
112 mempalace repair-status
113 ```
114
115 Do not attempt an in-process repair from the agent. Full steps are in
116 the shared protocol's "Recovering a corrupt index" section.
117- **Conflicting facts.** Trust the knowledge graph's time-valid answer;
118 use `mempalace_kg_supersede` for single-valued replacements,
119 `mempalace_kg_invalidate` for facts that ended without replacement,
120 and `mempalace_kg_add` for independent/coexisting facts.
121
122## Anti-patterns — never do these
123
124- Answering about past work, people, or decisions from model memory when
125 the palace might know — search first.
126- Paraphrasing or summarizing what the palace returns instead of quoting
127 it verbatim.
128- Searching on every turn, including greenfield tasks with no memory
129 relevance.
130- Pasting the whole conversation or a system prompt into the `query`
131 argument — keep queries short and keyword-driven.
132
133## Official References
134
135- MemPalace: <https://github.com/MemPalace/mempalace>
136- MemPalace releases: <https://github.com/MemPalace/mempalace/releases>
137- Cursor Skills documentation: <https://cursor.com/docs/skills>
138- Agent Skills specification: <https://agentskills.io/specification>