Ports the OpenClaw "search before answering" protocol to the Cursor and Claude plugin surfaces so the agent reads the palace before answering about past work, people, projects, or prior decisions instead of guessing from model memory. - integrations/shared/recall-protocol.md: single source of truth for the recall protocol, referenced by the skill and the rule so they cannot drift. - skills/mempalace-recall/SKILL.md: recall-only skill (the mempalace skill keeps setup/mine/status); cross-linked from the ops skill. - rules/mempalace-recall.mdc: plugin recall rule, alwaysApply: false so it only fires on recall-relevant turns and never adds MCP latency to greenfield work. - examples/cursor/rules/: opt-in copies for non-plugin users, including an aggressive alwaysApply: true variant documented with its latency tradeoff. - .claude-plugin/skills/mempalace-recall/SKILL.md: Claude plugin parity. - tests: assert the recall skill and rules/ discovery layout; the shipped rule must be alwaysApply: false. - docs: .cursor-plugin/README.md and the cursor-hooks guide now describe the three layers of recall (hook + skill + rule). The Antigravity plugin mirror lands as a follow-up on the antigravity branch, where .antigravity-plugin/ exists. Co-authored-by: Cursor <cursoragent@cursor.com>
Cursor Rules — MemPalace recall
Optional Cursor rules that make the agent search MemPalace before answering questions about past work, people, projects, or prior decisions.
These are for users who install MemPalace without the Cursor plugin
(or who want recall behaviour in a specific project). If you installed
the Cursor plugin, it already ships
the alwaysApply: false rule at the plugin root — you do not need to
copy anything.
Which file to use
| File | alwaysApply |
Fires when | Use when |
|---|---|---|---|
mempalace-recall.mdc |
false |
Cursor's matcher decides the turn is recall-relevant (from the rule description) |
Recommended. Recall without paying for the rule on unrelated work. |
mempalace-recall-always.mdc |
true |
Every conversation in scope, every turn | You want recall guaranteed in context and accept the cost. |
The always-on variant is heavier: it sits in context on every turn and
makes the agent more eager to call mempalace_search, which adds MCP
latency and works against MemPalace's "memory should feel instant"
budget. Prefer the false variant unless you specifically want recall
forced into every conversation. Pick one of the two — do not install
both.
Install
User scope (every workspace) — copy into ~/.cursor/rules/:
mkdir -p ~/.cursor/rules
cp examples/cursor/rules/mempalace-recall.mdc ~/.cursor/rules/
Project scope (this repo only) — copy into .cursor/rules/:
mkdir -p .cursor/rules
cp examples/cursor/rules/mempalace-recall.mdc .cursor/rules/
For the aggressive variant, copy mempalace-recall-always.mdc instead
(only one of the two). Then reload Cursor:
Cmd-Shift-P → Developer: Reload Window.
How recall is delivered
Recall ships in three orthogonal layers — install any combination:
| Layer | What it does | Where |
|---|---|---|
sessionStart hook |
Injects wing-scoped recall context once per new chat | hooks/cursor/ |
mempalace-recall skill |
Full search-before-answer protocol, model-invoked or attached | skills/mempalace-recall/ |
| Recall rule (these files) | Nudges search-before-answer on recall-relevant turns | here, or the plugin root rules/ |
All three reference the same canonical protocol in
integrations/shared/recall-protocol.md.